测试:第三章 测试方法
第三章 测试方法
测试方法的划分主要包括:按照是否需要了解源代码、是否运行源程序、是否编写源代码。然后在相互组合,便得到了丰富的测试方法,以及大量的工具。
测试方法对比
分类方法 |
测试方法名称 |
依据 |
测试对象 |
理论上的测试目的 |
实际工作中的测试目的 |
测试评估标准 |
测试环境 |
测试工作介入点 |
优点 |
缺点 |
适用范围 |
按照不同的测试对象划分(黑白灰盒的区别) |
黑盒 |
SRS |
整个软件产品 |
检查软件的功能实现是否与SRS相一致 |
尽早进行验收,收回开发成本 |
需求覆盖率 |
尽量与用户环境相一致 |
只要功能可以进行操作 |
简单,测试效率高 |
1、无法保证所有的代码逻辑都被测试到 |
适合进行功能、性能等使用和外部特性的测试适用范围广泛,适用所有可见功能 |
白盒 |
LLD |
代码逻辑函数 |
检查代码的逻辑实现是否与LLD相一致 |
尽早发现问题缺陷,降低缺陷修复成本.便于定位问题 |
逻辑覆盖率 |
开发环境 |
只要独立的函数或类代码编写完成后 |
覆盖充分,可以覆盖到每行代码 |
技术较难 |
针对核心业务、复杂算法、公共模块、全局数据结构、新增功能 |
|
灰盒 |
HLD |
模块\子模块接口 |
检查接口实现是否与HLD相一致 |
逐步集成,降低缺陷定位成本 |
接口覆盖率 |
子系统集成尽可能和用户环境一致,模块内部接口以及模块间接口可以在开发环境下进行 |
进行测试的接口模块已完成 |
可以提早定位和发现问题 |
技术最难 |
公共模块之间的调用,复杂度较高的模块调用、使用频率较高的模块调用 |
|
|
特点 |
分类 |
优点 |
缺点 |
适用范围 |
按照是否运行程序划分 |
静态 |
不执行程序 |
1、文档评审 |
较动态测试时间早,不用写代码 |
工作量大 |
重要的功能模块、核心的业务、算法 |
动态 |
执行程序 |
黑和测试 |
复杂,效率高 |
测试较晚,写代码 |
所有功能 |
|
|
优点 |
缺点 |
适用范围 |
按照不同的测试手段划分 |
手工 |
能够主动的发现bug |
重复工作量大,容易引入疲劳缺陷,只能依靠见到的界面 |
绝大多数的场合 |
自动化 |
可以无限制不断重复,把人从劳动里解放出来,提高劳动效率,提高了测试质量,能发现人不能发现的错误 |
无法发现脚本中未写明的缺陷 |
GUI界面稳定 |
测试方法组合
测试方法组合 |
典型案例 |
使用时机 |
特点 |
|
黑盒 |
||||
黑盒静态手工 |
|
|
|
|
黑盒静态自动化 |
|
|
|
|
黑盒动态手工 |
|
|
|
|
黑盒动态自动化功能测试 |
Mercury的QTP:用于检测应用程序是否能够达到预期的功能及正常运行 |
|
1、能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试 |
|
IBM Rational Robot 是功能测试工具 |
它集成在测试人员的桌面 IBM Rational TestManager 上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。 |
|||
Borland SilkTest属于软件功能测试工具 |
是Borland公司所提出软件质量管理解决方案的套件之一。这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析功能错误。 |
|||
基于Java语言的功能和性能测试工具 |
JMeter是Apache组织的开放源代码项目 |
主要针对Java语言 |
它是功能和性能测试的工具,100%的用java实现 |
|
黑盒动态自动化性能测试 |
Mercury的LoadRunner:是一种预测系统行为和性能的负载测试工具。 |
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题 |
能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 |
|
Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。 |
功能强大的压力测试工具 |
您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响 |
||
webload是RadView公司推出的一个性能测试和分析工具 |
它让web应用程序开发者自动执行压力测试; |
webload通过模拟真实用户的操作,生成压力负载来测试web的性能。 |
||
白盒 |
||||
白盒静态手工 |
|
|
|
|
白盒静态自动化 |
|
检查语法规范、语法逻辑 |
|
|
白盒动态手工 |
目前的最流行的单元测试工具是xUnit系列框架 |
常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit(Delphi ),NUnit(.net),PhpUnit(Php )等等。 |
该测试框架的第一个和最杰出的应用就是由Erich Gamma (《设计模式》的作者)和Kent Beck(XP(Extreme Programming)的创始人 )提供的开放源代码的JUnit。 |
|
白盒动态自动化 |
Jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。parasoft同时出品的还有C++ test,是一款C/C++白盒测试工具 |
|
|
|
灰盒 |
||||
灰盒静态手工 |
|
|
|
|
灰盒静态自动化 |
|
|
|
|
灰盒动态手工 |
|
|
|
|
灰盒动态自动化 |
BMC的APPSight |
系统会将问题发生的相关信息完整录制下来,包括问题发生的现场场景、信息及分析等,从而快速切入到问题根源 |
|
|
测试管理工具 |
是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。 |
|
|
1自动化测试就是用程序驱动程序的测试
2黑白灰测试的区别
测试的对象不一样,对于代码实现逻辑程度不一样(黑盒不需要了解代码实现,白盒需要完全了解代码实现,灰盒需要部分了解代码实现)
3静态与动态测试的区别
被测程序执行与否 静态不执行程序包括文档评审静态分析技术代码走读,动态包括黑盒测试和动态分析技术
4自动化合手工测试的不同
测试手段不同