做自动化测试之前,你必须要了解的

前言

随着软件测试技术的发展,人们已经从最初的纯粹的手工测试转变为手工与自动化测试技术相结合的测试方法。近年来自动化测试越来越受到人们的重视,对于自动化测试的研究也越来越多。

我在做自动化测试期间经历了不少的坑,有被动的坑,也有自己主动挖的坑,所以在这里做了一些总结。其实主要是总结下自动化测试的一些基础的内容,例如何时进行自动化、如何自动化、为何要自动化等等。

>>1. 什么是自动化测试

首先是把人为驱动的测试行为改成机器执行,通过设计的测试用例,由机器按照测试用例的执行步骤对其进行自动操作,输出结果,由测试人员进行比较。

其次自动化测试往往通过一些测试工具或框架,编写自动化测试用例,来模拟手工测试。

最后自动化测试能极大的节省人力、时间和硬件资源,提高测试效率。

>>2. 为什么要进行自动化测试?

大致总结为6点

1)减少手工测试中的重复性工作,提高测试人员的工作成就感和幸福感

2)提高测试用例的执行效率,实现快速的自动化回归测试,快速的给予开发团队质量反馈

3)减少测试人员的数量,提高开发和测试的比例,节省企业的人力成本

4)在线产品的运行状态监控

5)插入大量的测试数据

6)发现更多的BUG


>>3. 什么样的项目需要做自动化?(dev手一抖,auto忙一宿)
1)  需求变更慢

2)周期长

3)脚本可重复利用

4)产品型项目:每个项目只改进少量的功能,但每个项目必须反反复复的测试那些没有改动过的功能

最主要的是要结合公司的状况,如果迭代周期太短,时间又不够,那么就不适合。

举例来说:如果说你花一个月开发自动化系统,但脚本只针对这个系统,如果下一个系统做自动化,脚本又要重新写,成本就会较高,重复利用率较低。

>>4. 工作过程中对于自动化测试的一些误解

1)有了自动化测试不再需要手工测试。

2)自动化测试对有些测试比如:本地化测试、用户体验测试、探索性测试,测试环境搭建方面并不能完全代替手工测试。

3)自动化测试是对产品的运行,对测试点要有一定的手工测试基础,自动化测试和手动测试相辅相成。

4)自动化测试并不仅指自动化运行测试产品,数据处理也是非常重要的一个环节。

>>5. 日常的测试工作中,经常会引入新的需求或是修复bug,那么如何确定新的需求的加入或bug的修复没有在原有功能中引入新的bug呢?

我想为了保证原有功能的正常,对原功能进行测试,这也是测试过程中非常重要的一个环节。

那么在每次修复bug或新增需求时,我们都需要手动的测试所有功能吗?在没有更多的成本、资源、时间时,你依旧需要手动的进行测试,但其成效是否能达到要求呢?

所以这个时候自动化测试的需求就来了,在我们的日常测试工作中,有大量的回归测试需要我们把它们给自动化了。

>>6. 是否需要系统足够稳定才可以自动化我们的测试工作?

一般情况下是在手工测试完毕,等系统相对比较稳定的时候才开始自动化测试的。但是有些企业也有同时进行的情况。

>>7. 是否要考虑100%的自动化?

我认为100%的自动化测试太过保守。对于一个项目来说,应该是有一个合理的自动化测试覆盖区间,具体多少最好,见仁见智。

少的我见过仅仅用自动化测试覆盖冒烟测试的,多的见过自动化测试超过90%的,因人而异,因项目而异。

>>8. 你的自动化套件寿命足够长吗?

如果你选中的自动化场景生命周期不够长,那么请不要自动化它,构建自动化的一个基本准则是让自动化了的测试工作比手工执行成本要明显降低。

当然如果能将实现自动化测试工作做到日常化、版本化,那么其成本降低将是明显的、效率改进也是显著的、是可以获得良好的投资回报率的。

>>9. 常见的自动化测试的工具

自动化测试工具开发语言:Java、Python等

基础测试工具

(1)单元测试:junit(java)、unittest(python)

(2)接口测试:httpclient(java)、    restassure(java)、request(python)

(3)UI测试:selenium webdriver( web  )、appium(app)


常见自动化测试工具

(1)接口测试:Jmeter、soapui、postman

(2)UI测试:katalon、Robotframework、Android  

>>10. 自动化测试脚本技术

1)线性脚本:录制、回放

2)结构化脚本:含有控制脚本执行的指令,支持顺序、选择和循环3、共享脚本:可以被多个测试用例使用,脚本之间可以互相调用

