软件测试的定义及目的
定义:为了发现程序中的错误而执行程序的过程。
1.为了发现程序存在的代码或者逻辑错误
2.检验产品是否符合用户需求
3.提高用户体验
4.提高产品质量
软件测试原则:
1.测试尽早介入
2.所有测试都应该追溯到用户需求
3.程序员应该避免检查自己的程序
4.设计测试用例时应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况和意外状态,以及对应程序的处理。
5.二八元组,测试发现的错误中80%很可能起源20%的模块
6.对错误结果要进行一个确认过程,复现的过程
7.制定严格的测试计划
8.完全测试不可能,测试需要终止
9.妥善保存测试过程中的所有文档
软件测试分类
按测试阶段:
单元测试、集成测试、系统测试、验收测试(正式验收测试、alpha测试:公司内部员工和部分用户内测、测试环境。beta测试:通过内测,正式环境,公测)
按测试技术:
白盒测试、黑盒测试、灰盒测试
按测试对象是否运行:
动态测试、静态测试(文档检查、代码走查、界面检查)
按不同测试手段:
手工测试、自动化测试
测试包含的内容:
功能测试、界面测试、安全测试、兼容性测试、易用性测试、
性能测试:获取或者验证系统性能指标而进行的测试,多数情况下,在不同负载情况下进行。
压力测试(强度测试):压力测试分为高负载下的长时间的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
负载测试:负载改变系统的负载方式,增加负载等来发现系统中所存在的性能问题。
恢复测试:检查系统的容错能力。采用各种办法强迫系统失败,然后验证系统能否在指定时间间隔内尽快恢复并重新启动系统。
其它测试:
冒烟测试、回归测试、探索性测试(测试思维)