软件测试一度被认为是编程能力低的员工的工作。直到今天,仍然有许多公司把优秀的人才放到程序的编写上,也有更多的公司让优秀的人才进行设计,可是很少公司让优秀的人才进行测试工作。实际的软件工程实践表明,让对软件思想有深刻理解的工程师进行软件测试,可以大幅度地提高软件品质。
要知道软件测试和其他工程中的测试有很大的不同,我们没有很完善的指标来描述软件产品,比如通过率等。在一千个软件复制中,如果一个发现了错误,实际上就是这些复制都有错误,更重要的是其他工业产品都有(通过检测)这个概念。可是软件产品的测试目的现在仍然是:尽可能多地找到软件中的错误,而不是证明软件的正确。
软件测试描述一种用来促进鉴定软件的正确性、完整性、完全性和品质的过程。你可能会想,软件测试永远不可能完整时确立任意计算机软件的正确性,然而,在可计算理论一个简单的数学证明推断出下列结果:不可能完全解决所谓“死机”(指任意计算机程序是否会进入无限循环或者**并产生输出)问题换句话说,软件测试是一种实际输出与预期输出间的稽核或者比较过程。测试的另一个定义:为了评估而质疑产品的过程,这里的“质疑”是测试员试着对产品做事,而产品应以testing case 或产品规格上的定义作为响应,虽然大部分产品流畅运行。程序的品质标准通常会随着系统的不同而有差异。不过某些公认的特性是共通的,如可靠性、稳定性、轻便性、易于维护、以及实用性。
测试工作做得好,确实能提升产品的品质。 |