利用软件测试软件是加快工作进展的方式,有助于找出其它方式可能遗漏的软件缺陷。

    成为高效测试员的另一条途径是借助他人的力量。

    一、让他人测试你的软件

    1)让其他人检查软件有助于打破杀虫剂怪现象;

    2)人们互相之间不仅看到的不同,而且测试方法也不同;

    3)让别人帮忙测试有助于消除烦躁心情;

    4)观察别人解决问题的方式是学习新测试技术的上佳方法。

    人们很容易落入希望自己单独负责测试软件的陷阱中,不要这样做。

    二、测试共享

    可能的话,除非软件项目特别小,否则至少有几个测试员来测试软件。

    一个常用方法是在一定时间内简单互换测试任务。

    至少可以让他人花时间审查等价划分和测试用例,他们可以根据自身经验为测试提供新的或不同的思路。

    共享测试任务的有趣方法是安排缺陷轰炸(bug bash)。

    缺陷轰炸:是在一段时间(一般为几个小时)内整个测试小组停下指定的常规测试任务,参加轰炸。

    在缺陷轰炸中,选择软件中某一区域,所有测试员集中测试这个区域或者这组特性。

    选择区域可能是软件缺陷聚集之处,看是否还有更多潜伏的问题;也可能是怀疑不存在软件缺陷的区域。

    利用缺陷轰炸可以确定普通测试是否会遗漏软件缺陷,代码编写质量如何。

    选择区域虽然有不少内在规则,但是终要用缺陷轰炸让许多人从特定的软件区域寻找软件缺陷。

    请求协助寻找软件缺陷的佳伙伴是产品支持或者客户服务小组??他们在客户打电话或者通过电子邮件咨询问题时与客户交谈。

    注意:产品支持人员接到的常见求援电话可能是易用性问题。许多打来电话的人只是想知道软件怎样使用,因此较好的做法是让产品支持小组在设计早期协助测试,以指出和修复易用性软件缺陷。

    三、beta测试

    另一种让他人验证和确认软件的常用过程称为beta测试(beta testing)。

    beta测试是用于描述外部测试过程的术语。在该过程中,软件分发给选定的潜在客户群,让他们在实际环境中使用软件。

    beta测试一般在产品开发周期行将结束时进行。理想情况下只是确认软件准备向实际客户发布。

    beta测试的目标可能很广泛,从让新闻媒体报道软件初期使用印象倒用户界面确认到后一步寻找软件缺陷。

    软件测试员要让管理beta测试的人知道beta测试的目标。

    考虑以下几个问题:

    1)谁是beta测试者?

    2)怎样知道beta测试者使用过软件?

    3)beta测试可以成为寻找配置和兼容性软件缺陷的好方法;

    4)易用性测试是beta测试能有所作为的另一个领域;

    5)撇开配置、兼容性和易用性,beta测试在寻找软件缺陷方面竟然出人意料的差。

    注意:试图依靠beta测试来代替实际测试是软件产品开发的主要误区之一,不要这样做。如果这样做可行,为什么软件设计和编程不这样做呢?

    6)beta测试程序会耗费测试员大量的时间。

    测试新手的常见任务是与beta客户一起,帮助解决他们的问题,回答提问,确认他们找到的软件缺陷。

    经证实,beta测试是使独立、翔实的测试数据回归软件的好方法,但是必须正确定义和管理才有效??几乎可以说这也需要测试。

    四、外包测试

    许多公司的一种常用做法是向擅长各方面软件测试的其它公司外包或提交部分测试工作。

    配置和兼容性测试通常是外包测试的理想选择,这些测试一般需要拥有众多不同硬件和软件组合的大小测试实验室,以及一些人员来管理。

    本地化测试是另一个通常被外包测试的例子。除非拥有相当庞大的测试小组,否则配备能懂产品支持的各种语言的测试员是不可能的。

    作为测试新手,虽然不要求决定外包哪些测试任务,但是如果外包的测试是你负责测试的软件部分,你需要与外包公司一起工作。

    外包任务的成败很大程度上取决于软件测试员。考虑:1)测试公司究竟要咨询哪些测试任务?谁来定义?谁来批准?

    2)他们遵守哪个进度?谁来制定进度?如果超过后期限会怎样?

    3)为测试公司提供哪些内容?

    4)测试公司提供哪些内容?至少要提供他们找出的软件缺陷。

    5)如何与测试公司联系?

    6)怎样知道测试公司是否满足期望?他们怎样知道是否满足期望?

    以上课题在匆忙外包测试任务时常常被忽视。

    五、总结

    应该使用任何方式使测试更加有效。

    1)是决定使用技术;

    2)是要求增加人手;

    3)是靠蛮力手工测试。

    每一个软件测试问题都是的,每次测试都能够学到新知识。