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