学自动化测试

来源:互联网 发布:软件架构有哪些 编辑:程序博客网 时间:2024/05/22 10:56

初步接触自动化测试,发现自动化测试的确实有许多值得研究的东西:

 

一、什么是自动化测试

 

对于自动化测试的定义,众说纷纭。从网上摘了个比较好的:

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

 

二、什么样的项目需要自动化测试

 

一般来说,维护时间较长的项目或者说产品需要自动化测试来完成又有每次系统升级后一遍又一遍的重复测试过程。

 

三、什么样的项目适合自动化测试

 

    1) 软件需求变动不频繁。

 

测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。

项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。 

 

2) 项目周期足够长。

 

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

 

3) 自动化测试脚本可重复使用。

 

四、自动化测试的本质

 

自动化测试只能帮助测试人员去完成日复一日需要重复做的操作序列,以及模拟一大群测试人员同时对服务器发出请求,等等。自动化测试能完成的只是重复。不要对自动化测试抱有太大的希望,自动化测试永远都不能代替手动测试,自动化测试永远都是手动测试的补充。

 

五、关于自动化测试的叫法

 

自动化测试这个叫法并不十分确切。个人认为叫做计算机辅助测试比较好。其实测试和开发都完全是人的主观能动性的体现。计算机永远无法完成自动化测试,除非科幻电影中的拥有人类智商的机器人出现。相对于开发来说,其实开发中也有许多计算机辅助的成分,这些工具比自动化测试工具出现的更早。比如IDE的智能感知,开发工具的拖拽。甚至各种开发框架的提供等等,这些都是在为开发提供方便。而自动化测试工具的作用就是为测试提供方便。