软件测试的目的:
发现软件缺陷,尽可能早的找出软件缺陷,尽可能早的找出软件缺陷,并且确保缺陷得到修复。
软件测试一般分为4个阶段:
单元测试、集成测试、系统测试、验收测试。
集成测试的方法有两种:
非增式测试和增式测试。
1)非渐增组装测试(非增式集成测试):将单元测试后的模块按照总体的结构图一次性集成起来,然后把连接的整体进行程序测试。
一般用黑盒法来编写测试集并进行测试。
程序错误易出现,不容易集成成果。单元测试使用的辅助模块多,适合于规模小的开发系统。
2)渐增组装测试(增式集成测试):在单元测试的基础上,采用自顶向下或自底向上逐层安装测试,直到最后安装测试完毕。
也可采用自顶向下与自底向上相结合集成测试,单元测试与集成测试相结合来进行集成测试。
将错误分解,容易找到错误并测试成功,适合于大规模的开发系统。
系统测试的16个策略:
功能测试,性能测试,压力测试,容量测试,安全性测试,GUI测试,可用性测试,安装测试,配置测试,异常测试,备份测试,健壮性测试,文档测试,在线帮助测试,网络测试,稳定性测试。
回归测试
是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。它不是软件测试的步骤
黑盒测试用例设计方法包括:
等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。
白盒测试的测试方法有:
代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。虽然边界值测试既可以用于黑盒也可以用于白盒,但它的确不属于白盒测试方法。
测试用例编写的依据:
软件的需求文档,开发的设计文档。
自顶向下测试:是从程序的初始模块开始测试。
(1)该方法在早期发现顶层的错误。
(2)早期的程序框架可以进行演示
(3)需要开发桩模块辅助测试。有些甚至需要多个桩模块辅助,加大了桩模块本来的错误影响。
(4)测试完一个上层模块后,挑选哪个模块作为下一个测试模块,以及测试的顺序没有唯一的界定标准。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
自底向上测试:是从程序的底层模块开始测试。
(1)I/O操作可以提前测试,更好提交测试用例。
(2)测试后比较容易观察输出。
(3)需要开发驱动模块。
(4)直到最后一个模块提交,程序才能完整的系统测试。
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
单元测试工具集合:
Parasoft jtest
第一个自动化Java单元测试工具.
Parasoft C++Test
是单元测试和静态分析工具,自动测试C和C++类别、功能或组件.
Parasoft .TEST
是单元测试和静态分析工具,自动测试写在Microsoft?.NET框架的类别
Parasoft Insure++
是一个自动化的内存错误、内存泄漏的精确检测工具。
Parasoft CodeWizard
是高级C/C++源代码分析工具,采用三百种以上行业相关的编码准则,自动识别编译器未检测到的危险的编码构造。
DevPartner Studio Professional
是针对软件开发小组使用 Microsoft Visual C++,Microsoft Visual Basic,Java,ASP 或 HTML 设计的一套紧密配合的调试,测试和管理工具。
Rational Purify
是一个面向VC, VB或者Java开发的测试Visual C/C++ 和Java代码中与内存有关的错误,确保整个应用程序的质量和可靠性。
Rational Quantify
是一个面向VC、VB 或者Java开发的测试性能瓶颈检测工具
Rational PureCoverage
是一个面向VC、VB或者Java开发的测试覆盖程度检测工具