一、软件测试
1.1、软件分类:系统软件和应用软件
1.2、软件测试定义:发现代码/业务逻辑错误,体验产品是否符合用户需求,并提高用户体验
1.3、软件测试原则:
1.3.1、尽早介入
1.3.2、追溯到用户需求
1.3.3、程序员避免测试自己的代码
1.3.4、设计用例应考虑合法于不合法的输入、各种边界条件,特殊情况制造极端/意外状态
1.3.5、二八原则
1.3.6、对Bug进行复现确认(偶现Bug;必须提;标注:重现率,例:2/10)
1.3.7、制定测试计划
1.3.8、测试需要终止,完全测试不可能
1.3.9、保存测试过程的文档
1.4、软件测试对象:程序(主要)、数据、文档
二、软件测试分类
2.1、测试执行阶段
单元测试:开发
集成测试:开发/测试(接口测试)
系统测试:测试(所用功能合成一个系统进行测试)
验收测试:是否满足需求,是否进行上线(正式验收测试:用户,alpha:模拟实际操作环境进行验收,beta:实际环境进行测试)
2.2、测试技术
白盒测试:知道代码逻辑
黑盒测试
灰盒测试
2.3、测试对象是否运行
动态测试、静态测试(文档检查、代码走查、界面检查)
2.4、不同测试手段
手工测试、自动化测试
2.5、测试包含内容
功能测试,界面测试,安全测试,兼容性测试,易用性测试:(主观性强),性能测试,压力测试,负载测试,恢复测试(灾难备份)
2.6、其他
冒烟测试(主流程测试:在正式开始执行测试前)、回归测试(确认Bug已修复,其它正常功能不受影响)、探索性/自由测试(测试思维)
三、误区
3.1、测试时发现问题,调试时定位及解决文档
3.2、测试组为保证质量负全责:no
3.3、开发人员做测试:no
3.4、过分依赖beta测试(验收)
3.5、测试是可以穷尽的
3.6、利用各种工具、方法、场景折磨软件
四、普及
4.1、软件架构:c/s、b/s