软件测试的一些大道理
- 穷尽测试是不可能的,需要有自我(主观)的风险分析经验、能力,找出风险最高的优先进行测试;
杀虫剂怪事(几乎不考虑)
PS:我觉得你不形成规范和制度,这些低级错误永远都在。
当测试变多,开发能熟悉你的套路,并产生免疫力。医学上称为耐药性;每次代码迭代都有风险
每次迭代,缺陷修复总会以20%-50%的概率引入新缺陷;(不知道谁统计过没?)
所以每次修复之后,还是必须重新运行之前的test list,从而确保系统不会被隐蔽的方式破坏;(这点可以做自动化)
自动化测试的应用场景
因为自动化测试需要编写代码,而编写代码一般会用掉大量的时间,基于这个因素,就收窄了自动化测试的场景;
- 需求变更有计划性,更新频率不高或不会大幅度改版;
- 项目周期长(几年);
- 脚本重复利用率高;
- 代码、环境可量化;
- 一个项目可以区分出某部分手动、某部分自动
比如:基础性代码、接口,比较独立的API、没有业务依赖,适合自动;
有角度依赖、较复杂的业务逻辑,场景多、类型不一致、因子数多、重度需要人交互,适合手动;
满足以上其中几个条件,都可以做自动化;
手动和自动化测试需要的环境
手动测试
- 需求分析、测试包含的需求项
- 计划、分模块
- 测试环境
- 策略选择、工具选择
- 测试步骤
- 测试数据
- 联调测试
- 测试限制
- 风险考量
- 断言、预测结果
- 测试方案评审,方便发现一些潜在问题
自动化测试
- 测试环境
- 代码编写测试步骤
- 测试数据
- 断言、预测结果
工具:
- Selenium
- 模拟按键工具(包括图像识别)
借鉴的一些方法:
- 等价类划分法
- 边界值分析法
- 因果图设计法
- 判定表设计法
- 正交实验法