软件测试 | 走出自动化测试认知的误区
在考古界有这样一种共识,那就是识别识别一件古画仿品比较容易,但要肯定一幅画作是真迹却很困难。同理,逼着想要界定什么是“好”的自动化测试体系比较困难,但如果仅仅是为读者指出一些认知上可能存在的“误区”,还是容易办到的。
误区一:自动化测试是一种比人工测试更先进的高级测试。
自动化测试只是众多测试方法中的一种,并不比人工测试更好或者更先进。与人工测试相比,它既有优点又有自身的局限性。表 1-2 是分别适合两种测试情况的总结。
误区二:测试应该追求 100%的自动化
切忌追求 100%的自动化测试,在可以预见的将来人工测试让然非常重要。片面地追求自动化率,不仅无法提高软件产品的质量,还会让测试人员劳于奔命,带来更大的软件质量风险。针对“图形用户接口测试”,笔者推荐最高 60%的自动化率,追求超过 60%的自动化率,会带来天文数字的维护工作量。
误区三:自动化测试能够发现大量的缺陷,就发现缺陷而言,它比人工测试更有效率。
根据笔者的经验,自动化测试只能发现 30%以下的缺陷,而人工测试能够发现 70%以上的缺陷。就发现缺陷而言,自动化测试的效率低于人工测试。
误区四:应该对一次性的软件项目采取自动化测试。
自动化测试的投入成本,至少要在 3~4 个发布版本之后才能收回,因此针对一次性的软件项目,应该避免采取自动化测试。
误区五:自动化测试只能通过软件系统界面进行测试。
自动化测试有多种实现方式,并不一定要通过软件系统界面进行测试。
误区六:自动化测试与测试自动化完全没有区别,只是叫法不同而已。
自动化测试与测试自动化有细微的差别,不过即便测试人员将它们混为一谈,也没有太大问题。
自动化测试与测试自动化有细微的差别,不过即便测试人员将它们混为一谈,也没有太大问题。
自动化测试(Automated Test)是指使用测试工具自动地执行某项测试任务,概念范围比较窄。例如使用某个测试工具完成软件系统的功能测试或者性能测试等测试任务,而测试计划的设定、自动化测试案例的设计、实现、管理还是人工完成的。
测试自动化(Test Automation)是指整个测试过程都是自动完成的,完全无须人工干预,体现了更加理想化的测试思想,但是实现非常困难。它不但要求由测试工具完成测试的具体执行,还要求测试案例的设计和管理也能由机器完成。例如前面提到大基于模型测试。
误区七:自动化测试是一次性的工作,自动化测试案例开发完成后,自动化测试工作就结束了。
误区八:自动化测试只是测试部门的事情,开发部门完全不用参与。
如果在软件开发过程中,完全不考虑软件系统的可测试性,会导致设计自动测试案例难度加大,甚至完全无法实现自动化测试。
误区九:商业自动化测试工具更好,一定要选用商业自动化测试工具。
测试组织应该根据自身的实际情况,灵活选择自动化测试工具,就自动化的测试工具而言,“不求最好,但求最贵”的心理是不可取的。
评论