软件测试流程
- 单元测试
- 集成测试
- 系统测试
- 用户验收测试
- 回归测试
单元测试
完成对最小的软件设计单元—模块的验证工作
目标是确保模块被正确地编码
使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误
通常情况下是面向白盒的
对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早地发现和解决不易显现的错误
单元测试的内容
- 接口测试
- 内部数据结构
- 全局数据结构
- 边界
- 语句覆盖,错误路径
集成测试
通过测试发现与模块接口有关的问题
目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构
应当避免一次性的集成(除非软件规模很小),而采用增量集成
集成测试主要内容
- API
- API/参数组合
系统测试
根据软件需求规范的要求进行系统测试,确认系统满足需求的要求
系统测试人员相当于用户代言人
在需求分析阶段要确定软件的可测性,保证有效完成系统测试工作
系统测试主要内容
- 所有功能需求得到满足
- 所有性能需求得到满足
- 其他需求(例如安全性、容错性、兼容性等)得到满足
用户验收/确认测试
Alpha测试
是由用户在开发者的场所来进行的,Alpha测试是在一个受控的环境中进行的
Beta测试
由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者
压力测试VS性能测试
性能测试的目的不是去找bugs,而是排除系统的瓶颈,以及为以后的回归测试建立一个基准。而性能测试的操作,实际上就是一个非常小心受控的测量分析过程。在理想的情况下,被测软件在这个时候已经是足够稳定了
性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。
概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况;
压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的叶面3秒钟内响应;概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。
举例说明:针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。