测试工程师的目标:保证所测试的系统在各种应用场景下的功能符合设计的要求。按照我个人的思考,当测试对象到手上,首先要保证它的功能符合产品需求/用户使用需求,当功能确认符合以后,就可以开始思考非常规测试方法了。
所以,要想做出完整度高的测试,除了显式功能需求,隐式功能需求也很重要。隐式功能需求可以从安全性、性能、兼容性去考虑。
如果做到了以上这些,还担心有遗漏测试点没有覆盖到,不用太慌张,测试是有不可穷尽性的,也就是说,绝大多数情况下,是不可能进行穷尽测试的,穷尽测试是指包含了所有输入值和前提条件所有可能的组合测试方法,也就是说所有的可能性都测到了,不残留任何未知的软件缺陷。
但这是不可能的,时间有限,不可能穷尽所有可能的组合。只能在风险和测试质量之间寻找一个平衡。有些遗漏的地方如果是可接受的,其实是可以等待下一个版本继续测试继续优化的。
同时也说明,一个优秀的测试工程师必须有宽广的知识面,同时需要考虑全面,才能设计出有针对性,更易于发现问题的测试用例。
以及作为一个合格的测试工程师,应该明白,真正的测试目标不是保证全面覆盖(也不可能全面覆盖),而是在时间人力研发成本资源都有限的情况下,寻找风险和测试成本之间的平衡点,其实也变相是一个项目管理了。
以上内容为《软件测试52讲》学习笔记day1