在G.J.Myers的经典著作《软件测试之艺术》《The Art of Software Testing《中,给出了测试的定义:“程序测试是为了发现错误而执行程序的过程”。这个定义,被业界所认可,经常被引用。除此之外,G.J.Myers还给出了与测试相关的三个重要观点,那就是:
测试是为了证明程序有错,而不是证明程序无错误;
一个好的测试用例是在于它能发现至今未发现的错误;
一个成功的测试是发现了至今未发现的错误的测试。
实际上,这里暗示了“软件测试”在不同侧面上的含义,也就决定了对软件测试不同的定义和不同的理解。根据作者多年的经验和理解,软件测试的不同视野,概括为如下5类:
软件测试的狭义论和广义论-静态和动态的测试
软件测试的辨证论-正向思维和反向思维
软件测试的风险论-测试是评估
软件测试的经济学观点-为盈利而测试
软件测试的标准论-验证和确认