什么是自动化测试
自动化测试是现代软件开发的必备环节和基本要求。本文通过手工测试和自动化测试的比较,介绍了自动化测试的基本概念和优点。
一、现在的手工测试方式
我们一般采用的的测试方式,是一种手工的方式。当你写完了一些代码,完成了一个功能,会把程序运行起来,看看程序运行的结果是否和需求一致。如果不一致,则检查代码,找出问题,进行修改。如果一致,则测试通过,功能开发完毕。这是我们常规的测试方式。
这个过程可以用下图表示。
二、手工测试的问题
如果你的程序很小、运行很快,或者代码逻辑不复杂,涉及的业务场景不多,这种手工测试的方式问题不大。但对于大型的、企业级的系统开发,或者需求变更频繁、影响面大,这种手工测试就会有很多的问题。比如以下这些:
- 测试非常耗时。
对于大型企业级应用系统,通过启动应用、手工测试的方式,是非常耗时的。一般多场景的测试,时间以小时甚至天计。程序员的精力也将大量消耗在测试过程中,难以顾及代码优化。
- 在多场景下,手工测试很难覆盖全部场景。
采用手工的方式录入数据、执行流程,创造各种业务测试场景,在场景很多的情况下,很容易遗漏。
- 对于深层的业务逻辑,手工测试很难触及。
例如需要对贷款的审批规则进行测试,手工的方式需要从创建客户、开立账户,一直到申请放款,经过多个步骤才能触发底层贷款审批规则,测试效率很低。
- 修改了代码逻辑,对系统其他功能的影响很难覆盖测试。
由于手工测试的代价高、效率低,因此一般仅测试此次修改涉及的功能,很难对系统其他功能开展全面的回归测试,这是很多新功能上线后出现问题的原因。
- 重复的手工测试造成大量浪费。
手工测试,一般分为单元测试、第三方系统测试和业务验收测试,由开发人员、测试人员和业务人员在不同的阶段执行。虽然阶段不同,但测试案例往往会有很多的重复。当需求不大的时候这种影响不大,但如果在大型的项目建设中,这种重复会造成大量的人力、时间上的浪费。
三、自动化测试是什么样
采用自动化测试能够较好的解决上面的问题。
一个最简单的自动化测试的例子是这样的。
例如我们编写了一个Hello somebody的小程序,这个程序可以对somebody加上Hello祝福语。程序很简单。