蛇油还是银弹?
Snakeoil在英谚中指“骗人的万灵油”,用来指那些宣称万灵却实际没什么用处的骗人把戏。
silverbullet则指能解决难题的特殊的有效手段。来源于银弹可杀死吸血鬼的传说。
而在软件研发领域,针对自动化测试,也常常能听到类似这两种说法的不同观点:
一种认为自动化测试是测试领域的银弹,是加快测试进度和压缩测试成本的必行手段,是测试领域的必然发展趋势,测试人员甚至会因为自动化测试的发展而失业。
另一种观点则完全相反,认为自动化测试不过是为了KPI而编造出来的额外负担,实际上根本无法承担大部分的测试功能,反而引入了更多工作和投入。
笔者作为在软件测试领域十五年的老兵,且专职从事自动化测试相关工作超过10年,借本文来谈谈自动化测试到底是什么?自动化测试应该做什么?
何为自动化测试自动化测试与测试自动化这里我们必须要厘清两个概念,自动化测试(automatedtesting)和测试自动化(testautomation),它们其实是两个含义差别比较大的概念。
自动化测试(automatedtesting),这里的测试是动名词,更多指测试的完整流程,覆盖测试的各方面。而自动化测试是测试全流程中各个环节自动化的程度。
测试自动化(testautomation),这里的测试是名词,是测试这个具体的行为,更像是Testing的实例。测试自动化把测试这个行为进行了自动化。
通过以上两个概念的解释,我们可以看到,自动化测试比测试自动化涵盖的范围要更加广泛。国内软件测试行业一般不太提测试自动化这个说法,所以我们简单把自动化测试分为广义和狭义来对应automatedtesting和testautomation。
实际上大家在说到自动化测试时往往更多指的其实是testautomation。本文提到自动化测试时一般也理解为狭义的自动化测试即testautomation。
定义百度百科对自动化测试的定义
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
Wikipedia对TestAutomation的定义
测试自动化是使用特殊的软件(区别于被测软件)来控制测试执行并且对实际输出及预期结果进行比对的行为。测试自动化能将正式测试流程中一些必要但重复的任务自动化,或提供更多人力很难完成的测试工作。测试自动化对持续发布和持续测试至关重要。
(testautomationistheuseofspecialsoftware(separatefromthesoftwarebeingtested)tocontroltheexecutionoftestsandthe