软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。
软件生产的三个最重要的因素是:质量、进度和费用,但同时也涉及人类心理学的一些重要因素。
那么,作为一位软件测试人员应该懂得哪些心理学呢?
一、摆正心态,要明确自己担当的角色
一般来说,在理想情况下,软件测试人员会测试程序所有的可能执行情况;但在大多数情况下,这几乎是不可能的。即使一个看起来非常简单的程序,其可能的输入与输出组合可达到数百种甚至数千种,对所有的可能情况都设计测试用例是不切合实际的。对一个复杂的应用程序进行完全的测试,将耗费大量的时间和人力资源,这样在经济上是不可行的。
心理学研究告诉我们,当人们在干一件已经知道是不合适的或不可能做到的事时,往往他们的表现就相当糟糕。但如果把程序测试定义为在程序中找出错误的过程,就使测试成了可以做到的任务,从而克服了心理上存在的问题。虽然这看起来像是个微妙的文字游戏,但对成功地进行软件测试有很大的影响。
因此,不要只是为了证明程序能够正确运行而去测试程序,相反,应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都是成立的),然后测试程序,发现尽可能多的错误。
总之,软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然,最终人们还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,而没有做其不应该做的。
二、学会站在用户的角度去思考问题
我们做系统最终目的是为了服务用户,好的测试人员,要懂得时刻从用户的角度出发,了解用户。所以,作为软件测试人员,学会揣摩用户的心理,多去思考用户潜意识遵守的规则行为,表达自己对产品的感受,就显得至关重要了。
说白了,测试心理学就是研究用户怎么思考、怎么操作,站在用户的角度去测试产品,然后保证产品尽可能的满足用户的需求,因为用户觉得好的产品才是好产品。
有些用户对于产品有潜意识的使用习惯,例如很多用户不会阅读使用手册,仅仅根据自己的经验来使用产品,当他们碰壁了之后才会去阅读使用手册。所以,作为测试人员就要保证异常场景测试覆盖全面,并有友好的引导语引导用户正确使用。
例如一个网站,注册账户有两个身份,一个身份是融资者、一个身份是投资者,两个身份的权限无交集,一个账户只能有一个身份,不能兼有两个身份。该网站的注册页面默认是投资者的身份,注册融资者身份的账户需从投资者注册页面点击链接进入融资者注册页面。这样的注册页面就导致很多想要注册融资者的用户注册成为了投资者,导致了很多用户的流失。最后,修改注册页的注册框为投资者和融资者分tab页的形式。
原有的注册页两个账户的身份不明显,用户很容易就按照习惯直接注册账户了,而不是先看是不是自己要注册的身份,而且页面也没有着重表现出注册的用户身份。最终用户注册后,发现网站的内容并不是自己想要的也就放弃了这个网站,注册的账户也就变成了僵尸账户。
要改变这种状况,测试人员在测试的时候,可以适当的忘记熟悉的规则,按照自己的潜意识去操作。因为作为一名测试人员,你很熟悉这个产品,但是用户并不是。有时候,他们会任性地按照自己的想法和习惯去进行操作。
测试中,测试人员应该从引导用户操作、使用功能,预测用户的使用感受等方面去猜测用户的心理和行为。不过,猜测用户心理和行为并不是一件简单的事情,毕竟子非鱼焉知鱼之所想。对于一个刚刚入行的测试人员来说,做到准确的猜测用户行为的确是非常的困难的,那需要有丰富的经验和积累。
三、懂得处理和开发人员之间的关系
开发和测试存在目的是什么?开发是为了实现客户的需求,测试是为了保证软件的质量。两者应该是合作共赢的关系,不是零和博弈,不是此消彼长,不是你胜我败。开发和测试之间是既对立又统一的。是矛和盾的共同体。
软件开发人员比较清楚软件的架构,可以事先判断出bug容易出现的地方,对出现的问题会很快定位;而测试人员作为软件的使用者,可以很快地反馈出自己对于软件使用的感受,让开发人员了解测试,帮助开发人员更清楚用户的要求,对软件如何被使用有了深刻的认识。好的测试人员,应该更多和开发人员交朋友,和他们一起努力,把工作做得更好。
不过需要注意的是,软件测试工程师主要是提出错误报告,但不能主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。记住,软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。
四、软件测试应该避免由设计软件的程序员来担当
开发和测试生来就是不同的活动:开发是创造或者建立一个模块或者整个系统;而测试的目的是证明一个模块或者系统工作不正常。
这两个活动之间有着本质的矛盾,如果一个人同时扮演建设者和破坏者,是不太可能把两个截然对立的角色扮演好的。
首先,当一个程序员在完成了设计,要一夜之间要他突然改变观点,设法对自己的程序持否定的态度,那是非常困难的。
其次,程序中可能包含由于程序员对问题的叙述或说明的误解而产生的错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。
基于以上心理因素,应该限制开发者参与到测试中去。
以上就是软件测试入门需要懂得的测试心理学,你千万好好收藏。
本文转自广州市宝比万像职业培训学校,图片来自网络,转载请注明出处。