在文章开始之前我想说本篇文章只代表个人言论。
就软件测试中就自动化测试是否终将能替代手动测试的问题,我想先介绍一下手动测试和自动化测试。
1. 手工测试的概念
所谓的手工测试就是测试人员按照事先为覆盖被测软件需求编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工的一个一个的输入执行,包括与被测软件进行交互,然后观察结果,看被测程序是否存在问题,或在执行过程中是否会有异常发生,属于比较原始但是必须执行的一个步骤。
2.自动化测试的概念
自动化测试,实际上是将大量的重复性的测试工作交给计算机完成,通常是使用自动化测试工具来模拟手工测试步骤,执行用某种程序设计语言编制的测试程序,控制被测软件的执行,完成全自动或半自动测试的过程。
3.手工测试的特点
① 测试人员要负责大量文档、报表的制定和整理工作,会变得力不从心。
② 受软件发布日期、开发成本及人员、资源等诸多方面因素的限制,难以进行全面的测试。
③ 如果修正缺陷所需时间稍长,那么想将手工测试应用与回归测试将变得异常困难。这是因为需要测试的测试用例太多。
④ 对测试过程中发现的大量缺陷缺乏科学、有效的管理手段,责任变得含混不清,没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率。这样往往会导致最后的汇总报表数据不准确。
⑤ 反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一,测试花费的时间越长,测试的严格性也就越低。
⑥ 难以对不可视对象或对象的不可视属性进行测试。
4.自动化测试的特点
① 高效率的进行测试
② 可以执行一些手工测试困难或者不可能做的测试
③ 测试的准确性得到提高,测试人员的技术要求可以降低
④ 资源利用率得到提高
⑤ 具有一致性和可重复性。
⑥ 有利于进行回归测试
⑦ 测试具有移植性和可重复性
⑧ 缩短测试的时间
① 软件自动化测试并不能代替人的工作,我们不要期望将所有的测试活动或测试进行自动化。
② 软件自动化测试可能降低测试的效率。
③ 缺乏测试经验。
④ 技术问题。
6.手工测试和自动化测试各自的使用场合
① 手工测试:
(1) 测试很少执行的项目中;
(2) 软件运行仍然不稳定时;
(3) 测试结果很容易通过人验证的测试项目;
(4) 测试项目中涉及物理交互比较多的时候。
② 自动化测试:
(1) 软件维护时使用的回归测试;
(2) 执行压力测试时;
(3) 配置和兼容性测试等项目。
正如上面所说, 手动测试和自动化测试有各自的有点和局限性,并且手工测试是传统测试方法,有测试人员执行,缺点在于测试工作量大,重复多,回归测试难以实现;自动化测试利用软件测试工具自动实现全部或者部分测试工作:管理,设计,执行和报告,制动化测试节省大量的测试开销,并能完成一些手工测试无法实现的测试。一些人认为自动化测试事对手工测试的一种补充,自动化测试不可能完全替代手工测试,因为很多数据的正确性界面是否美观业务逻辑的满足程度等都离不开测试人员的人工判断。所以他们认为自动化测试是不能能替代手动测试的。
而我则不这样认为,社会在进步时代在发展。在刚有测试行业的时候,也没有自动化测试,没有测试软件。随着社会的发展,人们需求的增加,我们一定能开发出相应的测试软件来取代手工测试的内容。
在本文开头我已经说过了,本文仅代表个人言论。结尾再次重申。