在进入软件测试行业之初,很多人都会存在下面原始的问题,我称之为“测试三问”:

  1、什么是软件测试?

  2、为什么会有或会需要做软件测试?

  3、软件测试的目的是什么?

  答:

  一、什么是软件测试?

  软件测试是一个过程。是一个质量保证中的一个环节,是一个验证被测产品是否符合客户需求的过程。而且是一个有计划、有规律、有组织的活动。

  二、为什么会有或需要进行软件测试?

  先简单来描述一个逻辑:

  第一、随着信息化的发展,我们在各行各业使用了越来越多的软件。一方面为我们提高工作效率,一方法丰富了我们的生活,甚至在有些行业已经离不开相关的专业软件;

  第二、既然这些软件为我们工作,我们需要它正确的为我们工作,否则会给我们带来不必要的麻烦甚至是危害;

  第三、既然如此,我们在使用软件之前,需要知道它能不能如我们所需要的那样工作。

  这样,产生一个需求:对软件进行测试。

  有需要会产生使其存在,以上简单的回答了上面第二个的问题。

  不仅如此,在很多软件在从程序员手中开发完之初,都会有或多或少的问题,更是提出了软件测试的必要性,随着时间推移,逐渐催生了软件测试行业。

  软件测试是为了保证我们的软件产品的质量。那么什么是我们软件产品的质量?如何才能说我们保证了我们软件产品的质量呢?

  我们说如果我们实现了客户的所有要求,同时保证了程序运行的效率,保证了程序的可读性,可维护性,那么我们保证了我们软件产品的质量。

  前面这些点是我们软件测试的核心的思想。我们的一切软件测试活动都是为了保证这个核心思想而存在的,为了保证这个核心思想,出现了软件测试工程,出现了软件测试这个专门的学科。

  三、软件测试的目的是什么?

  在谈到软件测试目的时,许多人都引用grenford j. myers在《the art of software testing》一书中的观点:

  1、软件测试是为了发现错误而执行程序的过程;

  2、测试是为了证明程序有错,而不是证明程序无错误;

  3、一个好的测试用例是在于它能发现至今未发现的错误;

  4、一个成功的测试是发现了至今未发现的错误的测试。

  这种观点可以提醒人们测试要以查找错误为中心,而不是为了说明软件的正确性,实际上大部分未经过测试软件产品都或多或少的存在着错误。

  但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的目,查找不出错误的测试是没有价值的,事实并非如此。

  首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。

  其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。