IT项目管理之软件测试

news/2024/4/20 16:53:09/文章来源:https://blog.csdn.net/NHB456789/article/details/130365300

1. 定义

软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。

2. QC & QA & QM

对于软件质量而言,QC、QA、QM是三个常见且易混淆的概念。

名词概念备注
QCQuality Control(质量控制)测试人员负责,通过验证的方法保证质量达到要求
QAQuality Assurance(质量保证)过程保证人员负责,通过过程的方法保证质量达到要求
QMQuality Management(质量管理)质量管理人员负责,一般为负责质量的管理者,通过制定过程、协调资源等一系列的手段为QA、QC工作创造良好的环境和条件

下图可以更清晰的解释QC、QA和QM三者的区别:

从QC到QA再到QM是一个循序渐进的变革过程,体现了质量管理理论的发展脉络。

在日常工作当中,我们最需要厘清的是QA和软件测试的关系。QA是质量保证,而软件测试是质量保证的一种手段。QA不仅包括软件测试,还包括流程和产品方面的规范化管理措施等。大部分公司QA等价于软件测试,这种理念其实还停留在QC阶段,是针对编码结果的检验,忽略了需求分析和系统设计阶段的质量验证。

3. 测试模型

随着软件测试理论和技术的发展,测试人员通过大量实践,总结出了若干测试模型,如常见的V模型和W模型。这些模型对测试活动进行抽象处理,并与开发工作紧密结合,是测试过程管理的重要参考依据。

3.1 V模型

  • 单元测试,主要是由开发人员自己对编写的代码进行自测或相互进行交叉测试,用以检查代码是否符合编码规范,是否存在逻辑错误。
  • 集成测试,将经过单元测试的模块组装成完整的程序。工作任务包括制定集成测试策略,确定集成测试步骤,设计集成测试用例,然后逐一添加模块进行测试。集成测试由测试人员负责,应该在概要设计完成后进行设计工作,并在单元测试完成后执行。
  • 系统测试,是为了验证需求分析确定的功能是否齐全并被正确实现,同时还要对安装、部署、适应性、安全性、界面等非功能性需求进行测试。系统测试也由测试人员负责,应该在需求分析完成后进行设计,在集成测试完成后进行实施。
  • 性能测试,用来检查系统是否满足规定的性能要求。性能测试通常选择一些典型的功能,检查这些功能在大量用户同时使用时系统是否稳定。性能测试由测试人员负责,可以在系统测试完成后进行,也可以对重要模块先进行性能测试,可以贯穿整个测试周期,目的是尽早发现系统的性能瓶颈并提早解决。
  • 验收测试,(User Acceptance Test, UAT), 目的是验证系统与需求的匹配性,以及界面的友好性、时间响应速度等。验收测试由实际的使用者负责完成,测试人员配合进行。

每种测试都有自己的目的和针对性。单元测试针对程序的规范和逻辑,集成测试重点是模块之间的连接,系统测试侧重系统功能的实现,性能测试验证系统的稳定性和效率,验收测试检验系统是否实现业务需求,相互之间不可替代。

V模型的缺陷在于仅仅把测试过程作为编码后的一个阶段,忽略了测试对需求分析、系统设计的验证,因此需求阶段的缺陷很可能一直到后期的验收测试才被发现,那时进行弥补将耗费大量的人力物力。

3.2 W模型

相较于V模型,W模型在软件开发的各个阶段都同步进行质量验证活动,W模型由两个V模型组成,分别代表开发过程和测试过程。

W模型认为测试应伴随着整个软件的开发周期,而且测试的对象不仅仅是编码的程序,需求和设计阶段的交付物同样需要进行测试和验收。

4. 测试流程

通用的测试流程包括计划、设计、实现、执行和完成几个步骤:

  • 测试计划,开展测试工作首先就是要制定一个测试计划,需要确定这次测试的目标和策略,估计测试用例、测试实现的工作量,确定所需要的人力资源和测试环境资源。这些内容都写在测试计划中,测试计划需通过评审才可以执行。
  • 测试设计,制定测试计划之后第一步就是测试设计,需要确定测试需求,设计测试用例,对测试用例进行评审等。
  • 测试实现,设计完成以后就是测试实现的过程,任务包括搭建测试环境、编写测试脚本、编写驱动程序和准备测试数据。根据需要尝试测试部分程序,然后修改测试用例和驱动程序等。
  • 测试执行,根据计划将测试任务分配给测试的执行人员,测试执行人员根据测试用例输入测试数据、记录测试结果。发现问题后需要记录和跟踪缺陷,缺陷修改完成后要进行验证。执行中还要对测试环境进行管理和监控。
  • 测试完成,主要工作完成之后要对测试的情况进行分析、总结,确认是否达成了目标,给出测试结论和建议。具体的工作包括评估测试活动、分析测试结果、编写测试报告,最后对测试的整体情况进行评审并形成结论。

