本文是最近为公司所做的两篇总计之一。主旨是为公司的开发人员提供一些做自测,界面设计时的思路。
关于开发人员自测
开发人员做好自测,是非常必要和也是大趋势。Google公司里面,纯粹的测试人员是很少的,前期都是开发自测(包含必要的测试),后期才是用户体验方面的测试;从成本上分析,BUG越晚发现修复成本越高;从修改的效率来讲,越早处理会越快。另外,写出高质量的代码,是能力的体现,专业的体现,自身价值的体现。
开发人员自测的困难
就我自己接触到开发人员来看,一般会遇到下面这些困难:时间、进度太紧(也许是由于潜意识里任务完成后满足感驱使的);对自己的代码过于自信;认为测试是测试人员的责任;不知道如何有效的自测。
思维上
从上面的困难看来,思维上应该先需要转变下。
● 代码质量、项目质量都是自己的责任,提交代码到代码库里,提交版本给测试给客户,都应是经过自己测试的。否则拿出去东西影响其他人的工作,影响客户眼中的印象和满意度,这样带来的危害更大。
● 代码达没有达到效果,健不健壮,不试试,那怎么知道?凭感觉那是不靠谱,实践是检验真理的唯一标准。
为什么开发人员不忍尝试破坏自己的成果了?为什么不能让自己的成果更加健壮?否则就相当于在溺爱自己的孩子。
测试世界的基本思想
● 测试与开发人员思考角度最大不同就是一个破坏软件,一个建造软件。所以想要测试,就应该是考虑怎样才使软件出了点问题?
● 对于任何功能都有基本流和备选流,或者说正面情况和反面情况。这些情况都应该是要需要去测试的。那如何选择测试的数据和路径?
● 有一个重要的概念叫做“等价类划分”,大致可以这样理解,由于测试数据和测试路径理论上讲是无穷尽的,那么就需要对这些数据和路径进行分类,哪些能走到正常情况,哪些能走到异常情况。再从各个分类里面选一些出来完成测试即可,这样覆盖率就会更高,同时测试起来更快。
● 数据选择,选一组正常数据(符合规定,用户可能真正会用到的);选几组异常数据(特殊符号,不支持,长度大,空的,会触发特殊逻辑的)。
● 路径/场景选择,选一两组最普通的、最直接的、用户最有可能的完成功能的;选几组复杂一点、多次操作、间接完成功能的。
习惯上
改变习惯是非常困难的,坚持完成一个功能就测一个功能(真正带点测试思路去测);公司推行的规范,Checklist,Code Analysis或者自己总结出来的自测列表等等,也要坚持定期自己检查检查,再认真对待、改进结果。
多总结、反思自己的所犯的问题,这样才能有所提高。测试会帮助你的思维变得更加全面和周到。