理论教育 自动化测试的优点和局限性,以及对投入成本的考虑

自动化测试的优点和局限性,以及对投入成本的考虑

时间:2023-10-25 理论教育 版权反馈
【摘要】:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。测试脚本的稳定性决定了自动化测试的维护成本。自动化测试既有自身的优点,也有其局限性。自动化测试不是万能的,需要根据实际情况引入并有的放矢地设定其覆盖率。自动化测试的投入成本,至少要在好几个发布版本之后才能体现其价值。因此对于一次性的软件项目,应该避免采用自动化测试方案。5)自动化测试只是测试工程师的事情,与开发人员没有关系。

自动化测试的优点和局限性,以及对投入成本的考虑

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。手工测试通常是在设计测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果并将其与期望结果进行比较。在此过程中,为了节省人力、时间或者硬件资源,提高测试效率,便引入了自动化测试的概念。通过自动化测试可以极大地提升回归测试、稳定性测试和兼容性测试的工作效率,在保障产品质量和持续构建等方面起到举足轻重的作用。特别是在敏捷开发模式下,自动化测试更是必不可少的步骤。

近年来,测试领域和几年前相比发生许多令人欣喜的变化:

1)敏捷开发模式的盛行掀起自动化测试的一轮热潮,测试和开发合作越来越密切。

2)测试工作的技术性越来越强,以往常见的“基于开源软件提升开发效率”的模式也被广泛应用到测试工作中。

3)组件化、软件产品线开发模式的进一步成熟,开发效率和测试效率随之进一步得到提高。

自动化测试相较于手工测试的优势在于:

1)自动化测试可以完成某些手工测试难以完成的工作,如并发测试、压力测试等。

2)自动化测试可以提高手工测试的工作效率,如执行具有多个重复步骤的测试用例。

3)自动化测试在敏捷开发过程中,可以快速验证代码修改的正确性。

4)自动化测试和手工测试相辅相成,互相促进。

实施自动化测试前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。通常需要满足以下几个条件:

1)需求变动不频繁。测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例和相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改和调试,必要时还需要修改自动化测试的框架。如果耗费的成本高于节省的测试成本,那么自动化测试便是失败的。如果项目中的某些模块相对稳定,而某些模块需求变动性很大,可以针对相对稳定的模块进行自动化测试,而变动较大的仍采用手工测试。(www.daowen.com)

2)项目周期足够长。自动化测试需求的确定、框架的设计、测试脚本的编写和调试都需要相当长的时间来完成,这个过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

3)自动化测试脚本可重复使用。如果费尽心血开发了一套近乎完美的自动化测试脚本,而脚本的重复使用率很低,致使期间所耗费的成本大于所创造的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试手段。

4)手工测试无法完成的测试工作。某些测试采用手工的方式无法完成,或者需要投入大量时间与人力,此时就可以考虑引入自动化测试,如性能测试、配置测试、兼容性测试、大数据量输入测试等。

自动化测试虽然有如此多的优势,那是不是意味着自动化测试就是“包治百病”的软件“银弹”呢?有些人可能会有如下误区:

1)自动化测试是一种比人工测试更先进、更高级的测试手段。自动化测试既有自身的优点,也有其局限性。例如对于需求不明确,或者界面经常发生变动的产品就不适合使用自动化测试。自动化测试与手工测试的关系应该是相辅相成,互相弥补各自的局限性,相互促进。

2)所有的手工测试都应该被100%的自动化。一味片面地追求自动化率,不仅软件的质量得不到提高,而且还会让测试人员疲于奔命,投入和产出的性价比很低。有不少负面测试就只能通过手工测试的方式完成并进行验收。自动化测试不是万能的,需要根据实际情况引入并有的放矢地设定其覆盖率

3)自动化测试能够发现大量的缺陷,它比手工测试更有效。实际情况是,自动化测试只能发现30%以下的软件缺陷,而手工测试反而能发现更广泛且很深层次的问题。自动化测试在同归测试时可以节省很多时间并快速验收,但这并不意味着其发现问题的能力比手工测试更强。单从发现缺陷的角度而言,自动化测试的效率低于手工测试。

4)即使一次性的软件项目也应该采用自动化测试。自动化测试的投入成本,至少要在好几个发布版本之后才能体现其价值。因此对于一次性的软件项目,应该避免采用自动化测试方案。

5)自动化测试只是测试工程师的事情,与开发人员没有关系。在软件开发过程中,首先需要考虑软件本身的可测试性。如果开发人员一开始就不把软件的可测试性考虑进来,会导致开发的软件难以测试,甚至无法实现自动化测试。

6)商业自动化测试工具更靠谱,一定要选用商业自动化测试工具。就自动化测试工具而言,测试团队应该根据自身实际情况来选择自动化测试工具。商业自动化测试工具有技术团队进行支持,遇到问题也许能尽快得到支持。但是如果有特殊的需求,这类软件往往没有自由的可定制功能。而开源自动化测试工具由于源代码都是开放的,如果团队有特殊的定制需求,可以由测试团队自行修改开源自动化测试工具来满足团队需要。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