1、QA需要的优秀品质
1.会写,能写测试代码、测试工具
2.推动项目顺利进行
3.扎实的测试能力
4.沟通协调能力好
5.喜欢学习新事物
2、采取措施对QA人员的"犯错"补救
测试人员是软件的守护者,是保证软件质量的最后一道防线
最后一道关卡,测试人员“犯错”,有相关的补充措施补救;
3、测试与用户行为
测试归根到底是模拟用户的行为,替用户把各种可能的操作都做了(包括创造条件/创景),把各种问题都提前暴露出来
1)用户是谁,用户的行为是什么(做了该做的事情;没有做不该做的事情)
2)各种测试技术
3) 未来扩展性、发展等等
4、可测性改造需要遵循的原则
可测性改造,尽量避免对产品功能/实现层次的影响
5、自动化需要遵循的原则
- 尽量避免对产品实现层次的直接影响
- 根据产品的不同质量需求,进行不同层面(前端/后端)、不同深度的自动化。谨记:自动化不是越多越好
6、bug的发现和重现
- 需要有严密的思维,而合则需要有冷静的头脑和敏锐的眼光
- 夏洛克.福尔摩斯说过:“除去不可能的剩下的即使再不可能,那也是真相。” 这在测试上也有一定的指导意义,QA应该具有怀疑精神。
1)优先怀疑曾经有“前科”的模块和开发人员
2)推测开发人员的行为
7、测试是一种极其耗费精力的脑力劳动
- 测试是一件非常有技术含量的工作,不是体力活,完全是脑力劳动。只有保持冷静的头脑,才能把软件中的缺陷都找出来。
- 如果发现在测试制定和执行的时候,完全是重复/不用思考了,那么此时的测试多数是无效的测试
8、UI自动化遵循的原则
- 涉及的众多框架有robotium,uiautomator,appium,这些框架有利有弊,适合自己项目的才是最好的
- 真正实施之前,请充分考虑手动测试VS自动化测试的优劣
- 不要过分自动化
9、专项测试时,使用对应的工具辅助进行测试
专项测试:CPU 内存 GPU过度绘制 启动/加载时长 流量 电量 弱网 权限 兼容 常规检查,使用对应的工具辅助进行测试,会事半功倍。
10、白盒测试遵循的原则
- 评估黑盒覆盖的盲点,非核心功能,使用白盒覆盖。一旦评估不到改动,回归时常常会覆盖不到。黑盒测试起着重要的、不可替代的作用,必须遵循一定的测试理论+ 测试经验。此时恰好可以使用白盒进行覆盖
- 实施之前,充分考虑业务需要、投入产出比、人力情况、白盒测试的弊端
11、手工测试时谨记的坑
ps:手工测试无法保证黑盒测试的科学性与严密性
- 由于人力、资源等诸多因素的限制,难以进行全面的测试; 代码修改后影响范围的评估,一定让开发人员亲自参与。
- 重要模块、修复bug需要时间长的功能,优先测试,给问题修复、回归留足时间
- 反复测试容易带来倦怠情绪,所以测试期间需要交替使用多种测试方法,保持思维的敏捷
12、流程化管理
- 不同的业务线、甚至同一个业务线内需要根据业务需要,采用不同方式的流程,切勿一刀切
- 可以结合如下点进行综合考虑:需求变化太快、迭代速度、迭代规模大小、质量需要
- 流程化管理的原则:服务并满足业务、质量的需要。换句话说,如果有了流程反而不能很好满足当前的业务/质量需求,那
就需要去流程化,但这点往往是最容易忽略的。
- 优化流程原则:是否满足质量需求,达到事半功倍(但无论如何,应该对准当前最核心的痛点)
13、单元测试
- 优势:能从根本上减少bug及定位bug的成本,也能够提高代码重构的成功率
- 要求:实际编写测试的人员绝对熟悉代码,故而需要由最熟悉代码的人来写
- 通常做法的劣势:测试人员进行单元测试,工作量大、周期长,结果事倍功半,所以单元测试应该由开发人员自己来写