3)数据驱动脚本:数据驱动脚本是将测试输入存储在独立的文件中,脚本中只存放控制信息。

4)关键字驱动脚本:关键字驱动脚本实际上是较重复的数据驱动技术的逻辑扩展 ,即测试用例的执行步骤(操作,操作对象,操作值)存放在文件中,直接执行。

写在最后
自动化测试技术在现代测试技术中是有一定优势的,但是自动化测试不是在任何情况下都必须的,适当的、或者是有效成本投入,需要我们在合适的时机引入自动化测试,使手工测试和自动化测试实现完美结合。

<END>

关注公众号,回复【资料】可获得自动化,python,jmeter等视频教程

原文地址:https://www.cnblogs.com/wysk/p/12034537.html

时间: 2024-08-02 19:17:21

做自动化测试之前,你必须要了解的的相关文章

写给想要做自动化测试的人

接触了不少同行,由于他们之前一直做手工测试,现在很迫切希望做自动化测试,其中不乏工作5年以上的人. 想做自动化,首先得了解一下自动化测试的一些常见问题: 自动化测试一些问题 什么是自动化测试? 自动化测试,顾名思义,自动完成测试工作.通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试.自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然.因为每一个自动化测试的case都是从手工测试

[转]在做自动化测试之前你需要知道的

[转]在做自动化测试之前你需要知道的 2015-06-09 转自:在做自动化测试之前你需要知道的 什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner.jmeter),或自己所写的一段程序,用于生成1到100个测试数据.

用python做自动化测试--对服务器端的自动化测试(2)-发送端模拟器

python的http client库很多,有httplib, urllib 和urllib2,但这几个用起来还是比较麻烦,requests 是高富帅(http://docs.python-requests.org/en/latest/),接口更简洁,优雅. 支持Json, 很方便设置发送的header, session管理. #!/usr/bin/env python #coding=utf-8 import time,logging,sys,os import pickle import u

Discuz建站教程:本地安装discuz网站,使用selenium做自动化测试

使用Discuz搭建一个论坛网站,使用selenium做自动化测试,发帖等 http://jingyan.baidu.com/article/b87fe19eb57ff252183568d9.html

关于如何做自动化测试和何时做自动化测试的一点见解和疑问

中华传统文化源于<易>,成于孝,孝为德之本.孝顺:孝则顺,不孝则不顺. 不久前,参加Thoughtworks组织的一场自动化测试的分享,同事由于出差国外不能参加,特意嘱托我提问两个问题: 在互联网这个将"敏捷"与"持续集成"进行积极实践的环境里,"敏捷测试"与"自动化测试"成了一个大家经常探讨的话题, 那么自动化测试最佳的实行时间是在什么时候?如何推行最有效的自动化测试? 以下谨代表个人观点: 个人整理了一些测试最

[转] 用python做自动化测试

用python做自动化测试--序 https://wiki.python.org/moin/PythonTestingToolsTaxonomy 原 使用python进行windows自动化测试(1) http://my.oschina.net/yangyanxing/blog/166838 Python Testing Tools Taxonomy https://wiki.python.org/moin/PythonTestingToolsTaxonomy

用python做自动化测试--对服务器端的自动化测试(2)-更多http client实例

上一篇中只是实现了一个很简单的http client功能,request还提供了keep alive, SSL, 多文件上传,cookie 管理功能,http requests头管理等丰富的功能,只要你浏览器实现的功能,requests里面都支持. #!/usr/bin/env python #coding=utf-8 import requests def login_douban(username, passwd): post_data={'source':'index_nav','form

用Postman做自动化测试的功能

自动化测试应该在桌面应用有该功能,在chrome的插件不知道有没有,我也没装chrome版的Postman Postman工具介绍图 上面这张就是Postman的操作界面.一开始我就是这样做简单的数据请求,查看结果. 那怎么做自动化测试呢? Pre-request-Script Pre-request-Script是指请求前的操作 Tests是请求后的操作 它们都是使用JS的语法来写的. 例如我现在要做一个使用手机号自动注册的功能.那分解需求就应该是2步 通过手机号获取验证码 校验验证码.通过就

(转)在做自动化测试之前你需要知道的

什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner.jmeter),或自己所写的一段程序,用于生成1到100个测试数据.狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代

在做自动化测试前需要知道的

转自: http://www.cnblogs.com/fnng/p/3653793.html 什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner.jmeter),或自己所写的一段程序,用于生成1到100个测试数据.狭义