自动化测试是近些年的一个热点,为了更加快速、有效地对软件进行测试,提高软件产品的质量,必然会利用测试工具,也必然会引入自动化测试。下面就自动化测试的概念、优势和局限性等知识点进行总结学习。


概念:自动化测试就是通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动的测试,它是软件测试的一个重要的组成部分,它能够完成许多手工无法完成或者难以实现的一些测试工作。正确、合理地实施自动化测试,能够快速、全面地对软件进行测试,从而提高软件质量,节省经费,缩短产品发布周期。


优势:

(1)提高测试质量;

(2)提高测试效率;

(3)提高测试覆盖率;

(4)执行手工测试不能完成的测试任务;

(5)更好地重现软件缺陷的能力;

(6)更好地利用资源;

(7)增进测试人员与开发人员之间的合作伙伴关系。


测试工具能够提高软件质量,改进测试过程,因此在许多公司中得到了广泛应用,由于自动化测试工具自身的特点,为达到较高的投资回报率,在以下项目和环境中更适合使用自动化测试工具:

(1)需要反复进行的工作;

(2)负载压力测试;

(3)公司有大量的测试人员和开发人员,他们合作完成一个产品,那么如何在产品的生命周期中进行有效管理和合作,借助于自动化的测试管理工具,会取得事半功倍的效果。

(4)如果需要进行测试系统后台或者内部的性能特性,进而进行故障定位和性能调优,自动化测试工具会是一个不错的选择。


局限性(自动化测试不能完全替代手工测试,以下项目就不适合采用自动化测试):

(1)定制型项目:为客户定制的项目,甚至采用的开发语言、运行环境也是客户特别要求的,开发公司在这方面的测试积累少,这样的项目不适合作自动化功能测试。

(2)周期很短的项目:项目周期很短,相应的测试周期也很短,因此花大量精力准备的测试脚本,不能得到重复地利用。当然,为了某种特定的测试目的专门执行的测试任务除外,比如,针对特定应用的性能测试等。

(3)业务规则复杂的对象:业务规则复杂的对象有复杂的逻辑关系和运算关系,工具很难实现,或者要实现这些测试过程,需要投入的测试准备时间比直接进行手工测试所需的时间更长。

(4)人体感观与易用性测试:界面的美观、声音的体验、易用性的测试,无法用测试工具来实现。

(5)不稳定的软件:如果软件不稳定,则会由于这些不稳定因素导致自动化测试失败,或者致使测试结果本身就是无效的。

(6)涉及物理交互:自动化测试工具不能很好地完成与物理设备的交互,比如刷卡器的测试等。


对于自动化测试,有一些不正确的认知,现列举如下:

(1)自动化测试可以完成一切测试工作。

(2)自动化测试工具可适用于所有的测试。

(3)自动化测试工具能使工作量大幅度降低。(引入自动化测试工具不会马上减轻测试工作,相反,在更多情况下,首次将自动化测试工具引入企业时,测试工作实际上变得更艰巨了。只有在正确合理地使用测试工具,并有一定 的技术积累后,测试工作量才能逐渐减轻。

(4)自动化测试工具能实现百分之百的测试覆盖率。

(5)自动化测试工具容易使用。

(6)自动化测试能发现大量的新缺陷。


自动化测试工具可以减少测试工作量,提高测试工作效率,但首先是能够选择一个合适的且满足企业信息系统工程环境的自动化测试工具,因为不同的测试工具,其面向的测试对象是不一样的。按照测试工具的主要用途和应用领域,可以将自动化测试工具分为以下几类:

(1)负载压力自动化测试工具;

(2)功能自动化测试工具;

(3)白盒自动化测试工具;

(4)网络自动化测试工具;

(5)自动化测试管理工具;

(6)自动化测试辅助工具。


下面是近几年对自动化测试考察过的真题,基本上在每年考试中都有一席之地,以后仍是考试出题的重点,大家要重视起来。

【2018年53题】以下测试项目不适合采用自动化测试的是( ) 。

A.负载压力测试

B.需要反复进行的测试

C.易用性测试

D.可以录制回放的测试

解析:本题考查自动化测试的基础知识。

易用性是指软件产品被理解、学习、使用和吸引用户的能力。易用性涉及易理解、易学习、美观性、一致性、业务符合性等方面,这些不适合采用自动化测试。

故正确答案为:C


【2018年59题】自动化测试的优势不包括( )。

A.提高测试效率

B.提高测试覆盖率

C.适用于所有类型的测试

D.更好地利用资源

解析:本题考查自动化测试的基础知识。

自动化测试不能适用于所有类型的测试,一般都是有专用的测试类型,例如是功能自动化测试还是负载压力自动化测试等。

故正确答案为:C


【2019年59题】以下不属于自动化测试的局限性的是( )。

A. 周期很短的项目没有足够时间准备测试脚本

B. 业务规则复杂的项目难以自动化

C. 公司有大量测试人员不需要自动化

D. 易用性测试难以自动化

解析:本题考查自动化测试的基础知识。

把测试人员从繁重琐碎的重复性劳动中解放出来,把精力投入到对系统更深层次的探索中来,以期发现软件系统中潜在的重要问题才是自动化测试的意义,跟公司有没有大量的测试人员没有太大的关系。

故正确答案为:C