首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件测试对用户的分析

软件测试对用户的分析

原创
作者头像
新梦想IT职业教育
修改2019-09-05 18:16:01
7200
修改2019-09-05 18:16:01
举报

大部分程序员都由于不能使自己进入必要的精神状态,因而不能有效地测试自己的程序。 除了这个心理学问题之外,还有一个重要的问题:程序中可能包含由于程序员对问题的叙述或说明的误解而产生的错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。在自已的工作中找出缺陷往往是人的心理状态所不容的。

以上看法并不意味着程序员不可能测试自已的程序。不过相比之下如果由另外—些人来进行程序测试,就会更有效、更成功。注意:这个论断并不适用于纠错(改正已知错误),由原来程序的作者纠错肯定效率更高。

在许多意义上来说,一项工程或一程序设计机构是个有生命的有机体,它同样有心理学问题。

本文着重讨论一下在测试过程中的一些心理学的体现和如何将心理学运用到测试工作中。

其实,心理学在测试中主要用于猜测用户的操作行为。猜测用户行为并不是一件简单的事情,毕竟子非鱼焉知鱼之所想。对于一个刚刚入行的测试人员来说,做到准确的猜测用户行为的确是非常的困难的。那需要有丰富的经验和积累,加上一些无法解释的直觉。根据这些年的工作经验,总结了一些用户的操作行为,这些行为准则对于大多数的用户还是适用的。

一、心态上面,明确自己的角色

一般来说,在理想情况下,软件测试人员会测试程序所有的可能执行情况;但在大多数情况下,这几乎是不可能的。即使一个看起来非常简单的程序,其可能的输入与输出组合可达到数百种甚至数千种,对所有的可能情况都设计测试用例是不切合实际的。对一个复杂的应用程序进行完全的测试,将耗费大量的时间和人力资源,这样在经济上是不可行的。

心理学研究告诉我们,当人们在干一件已经知道是不合适的或不可能做到的事时,往往他们的表现就相当糟糕。但如果把程序测试定义为在程序中找出错误的过程,就使测试成了可以做到的任务,从而克服了心理上存在的问题。虽然这看起来像是个微妙的文字游戏,但对成功地进行软件测试有很大的影响。

因此,不要只是为了证明程序能够正确运行而去测试程序,相反,应该一开始就假设程序中隐藏着错误(这种假设对于几乎所有的程序都是成立的),然后测试程序,发现尽可能多的错误。

总之,软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然,最终人们还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,而没有做其不应该做的。

二、不要过于遵循规则

对于一个新到手的东西,很多人都不会去阅读用户使用手册,这是因为产品对于用户而言已经很熟悉了或者用户使用过同类的产品,还有的用户压根就不喜欢按套路出牌。这样就给测试增加了难度,测试人员需要模拟那些用户可能操作的步骤和使用场景来保证产品的良好性。

分析一下这个用户行为其实很好理解,使用这个功能的人员可能不是专业的美工人员,他对于文件的了解仅仅停留在表面,可能是为了工作方便就简单的将文件改成他认为的正确文件传了上去。当然这也算是一个bug,最后bug修复。

总结下来,就是不要严格的遵守规则,因为用户并不会那么做。他们还会用一些方法来规避规则,测试的时候要尽量都考虑到。

三、多去思考用户潜意识遵守的规则行为

有些用户对于产品的使用有潜意识的使用习惯。上条已经讲过很多用户不会阅读使用手册,一些很优秀的产品经理也在致力于设计出让用户脱离使用手册的产品。当然,那是在产品拥有很多忠实用户后才能够实现的产品,就像苹果手机那样。对于一个新推出的产品来说,很多用户还是不了解规则的,但事实上用户也不愿意去了解,仅仅根据自己的经验来使用产品,当他们碰壁了之后才会去阅读使用手册。所以,测试人员要保证异常场景测试覆盖全面并有友好的引导语引导用户正确使用。

测试的时候,可以适当的忘记熟悉的规则,按照自己的潜意识去操作。作为一名测试人员,你很熟悉这个产品,但是用户并不是。有时候,他们会任性的按照自己的想法操作。

测试中,测试人员应该从引导用户操作、使用功能,预测用户的使用感受等方面去猜测用户的心理和行为。不过,猜测用户心理和行为并不是一件简单的事情,毕竟子非鱼焉知鱼之所想。对于一个刚刚入行的测试人员来说,做到准确的猜测用户行为的确是非常的困难的,那需要有丰富的经验和积累。

四、懂逆向思考

逆向思考就是从结果去想起因,这不是用户的思考方式,但是很多用户的操作都是有这种方式引发的。也就是说,对于用户来讲,过程并不重要,他们可以用任何方式和操作方法来达到他们的目的。有些操作对于用户来说是不意思的。

从目的去反推、猜想可能的操作步骤和场景来补充测试用例是必要的。尽管遇到这样的场景的概率很小,测试中运用心理学还有几个方面就是引导用户操作、使用功能,预测用户的使用感受。不过这两个方面如果产品经理在设计产品的时候考虑的全面的话,就会在产品设计阶段解决了,但是不能把这两个方面的问题完全依赖于产品经理的设计,测试的时候多考虑一下,培养自己的用户思维。

测试心理学就是研究用户怎么思考、怎么操作,站在用户的角度去测试产品。然后保证产品尽可能的满足用户的需求。能留住用户的产品才是好产品。

五、懂得处理和开发人员之间的人际关系

开发和测试存在目的是什么?开发是为了实现客户的需求,测试是为了保证软件的质量。两者应该是合作共赢的关系,不是零和博弈,不是此消彼长,不是你胜我败。开发和测试之间是既对立又统一的。是矛和盾的共同体。

软件开发人员比较清楚软件的架构,可以事先判断出bug容易出现的地方,对出现的问题会很快定位;而测试人员作为软件的使用者,可以很快地反馈出自己对于软件使用的感受,让开发人员了解测试,帮助开发人员更清楚用户的要求,对软件如何被使用有了深刻的认识。好的测试人员,应该更多和开发人员交朋友,和他们一起努力,把工作做得更好。

不过需要注意的是,软件测试工程师主要是提出错误报告,但不能主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。记住,软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。

六、软件测试应该避免由设计软件的程序员来担当

开发和测试生来就是不同的活动:开发是创造或者建立一个模块或者整个系统;而测试的目的是证明一个模块或者系统工作不正常。这两个活动之间有着本质的矛盾,如果一个人同时扮演建设者和破坏者,是不太可能把两个截然对立的角色扮演好的。

首先,当一个程序员在完成了设计,要一夜之间要他突然改变观点,设法对自己的程序持否定的态度,那是非常困难的。

其次,程序中可能包含由于程序员对问题的叙述或说明的误解而产生的错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。基于以上心理因素,应该限制开发者参与到测试中去。

新梦想总结:软件测试是一项技术性的工作,也涉及到一些人类心理学,测试有时候不仅仅只是测试。测试是一项极富创造性、极具智力挑战性的工作,默默循规蹈矩未必能让自己发挥出最大的价值。测试的最终目的是为了用户,多站在用户的角度灵活测试,得出有效结果并加以改进完善产品,才是一个合格专业的测试人员。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档