本文是最近为公司所做的两篇总计之一。主旨是为公司的开发人员提供一些做自测,界面设计时的思路。
关于开发人员自测
开发人员做好自测,是非常必要和也是大趋势。Google公司里面,纯粹的测试人员是很少的,前期都是开发自测(包含必要的测试),后期才是用户体验方面的测试;从成本上分析,BUG越晚发现修复成本越高;从修改的效率来讲,越早处理会越快。另外,写出高质量的代码,是能力的体现,专业的体现,自身价值的体现。
开发人员自测的困难
就我自己接触到开发人员来看,一般会遇到下面这些困难:时间、进度太紧(也许是由于潜意识里任务完成后满足感驱使的);对自己的代码过于自信;认为测试是测试人员的责任;不知道如何有效的自测。
思维上
从上面的困难看来,思维上应该先需要转变下。
● 代码质量、项目质量都是自己的责任,提交代码到代码库里,提交版本给测试给客户,都应是经过自己测试的。否则拿出去东西影响其他人的工作,影响客户眼中的印象和满意度,这样带来的危害更大。
● 代码达没有达到效果,健不健壮,不试试,那怎么知道?凭感觉那是不靠谱,实践是检验真理的唯一标准。
为什么开发人员不忍尝试破坏自己的成果了?为什么不能让自己的成果更加健壮?否则就相当于在溺爱自己的孩子。
测试世界的基本思想
● 测试与开发人员思考角度最大不同就是一个破坏软件,一个建造软件。所以想要测试,就应该是考虑怎样才使软件出了点问题?
● 对于任何功能都有基本流和备选流,或者说正面情况和反面情况。这些情况都应该是要需要去测试的。那如何选择测试的数据和路径?
● 有一个重要的概念叫做“等价类划分”,大致可以这样理解,由于测试数据和测试路径理论上讲是无穷尽的,那么就需要对这些数据和路径进行分类,哪些能走到正常情况,哪些能走到异常情况。再从各个分类里面选一些出来完成测试即可,这样覆盖率就会更高,同时测试起来更快。
● 数据选择,选一组正常数据(符合规定,用户可能真正会用到的);选几组异常数据(特殊符号,不支持,长度大,空的,会触发特殊逻辑的)。
● 路径/场景选择,选一两组最普通的、最直接的、用户最有可能的完成功能的;选几组复杂一点、多次操作、间接完成功能的。
习惯上
改变习惯是非常困难的,坚持完成一个功能就测一个功能(真正带点测试思路去测);公司推行的规范,Checklist,Code Analysis或者自己总结出来的自测列表等等,也要坚持定期自己检查检查,再认真对待、改进结果。
多总结、反思自己的所犯的问题,这样才能有所提高。测试会帮助你的思维变得更加全面和周到。
关于用户体验
界面设计、动作交互设计、用户体验,这块的重要性应该不需要进一步阐述了吧。
这里也是从思路上简单讲讲怎么考虑用户体验:
● 首先是学习。一般来讲,我们做的东西都不是全球第一,全球首款。那么我们在做东西前,可以学习下模仿下前人已经做出来的效果(切忌只关心功能)。
比如,界面布局;页面 margin,页面中主体的对齐、留白;字体大小、粗细的使用;
其实看到的一切都是可以关注的。
● 平时还可以对自己使用软件和网站进行观察和体会,看看他们做得好的是在具体怎么做。
比如,操作成功、失败的提示怎么表现;注册流程、购物车流程、是怎么进行的;日历控件、向导控件是怎么在用;图片库、视频库怎么放置的,怎么播放的。
● 当我们真正要做的时候,还可以看看那些规范、指南。看看其他人都建议怎么做,建议避免那些效果。
● 最后,我们做的时间,在界面设计上尽量风格统一(按钮大小、颜色,边距,Grid,表单设计等),动作交互设计上尽量和主流的效果一致(如何给出提示信息,如何弹出层,如何做表单的验证)。
关于持续学习和追求精益求精
也是就我自己接触到开发人员来看,很少人会在做之前或者做的过程中,跳出来暂别任务,看看工作任务的技术有没有什么最佳实践有没有其他方案,或者和能力更强的开发人员进行讨论和交流。很多人都喜欢过分独立的解决问题,但问题就来了,一个方面是时间的消耗,另一个方面是容易闭门造车。
另一现象是很多人对其他的人建议反馈或者提出的问题,比较随便,怀着防备的心情,戴着有色眼镜,没有认真考虑和对待,没有考虑是不是自己真的没有做好,真的有问题。
当然这些不是完成任务的必需品,但是我以为这些方面却是一个人成长或者成就的基础。
想要提高,这是你自己的责任,就该想想怎么去解决。态度决定一切,追求卓越。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/