5. 测试的主要角色和职责

测试不是测试组一个团队的事情,需要整个项目的所有同事一起参与,测试工作所涉及的主要角色和职责大致如下:

角色职责
项目经理与测试团队共同制定测试的质量目标,并跟踪目标的达成情况;
总体管理测试的进度和缺陷修改工作的进展;
提供测试活动所需的文档;
参加测试计划、测试用例、测试报告的评审
测试组织者制定测试计划、组织和实施测试工作,包括组织、监控和管理测试活动,确保达成测试的质量目标,任务包括:
1. 组织搭建测试环境、准备测试数据、编写测试用例;
2. 组织测试人员编写测试脚本(如果能自动化测试);
3. 组织测试人员建立执行流程并进行联调;
4. 组织维护测试用例和测试脚本;
5. 对缺陷的提交和验证进行追踪。
负责编写测试报告,参加测试计划、测试用例、测试报告的评审
测试设计者分析测试需求、设计测试用例;
编写测试脚本,建立和联调测试的执行流;
参加测试计划、测试用例、测试报告的评审;
负责测试环境的搭建
测试执行者负责测试用例的执行、记录测试结果和缺陷;
参加测试计划、测试用例、测试报告的评审;
负责缺陷修改后的重新测试和验证
缺陷修改者负责修改测试发现的缺陷;
参加测试计划、测试用例、测试报告的评审
缺陷分配者负责审核和分配测试缺陷;
对测试中发现的问题进行定位并协助解决;
参加测试计划、测试用例、测试报告的评审
质量保证者组织评审测试相关的测试计划、测试用例、测试报告;
负责审计测试过程,确保测试按照规范和流程进行
配置管理员负责测试过程中版本的集成和发布;
负责测试中各类交付物的配置管理;
参加测试计划、测试用例、测试报告的评审

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_103690.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源模型ModelScope的初探使用

泛AI开发者的一站式模型服务产品平台 阿里达摩院推出了一个开源的模型共享平台,包括计算机视觉、多模态、自然语言处理等多个领域上手即用的模型,如果AI相关模型感兴趣的同学,或者想基于基础模型做业务场景的同学,都可以用这个平…

C++三大特性—继承 “访问控制”

本文主要阐述关于C继承中基类与派生类之间的访问关系 继承方式与访问方式 继承定义格式: 派生类可以继承定义在基类的成员,但是派生类的成员函数不一定有权访问从基类继承来的成员    访问限定符的作用:控制派生类从基类继承而来的成员是否…

学习系统编程No.23【信号实战】

引言: 北京时间:2023/4/23,最近学习状态不怎么好,总是犯困,没精力的感觉,可能是病没有好彻底的原因,也可能是我内心因为生病而认为摆烂理所应当,反正最后导致摆烂,课现在…

android之 Launcher改造仿桌面排版的效果

一,背景 1.1 新接手一个灯光控制项目,其页面和效果还是比交复杂的,其中一个功能就是仿苹果桌面来排版灯具,支持拖拽,分组,分页。 拖动图标的时候判断是否空白位置还是已经有占位了,有的话就把…

体验了多款国产类ChatGPT产品后,我选择了道合顺的【ChatIC】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言A…

springboot实用配置

