您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试管理 > 其他 > 正文

软件测试的心理学问题

发表于:2017-11-15 作者: 来源: 点击数:

 

1软件测试的心理学

 

    测试与开发合作不愉快,有一个很重要的原因在于有些人一开始就把测试的定义搞错了:

    “软件测试就是逐渐证明软件不存在错误的过程”;

    “软件测试的目的在于证明软件能够正确完成其预定的功能”;

    “软件测试就是为广大群众建立一个:‘软件已经做了其应该做的,其信誉度有所保障’的信心”;

    然而这些理解都是本末倒置的。

 
 
    对于测试,更为合适的定义应该是:“测试是为发现错误而执行程序的过程”
 
 

    我们可以类比一下病人看医生的情况,病人因为身体不舒服而去看医生。如果医生对病人进行了一些实验检测,却没有诊断出任何病因,我们就不会认为这次看病是“成功的”。

 

    之所以判断为“不成功的”,是因为病人支付了昂贵的医药费,而症状任然存在。病人会因此而质疑医生的诊断能力。但是,如果实验检测诊断出病人是胃溃疡,那么这次看病就是“成功的”,医生可以进行适当的治疗。

 

    因此,医疗界会使用“成功”或“不成功”来表达适当的意思。我们可以类推到软件测试中来,当我们开始测试某个程序的时候,它就好似我们的病人。对软件进行测试,就是为它诊疗的一个过程。

 

    所以说,测试是为发现错误而执行程序的过程。当你确实“诊断”出“病情”,也就是找到了bug,也就证明这次检测是成功的。

 

2软件测试的经济学

 

    软件测试是否能够发现“所有”的错误?答案是否定的:

    bug为什么不能彻底消除?

 

    为了应对测试经济学的挑战,测试者们应该在开始测试之前建立某些策略。黑盒测试和白盒测试是两种最普遍的策略。

 

1. 黑盒测试--又称为数据驱动的测试或输入/输出驱动的测试。测试的目标与程序的内部机制和结构完全无关。

 

2. 白盒测试--又称逻辑驱动的测试,你清楚盒子内部的东西以及里面是如何运作的,全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

 

3软件测试的原则

 

·测试用例中一个必须部分是对预期输出或结果进行定义;

·程序员应避免测试自己编写的程序;

·彻底检查每个测试的执行结果;

·测试用例的编写不仅要根据有效和预料到的输入情况,而且也应该根据无效和未预料到的输入情况,毕竟我们无法完全预料到用户拿到软件后都会怎样操作;

·检擦程序是否“做了其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”;

·对测试用例进行系统地管理,避免测试用例用后即弃,除非软件本身就是个一次性的软件;

·程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比;

 

    一个软件产品的成功需要从各个环节上去把握,但首先要明确的是思想,用人的左手和右手的关系来比喻开发和测试之间的关系更为恰当。今后也请大家愉快合作哦~