在正式介绍iOS测试前,先为读者引入一个思考问题:一千个人有一千种测试观,那么测试人员到底应该持有何种测试观?我们先来看看测试的定义发展史。
20世纪60年代:软件开发过程中,将测试等同于“调试”。
1957年,软件测试区别于调试,成为一种发现软件缺陷的活动。
1972年,在北卡罗来纳大学举行了首届软件测试正式会议。
1975年,John Good Enough和Susan Gerhart在IEEE上发表了文章《测试数据选择的原理》,从此软件测试被确定为一种研究方向。
1979年,在Glen ford Myers的《软件测试艺术》中,定义“测试是为发现错误而执行的一个程序或者系统的过程”。
1983年,Bill Hetzel在《软件测试完全指南》中指出,“测试是以评价一个程序或者系统属性为目标的任何一种活动,是对软件质量的度量。”
2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义,“测试是为了度量和提高被测试软件的质量而对测试软件进行工程设计、实施和维护的整个生命周期过程。”
软件测试的经典定义:在规定的条件下对程序进行操作,以发现程序错误、衡量软件质量,并对其能否满足设计要求而进行评估的过程。——百度百科
以上测试(软件测试)的定义都没错,那么测试工程师应该怎么做呢?
通俗一点来解释,笔者理解的测试为: 测试=工程效率+品质管理 。相应地,测试人员做的事情就是提升工程效率,做好品质管理。引用谷歌团队的一段话 [1] :Essentially,every day we ask ourselves,“How can we make our software development process more efficient to deliver products that make our users happy?”其中“make process more efficient”可以理解为工程效率,“make users happy”可以理解为品质管理。就像上面谷歌团队的这段话,测试人员应该每天思考怎样提升团队的研发效率,怎样提升产品品质来让用户满意。