springboot实用配置 (一)打包与运行(二)配置高级1.临时属性设置2.配置文件分类3.自定义配置文件 (三)多环境开发(四)日志1.日志基础2.日志输出格式控制3.日志文件 (一&am…

14、RPC与gRPC

目录 一、rpc基础1 - rpc入门2 - 基础的rpc通信3 - 基于接口的RPC服务 二、rpc编码1 - gob编码2 - json on tcp3 - json on http(待补充) 三、prtotobuf编码1 - prtotobuf概述2 - protobuf编译器3 - 序列化和反序列化4 - 基于protobuf的RPC(待…

vue项目 解决el-table自适应高度,vue页面不显示多条滚动条,超出的部分让el-table内部出现滚动条(推荐使用第二种解决方案)

一、需求 后台管理系统:最常见的页面都是由—>左侧菜单、头部tabView页签、主体数据渲染页面(AppMain);而一般AppMain页面又分为: 搜索区域、table数据(分页),可能也会存在底部&a…

QGIS数据可视化学习笔记01——一般的图层样式调整和在地图上添加图表

说明:QGIS数据可视化章节用的数据为QGIS绘制一张地图学习章节的数据,传送门:https://blog.csdn.net/qq_47188967/article/details/130196284 一、 一般的图层样式调整 首先呢,在QGIS中打开上一章节用的数据,界面如下&…

基于飞桨 PaddleVideo 的骨骼行为识别模型 CTR-GCN

main.pysame_seedsparse_argsmain ensemble.pyconfigs 文件夹Joint(J)的配置文件ctrgcn_fsd_J_fold0.yamlctrgcn_fsd_J_fold1.yaml Joint Angle(JA)的配置文件ctrgcn_fsd_JA_fold0.yaml paddlevideo 文件夹utils 文件夹__init__.p…

MATLAB符号运算(七) 更新中...

目录 1、实验目的: 2、实验内容: 1、实验目的: 1)掌握定义符号对象和创建符号表达式的方法; 2)掌握符号运算基本命令和规则; 3)掌握符号表达式的运算法则以及符号矩阵运算&#xf…

[JavaEE初阶] 类加载机制

在真正的战争到来之前,尽可能地变得强大吧~ 文章目录 前言1. 类加载1.1 类加载的过程1.2 类加载的时机1.3 双亲委派模型 前言 这个问题是面试经典题,让我们来求甚解吧~ 1. 类加载 1.1 类加载的过程 如下图 加载,找到.class文件,读取文件内容验证,验证.class文件的格式是否…

SQL优化(3):order by优化

MySQL的排序,有两种方式: Using filesort : 通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫 FileSort 排序。 Using index :…

Spring lettuce读写分离

Redis 的 Sentinel 模式默认配置下 Redis 的客户端只对 Master 读写,另外2个Slave闲置。若主从节点在不同机房,在读取时会有跨机房的网络时延,并且比同机房访问更容易发生网络丢包。故在一些场景可以考虑将跨机房的服务节点设置为读写分离 Re…

Python中 re.findAll()、re.sub()、set()的使用

1. re.findall() re.findall():函数返回包含所有匹配项的列表。返回string中所有与pattern相匹配的全部字串,返回形式为list / 数组。 由函数原型代码可知,findall() 函数存在三个参数: 1. pattern:正则表达式中的 ‘模…

Opencv+Python笔记(五)图像阈值化处理

图像阈值化可以理解为一个简单的图像分割操作,阈值又称为临界值,它的目的是确定出一个范围,然后这个范围内的像素点使用同一种方法处理,而阈值之外的部分则使用另一种处理方法或保持原样。 阈值处理有2种方式,一种是固…

订单交期迟滞,销售回应慢,怎么解决客户问题?

按客户定制产品订单,进行报价和生产的制造企业,有拆解图纸生成物料BOM的工序,通常由企业产品设计部门的拆图员岗位专门负责。 手工制作BOM数据,准确性低 拆图员肉眼查看每页图纸中的表格数据,手动敲键盘填入到企业要…

Android之 颜色选择器

一,简介 1.1 计算机的颜色通常有两种表示方式: 光源模式RGB(Red红, Green绿, Blue蓝),数值0-255 印刷模式CMYK(Cyan青, Magenta品红, Yellow黄, Black黑),数值1-100 任何颜色都是由RGB或CMYK混合出来的,再加上透明度…

【HTML+CSS+JS】登录注册页面大合集

前言 学JS也学了一段时间,正巧碰上了人工智能要调用人脸识别接口进行真人人脸识别,于是便萌生了用人脸来进行注册和登录的想法,这样的话就需要开发一个登录注册页面,然后用JS绑定注册事件调用人脸识别接口进行登录注册 饭要一口一…

【数据结构:线性表】单链表

在学习了顺序表,我们可能会对其有一些思考: 中间/头部的插入删除,时间复杂度为O(N)增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容…