软件测试分类以及软件质量
1.什么是软件缺陷?
-
定义
- 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题
- 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背
-
现象
- 功能、特性没有实现或部分实现
- 设计不合理,存在缺陷
- 实际结果和预期结果不一致
- 运行出错,包括运行中断、系统崩溃、界面混乱
- 数据结果不正确、精度不够
- 用户不能接受的其他问题,如存取时间过长、界面不美观
-
产生
- 技术问题
- 团队工作
- 软件本身
-
构成
-
分布
2.什么是产品评审?
评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进
- 评审的方法
- 互为评审 (Peer review)
- 轮查 (Pass-round)
- 走查 (walk-through)
- 会议评审 (Inspection)
- 评审的分类
- 管理评审
- 技术评审
- 文档评审
- 流程评审
3.软件测试的分类
- 按测试的对象或范围分类,如单元测试、文档测试、系统测试等)
- 按测试目的分类,如功能测试、回归测试、性能测试、可靠性测试、安全性测试和兼容性测试等
- 根据测试过程中被测软件是否被执行,分为静态测试和动态测试
- 根据是否针对系统的内部结构和具体实现算法来完成测试,可分为白盒测试和黑盒测试
4.静态测试和动态测试
- 静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的复审等
- 动态测试是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统信息,对系统行为进行验证
5.主动测试和被动测试
- 主动测试是测试人员主动向被测试对象发送请求、或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果
- 被动测试是测试人员不干预产品的运行,而是被动地监控产品在实际环境中运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据
6.白盒测试和黑盒测试
-
黑盒测试就是对功能的测试,数据驱动的测试
-
白盒测试就是对结构的测试,逻辑驱动的测试
7.软件测试的级别
-
单元测试
单元测试针对程序系统中的最小单元—模块或组件进行测试,一般和编码同步进行。主要采用白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。
-
集成测试
集成测试,也称组装测试、联合测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。
-
功能测试
功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。
-
非功能测试
系统非功能性测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试。
-
验收测试
它的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样。
-
安装测试
它是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试。
8.软件测试的工作
- 测试流程
-
测试内容
- 目标和范围
- 项目估算
- 风险计划
- 进度安排
- 资源配置
- 跟踪和控制机制
-
测试用例
- 测试用例是测试人员在测试过程中的重要参考依据
- 测试用例将有助于节约测试时间,提高测试效率。
- 良好的测试用例不断地被重复使用,使得测试过程事半功倍
- 测试用例是一个知识积累的过程
-
测试人员
QA测试经理
:人员管理,资源调配、测试方法改进等实验室管理人员
:设置、配置和维护实验室的测试环境内审员
:审查流程,建立测试模板,跟踪缺陷测试报告的质量等测试组长
:负责项目的管理、测试计划、测试用例、任务安排等测试设计人员
:资深测试工程师,产品设计规格说明书的审查、测试用例的设计、技术难题的解决、培训和指导、实际测试任务的执行一般测试工程师
:执行测试用例和相关的测试任务
9.软件质量的控制
-
概念
软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将来生产高质量软件产品的能力。
-
方法
-
目标问题度量法
对一个项目的各个方面(产品、过程和资源)规定具体的目标,这些目标的表达应非常明确
-
风险管理法
-
-
模型
-
过程
- 技术
10.软件质量保证
- SQA是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的
- SQA的目的是向管理者提供对软件过程进行全面监控的手段,包括评审和审计软件产品和活动,验证它们是否符合相应的规程和标准,同时给项目管理者提供这些评审和审计的结果