目录
前言:
测试理论是指关于软件测试的基本原理、方法和技术等方面的系统化知识体系。它提供了对软件测试活动进行规划、设计和执行的框架和指导,帮助测试人员更有效地发现潜在的缺陷,并提高软件产品的质量。
一.软件测试相关定义
1.从软件质量保证上来划分测试,测试可以划分为静态测试和动态测试。静态测试就是指不运行被测程序本身,仅通过分析或者检查源程序的文法、结构、过程、接口等来检查程序的正确性,静态测试可以分为代码审查、代码走读、文档审查等行为。动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能的测试过程。
2.按照测试技术划分,测试可以划分为:白盒测试、黑盒测试和灰盒测试。
3.按照测试阶段划分,测试可以划分为单元测试、集成测试、系统测试、系统集成测试、用户验收测试和维护测试。
二.白盒测试、黑盒测试和灰盒测试
1.白盒测试
- 白盒测试是对一个软件组件或者系统内部的设计知识为基础的测试。
- 白盒测试是逻辑为导向,重点是通过对某些软件测试的执行路径。
- 测试设计决定被测软件所需要的一定路径下输入设定,并指定每个输入的预期将要采取的路径和输出。
- 测试执行运行有指定输入的软件,检查了预期的路径追踪,有产出符合预期的结果。代码覆盖测试经常被用来评估白盒测试的彻底情况
2.黑盒测试
- 黑盒测试是需求导向。
- 测试测试描述的是不管一个软件组件或者系统内部的设计知识的测试。
- 黑盒测试专注于输入和输出的软件测试
- 测试设计根据软件的设置,在确定的输入情况下,指定每个输入的预期输出。
- 测试执行是指定的输入情况下的软件,检查对预期输出的结果。
3.灰盒测试
- 灰盒测试描述的测试是一个黑盒测试与白盒测试组合。
- 侧重于输入与产出(预期结果),但是测试设计和执行是基于算法,架构,数据库的知识。
- 灰盒测试被最多的用在测试数据的覆盖范围,但也可能是单独使用在确认配置文件的变化。
三、单元测试和集成测试
1.单元测试
- 单元测试是对新的或者更改过的代码模块进行的初步测试。它验证程序或者模块的内部逻辑和程序规范。
- 开始点:单元测试开始在开发阶段,当编码已经完成
- 结束点:所有的测试案例被成功执行,没有严重缺陷1或2
- 单元测试的作用:单元测试有助于早期识别和修复缺陷,早期消除单元模块的不确定性。
- 单元测试的评估有:代码覆盖率的百分比,符合组编码标准,圈复杂度,行代码,路径,参数,缺陷密度。
2.集成测试
- 集成测试验证多个已经完成了单元测试的模块的执行。所测试的应用程序通常不连接到系统中的其他应用程序。
- 子系统模块的通信测试是在一个控制和隔离的环境。
- 开始点:单元测试已经顺利完成
- 结束点:所有的测试案例的成功执行,没有严重缺陷1或2
- 集成测试的作用:集成测试有助于较早的识别和修复中缺陷,降低成本。减轻了系统测试过程中的风险。
- 集成测试的评估:成本和进度偏差,缺陷,生产力,效率和测试覆盖度。
- 圈复杂度一种代码复杂度的衡量标准
3.系统测试
- 系统测试把系统的所有组件和对其他系统的接口当做一个整体来测试,包含功能性的测试和结构性的测试,证实这个系统可以正确的运行。
- 开始点:单元测试和集成测试已经顺利完成。
- 结束点:当系统测试执行完成所有的系统测试阶段的测试用例,结果中没有严重性为或者2的缺陷。
- 系统测试的作用:验证一个系统的所有模块和接口能够作为一个整体而且正确的工作。
4.系统集成测试
- 验证了系统的整体运作。它测试近似在生产的环境中的应用程序,硬件和网络的合作。
- 开始点:系统集成测试开始于成功的上一阶段的系统测试的结束。
- 结束点:当系统集成测试执行完所有的这阶段的测试用例,结果中没有严重性为1或者2的缺陷。
- 系统集成测试的作用:系统集成测试验证在近似生产环境中把系统作为一个整体来验证整个系统的功能。关键缺陷识别和修复,以避免在用户验收测试阶段去进行昂贵的返工。
5.用户验收测试
- 用户验收测试(UAT):验证系统是否满足指定的用户需求。该UAT的模拟用户环境,由最终用户或者站在用户角度去测试系统。
- 开始点:开始于成功的上一阶段的系统集成测试的结束。
- 结束点:执行完所有的这阶段的测试用例,结果中没有严重性为1或2的缺陷。
- 用户验收测试的作用:用户验证测试使使用者,客户或者其他授权体决定是否接受这个系统。成功的UAT有助于确保业务需求得到满足,为系统在生产中使用做好高度信任的准备。
6.可操作性测试
- 可操作性测试:验证应用程序或系统可以在生产环境中运行。这是一个动态的测试阶段,其中系统的所有验证操作都在真实或者模拟出来非常真实的生产环境中发生。可以操作性测试考虑的是性能,资源消耗和符合标准等因素
- 开始点:开始于成功的上一阶段得用户验收测试的结束。
- 结束点:一旦被测试系统符合测试计划中规定的结束标准,测试便结束。
- 可操作性测试作用:确保软件产品的正确交付和直到软件产品的正确部署。避免在生产环境中产生可操作性方面的业务缺陷。
四、功能测试和回归测试
1.功能测试
- 功能测试:在每一个开发阶段,去验证在每个业务功能操作上都和设计文件(内部和外部)中规定一样。
- 开始点:开始于成功完成单元测试后。
- 结束点:结束于执行完所有的计划的测试用例,结果中没有严重性为1或2的缺陷。
- 功能测试的作用:验证了系统执行和设计中规定的功能一致。当功能测试正确后才能进入到系统集成测试。确定关键功能缺陷和修复缺陷,以避免在系统集成和用户验收测试阶段出现缺陷进行昂贵的返工。
2.回归测试
- 回归测试:当性某部分修改(增加新的功能或者修改bug)后,去验证这部分是否被成功修改和其他部分是否会被这部分的修改所影响。
- 开始点:因为增加新功能或者修改缺陷而对代码进行的修改后开始回归测试。
- 结束点:回归测试结束于成功的执行相关的回归测试用例,并且修改后的程序相关部分还没有解决的缺陷
- 回归测试的作用:验证了系统的行为是不会受到由于修改系统而产生的影响。它减少了重新验证的时间消耗,它给与验收测试以可信任措施。当时间回归测试相关用例的执行是自动化的时候,显着的好处将被取得。