黑盒测试:也称为功能测试、数据驱动测试、或者基于规格说明的测试,测试这不须要了解程序内部状况,只知道程序的输入和输出和系统的功能,这是从用户角度对程序进行的测试。算法
白盒测试:也称为结构性测试、逻辑驱动测试或者基于程序本省的测试,它重于程序内部结构和算法,一般不包括功能和性能指标,白盒测试是一种基于对源码的控制结构、处理过程等进行分析,检查程序内部处理是否正确,包括异常处理、语句结果,分支,循环结构等,白盒测试通常是以单元或者模块为基础;
白盒测试主要测试方法为:
一、语句覆盖:使程序中的每一个语句至少都被覆盖一次
二、断定覆盖:使程序中每一个断定至少为真或者为假各一次
三、条件覆盖:使断定中每一个条件得到各类可能的结果
四、断定/条件覆盖:同时知足判断覆盖和条件覆盖
五、条件组合覆盖:使的每一个断定中条件的各类可能组合至少出现一次。ide
灰盒测试:
是基于程序运行时外部表现同时又结合程序内部逻辑结果来设计用例,执行程序并采集程序执行信息和外部用户外部接口结果的测试技术,这种测试技术介于黑盒测试和白盒测试之间,灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,可以用于黑盒测试以加强测试效率,错误发现和错误案例分析的效率(接口测试属于灰盒测试)。函数
静态测试:不运行代码,静态的检查程序代码、界面或者文档可能存在的错误过程,包括代码评审、UI界面检查、需求规则说明书,用户手册检查。
动态测试:运行被测试的代码,输入相应的测试数据,检查输出结果是否和预期结果一致。工具
单元测试:
对被测软件的函数,模块进行测试,是测试的最少粒度。性能
集成测试:
主要测试软件结构的问题,测试是创建在模块接口上的,因此多为接口测试辅以白盒测试,集成测试是组装软件的系统测试技术,按照设计要求把经过单元测试的各个模块组装在一块儿,进行综合测试以便发现发现与接口相关的各类错误。
执行集成测试应该遵循下面的方法:
一、确认组成一个完整系统模块之间的关系。
二、评审模块之间交互和通讯需求,确认出模块间的接口。
三、使用上述信息产生一套测试用例。
四、采用增量式测试,依次将模块加入到系统,并测试新合并后的系统,这个过程以一个逻辑/功能顺序重复进行,直至全部模块被功能集成进来造成完整的系统为止。
集成测试遵循的原则:
集成测试很很差把握,应针对整体设计尽早开始筹划
一、全部公共接口都要被测试到。
二、关键模块必须进行充分测试。
三、集成测试应当按照必定的层次进行。
四、集成测试的策略选择应当综合考虑质量,成本和进度之间的关系。
五、集成测试应当尽早开始,并以整体设计为基础。
六、在模块与接口划分上,测试人员应当和开发人员进行充分沟通。
七、当接口发生修改时,涉及的相关接口必须进行再次测试。
八、测试执行结果应当如实记录。单元测试
系统测试:
集成测试经过后,软件组装成了一个完整的软件包,这时就要进行系统测试,系统测试彻底采用黑盒测试技术,系统测试采用的数据尽量模拟真实数据同样准确和有表明性。测试
验收测试:
系统测试完成之后,软件已彻底组装起来,这时能够开始对软件进行最后的确认测试,确认测试主要检查软件可否按合同要求进行工做,便是否知足软件需求规则说明书的中的要求。
验收测试着重考虑软件是否知足合同规定的全部功能和性能,文档资料是否完整,准确,人机界面和其余方面(例如:可移植性,兼容性,错误恢复能力和可维护性)是否知足客户要求。
验收测试能够采用α,β测试。设计
回归测试:在对软件新版本测试,重复执行上一个版本测试时使用的测试用例。接口
冒烟测试:对每个新编译的须要正式测试的软件确认软件基本功能正常,冒烟执行人员通常为版本编译人员或其余研发人员。开发
随机测试:在测试中,测试数据是随机产生的,也叫猴子测试(monkey test)。随机测试的一些缺点:一、测试每每不太真实。二、不能达到必定的覆盖率。三、许多测试都是冗余的。四、须要使用一样的随机种子才能重建测试。这种随机测试在不少时候没有多大的用处,每每被用来做为“防崩溃”的手段,或者被用来验证系统在遭受到不利影响时的可否保持正常,能够以此方法来考察系统的健壮性,防止生成大量垃圾数据等手段。--摘录自《精通软件性能测试与loadrunner最佳实战》