51Testing软件测试论坛

标题: 测试应该会点心理学 [打印本页]

作者: 璐璐    时间: 2019-9-24 16:14
标题: 测试应该会点心理学
本帖最后由 璐璐 于 2019-9-24 16:26 编辑


到我的文章题目,是不是叫测试的你产生错觉。什么?一个"打杂"的测试工作,还需要会心理学?没错,看似简单的工作其实并不简单。既要求你可以熟练掌握业务知识,也要求你有纯熟的测试技术。更要求你有综合的能力,其中就包括我们今天要说的心理学。当然我本人并不是搞学术研究的,也不可能有"弗洛伊德"这种心理学大师的造诣。我只想用我所理解的浅薄的心理学,来映射到测试工作中。给自己启发,与大家分享

一、学会剖析开发的性格
软件开发过程中,测试工程师是最后的质量保证,直接决定着软件产品最终的优劣。而我们直接的合作者便是开发人员,不要说什么需求人员,业务人员,实际工作中的现象是:你对产品的初步认识来源于开发对你的讲解,你对这款产品的性能了解来源于开发对你的讲解,你对这款产品的用途、工作原理也来源于开发人员。所以面对开发软件的开发人员,我们一定要学会运用点心理学。请记住开发开发出来的软件功能,存在的不一定就都是合理的。我们要学着做一个精致的测试人员,从开发的性格和习惯着手。

首先:一个开发人员向你提了测试需求,这个开发人员平时给人的感觉性格比较急,对业务分析做的不够透彻,开发经理交代的工作就是硬着头皮用技术去实现,而不会去想它的业务,也不会深究为什么这样做?这样做有什么用?请问,这个时候我们测试的时候首先就应该考虑这位开发人员的性格。基于此我们测试他的提测功能的时候。一定要尽可能多的罗列正常流、异常流的测试场景。去发现更多的缺陷。因此,只懂技术不问流程的开发提测,我们一定要基于业务,尽可能多的建立合理场景。

其次:有这样一种情况,一天平安无事。距离下班还有短短1个小时,突然来了一个小需求,开发拿过来一看,简单。马上也下班了草草提测。这个时候我们肯定也要更加小心的去测试了,因为快下班开发出来的东西,一定会有缺陷。同样第,这个时候作为测试人员的我们心里素质一定要过硬,开发肯定会一直催你,测试完了没?请不要被他们的急切影响到你,你乱了那么BUG就有机可称了。所以临界下班时候的提测功能需要我们分外留心。

在者:一类开发技术没问题,业务能力也可以,但是没有自测的习惯,这里的自测不是什么都不管。基本的正常流程覆盖是会去做的,但是一般不会跑任何异常流程。那么拿到这类开发的提测功能时,你不用担心他不能告诉你如何测试,这个功能的存在意义如何。我们需要做的是在保证正常流无误的情况下,建立各个异常流程,从反面去发现问题。
最后:应该摸透分析积累每个与你合作的开发的开发习惯。这里举个例子来说明问题:有JAVA基础的人都知道,JAVA对异常流的处理机制。一般会选择捕获到所有异常,一种是所有异常都捕获在一起。即下面的两种方式:先来看第一种:有多少异常,抛多少异常。

  1. public class ExceptionDemo05 {    public static void main(String[] args) {
  2.         System.out.println("====计算开始====");        int i = 0;        int j = 0;        try {
  3.             String str1 = args[0];
  4.             String str2 = args[1];            //把字符串转化为整数
  5.             i = Integer.parseInt(str1);
  6.             j = Integer.parseInt(str2);            int temp = i/j;//这里会产生异常
  7.             System.out.println("这里的代码不会执行");
  8.         } catch (ArithmeticException e) {
  9.             System.out.println("算数异常");
  10.         }catch (NumberFormatException e) {
  11.             System.out.println("数字转化异常");
  12.         }catch (ArrayIndexOutOfBoundsException e) {
  13.             System.out.println("数组越界异常");            e.printStackTrace();//具体打印出报错信息        }
  14.         System.out.println("计算结束,我是会被执行到的代码");
  15.     }

  16. }
复制代码
执行结果为:
[attach]126606[/attach]

如果变为无论碰到那种异常,都抛出一种形式的写法就是我们平时看大的那种try ...catch ...exception。请看如下代码:
  1. public class ExceptionDemo05 {    public static void main(String[] args) {
  2.         System.out.println("====计算开始====");        int i = 0;        int j = 0;        try {
  3.             String str1 = args[0];
  4.             String str2 = args[1];            //把字符串转化为整数
  5.             i = Integer.parseInt(str1);
  6.             j = Integer.parseInt(str2);            int temp = i/j;//这里会产生异常
  7.             System.out.println("这里的代码不会执行");
  8.         } catch(Exception e){
  9.             System.out.println("产生异常:"+e);
  10.         }
  11.         System.out.println("计算结束,我是会被执行到的代码");
  12.     }

  13. }
复制代码
此时的执行结果如下:
[attach]126607[/attach]

我们仔细观察两种异常处理产生的结果,都能抛出异常,但是前者可以具体抛出哪行代码出错,而第二种方法则不可。那么这里大家有疑问了?这和心理学有关系吗?当然有,我们换位思考下,开发在开发软件时的逻辑是什么?开发出软件即可。如果开发是一个有丰富经验且精致的利己主义者,那么他一般会尽可能的挑选第一种方式。因为便于后期自己查找问题时定位问题。如果是一个大大咧咧,平时对测试也不怎么重视的开发,那么大多数会选择第二种代码简洁。但是一旦出现问题,定位错误必定会吃苦头。

二、学会深处用户角度思索问题
先来说个笑话,买电脑的时候听到过一个售后对我说。有一次,一位用户对我说,我电脑桌面上的大E不见了,想了好久他也没有明白什么意思,后来才知道。原来是找不到IE浏览器了。软件投入生产后肯定会出现形形色色的问题。拿我最近经历的实例来说。最近一直在测试一个贷款类的产品。基本流程就是借款人通过有资质的借款平台,由保险公司承保(中间枢纽环节、承上启下),向银行快速贷款。有借款流程必有还款流程,因为牵扯银行,是否还款还款金额多少都由银行先提供给借款平台,借款人才能还款。银行不给提供借款人就还不了款。上线前我们针对软件功能进行各种异常流程测试,包括但不限于。
(1)网络异常导致不能还款
(2)中间某步流程异常不能还款。
(3)已经正常还款但通知用户异常。等等诸多异常流程。然而我们没有学会揣摩借款人的心理,我干嘛非要通过借款平台、保险公司在还给银行。我直接还给银行不就行了吗。于是真是客户的这种心理造成了许多线下还款的数据,为此拆东墙补西墙做了许多补救工作,付出了连续两夜加班的代价。

       其实作为测试的我,我眼中的心理学不是那么的高不可攀,也不是那么的遥不可及。就是换个角度、换个思维,站在他人的角度上,站在别人的岗位上想一想我会怎么开发这个软件,我又会去怎样使用这个软件。心理决定意识,意识产生行为。好的测试叫我们从好的心理开始塑造!

文章来源:海哥说测试   
作者:博为峰网校金牌讲师        haibao1371





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2