一、软件缺陷的正式定义
1、被测系统与需求不一致
2、软件未达到需求规格说明书中指明的功能
3、软件出现了需求规格说明书中指明不会出现的错误
4、软件功能超出需求规格说明书指明的范围
二、具体的测试分类
1、从测试阶段或对象角度分类(V模型)
单元测试:是针对每个单元的测试。用于验证一个单元模块的功能是否正常。一个单元模块可以包括几行或上百行代码。单元测试与编码过程是紧密联系的,单元测试有时也认为是编码阶段的一个活动。(单元测试对应编码阶段,测试对象是单个模块或组件)
集成测试:是将不同单元模块组合在一起,形成更大组建的过程。用于查找单元或组件的接口错误,其关注的重点是那些在单元测试中不能被发现的缺陷。(集成测试对应详细设计,测试对象是一组模块或组件)
系统测试:校验软件产品能否与系统的其他部分(eg:硬件,数据库及操作人员)协调工作。用于评估整个系统的行为并确保系统行为符合用户需求,并评估系统与硬件设备、运行环境和应用程序等之间的接口。(系统测试对应概要设计,测试对象是整个软件系统)
验收测试:部署软件之前最后一个测试操作。测试范围类似系统测试,通常由系统提供者和客户共同完成。验收测试使客户确信应用程序所需的特性并且能够正确的运行。(验收测试对应需求阶段,测试对象是整个软件系统)
2、从测试技术的角度分类
黑盒测试:关注的是与产品的外部行为相关的缺陷,此时并不考虑产品的内部结构或运行逻辑。
白盒测试:关注的是域代码内部结构相关的缺陷,因此,需要测试人员掌握一定的编程技术
灰盒测试:是综合运用黑盒测试和白盒测试技术的一种混合测试方法。
3、从测试目标的角度分类
回归测试:是软件版本修改后的重新测试,可应用与所有测试级别,目的是为了确保被修改组件的行为没有改变,不会造成意外结果。
功能测试:针对软件功能需求进行测试,目的是检查应用程序的行为是否符合预期
性能测试:用于验证系统是否满足规格说明的性能需求,eg:容量和响应时间等。
Alpha测试(α测试):在软件发布前,有时会让小规模、有代表性的潜在用户试用软件,如果有开发机构人员来模拟潜在用户开展测试,则成为α测试。
Beta测试(β测试):软件早期版本被发布给具有代表性用户群来测试,称为β测试。β测试常被用于面向大众市场的系统、计算机游戏和类似的应用程序
压力测试:以设计的最大负载或超过最大负载来运行如那件,用于确定系统运行的负载界限。
负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力
安全性能测试:是对产品进行检验,以验证产品符合安全需求定义和产品质量标准的过程。用于测试系统在遭遇未授权访问、计算机犯罪和破坏时是否能保护自己。
配置测试:当开发的系统需要应用于多种环境配置时,需要对每种配置进行测试,以检测系统行为是否符合规格需求。包括硬件配置和软件配置。
安装测试:在目标环境中通过安装来验证软件及其安装过程。目的是确保该软件在正常或异常情况的不同条件下都能进行安装,且安装后可立即正常运行。
可用性测试:用于评估系统使用的简易程度,交互是否具有人机工程学设计以及用户文档是用的有效性。
可恢复性测试:用于检验系统在灾难或意外宕机后的重启能力。
4、从测试执行方式的角度分类
手动测试:人工执行测试。即根据测试用例中的描述的规程,不借助特殊的软件工具,人工来运行被测系统,观察系统实际输出是否符合测试的预期输出。
自动化测试:软件测试的自动化,是一个将以人为驱动的测试行为转化为机器执行的过程。目的时节省人力、时间或硬件资源,并提高测试效率。
5、从是否执行程序的角度分类
静态测试:不运行被测软件,而只是静态地检查程序代码(代码是否符合相应的标准和规范)、界面(软件的实际界面与需求中的说明是否符合)或文档中可能存在的错误(用户手册和需求说明是否符合用户的实际需求)的过程
动态测试:实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符合的过程
所以判断一个测试属于动态还是静态的,唯一的标准就是看是否运行程序。
原文:https://www.cnblogs.com/lyt010/p/13022048.html