最近面试发现,入行了几年的测试人员还回答不出来手工测试与自动测试区别,能回答的人也答的不是很好,今天给大家分享一下。
从测试执行时使用的工具角度分类,测试可以分为手工测试和自动化测试。
手工测试是指软件测试的整个活动过程(如评审、测试设计、测试执行等)都是由软件测试工程师手工执行人来完成,不使用任何测试工具,狭义上是指测试执行由人工完成,这是最基本的测试形式。
自动化测试是使用软件来控制测试执行过程,比较实际结果和预期结果是否一致,设置测试的前置条件和其他测试控制条件并输出测试报告。通常,自动化测试需要在适当的时间使已经形式化的手工测试过程自动化。
前些年几乎都是手工测试,近几年自动化测试开始慢慢地开展起来了,一些成熟的企业已经开始有专业的团队来做自动化测试。那么自动化测试为什么会存在呢?其实也是有着其自身的道理,并不是无缘无故地出现。
随着现在系统越来越复杂,如果版本升级,新增一些需求,那么我们必须对整个系统进行全面的回归测试,但这样将花费巨大的时间成本。例如中国平安的主页,其绑定了很多子系统,包括平安银行、平安金融、平安保险等。如果现在只是升级几个需求的话,那么必须对所有功能都进行全面的测试,而这么大的系统少说也有3000 个功能点,这样回归测试一轮,可能每天需要几百人,这个成本是巨大的,所以这个时候我们必须通过自动化测试来解决回归测试的问题,进而节约测试成本。并且即使我们不考虑时间成本的问题,手工测试也无法全面回归,在1.3节中我们有介绍过测试心态的情况,如果我们持续测试一个功能,测试了好几轮都没问题,那么下一轮我们可能不会认真且全面地测试,这样就导致一些问题被遗漏了。但如果我们使用自动化测试工具则不存在这个问题,因为工具不知道它测试了多少轮。
所以自动化测试和手工测试应该是相互结合地使用,也不能只有自动化测试没有手工测试,因为在自动化测试的概念中说的很清楚:“自动化测试需要在适当的时间使已经形式化的手工测试过程自动化。”也就是说,第一轮测试是不允许做自动化测试的,第一轮必须是手工测试。所以只有自动化测试也不行。