目录
一、什么是自动化测试
在测试开展过程中,有很大一部分的工作内容都是通过手工来进行测试的,这个叫做手工测试。
把所有手工测试的行为转换为自动化执行,叫做自动化测试。这个概念不是对的。
自动化测试:
-
分为自动化功能测试和自动化性能测试两个不同的概念。业内将功能自动化统一称为自动化测试,性能自动化统一称为性能测试。
-
自动化功能测试,是将各类手工测试中的回归阶段下的测试流程转换为机器执行的测试行为。目的是为了提升测试的效率。
目前市场主要的岗位需求都会要求有自动化测试能力。
自动化测试不是用来找bug的,是让我们有更多的时间通过其他手段来找到bug
二、自动化测试分层
自动化分层(根据测试颗粒度分层,而不是高低程度):Unit层——Service层——UI层
Unit层:单元测试层,主要做系统的单元测试。也就是所谓的白盒测试。目前业内而言,基本都是由开发人员进行单元测试,测试人员不做。
-
单元测试主要是基于java的Junit或者TestNG实现。因为业内的编程主体语言是java。
-
单元测试就是为了满足代码的覆盖率进行测试。确保每一行代码最少执行一次
# 单元测试案例:
def func(a,b=1):
if a == 1:
return a + b
else:
return None
Service层:在测试维度下,就是接口测试。一般而言都是由测试与开发一同完成的。是目前特别流行的一种测试手段。
UI层:在测试维度下就是ui自动化测试,是自动化领域的最底层,也是最接近用户人为操作的层级。
在软件测试领域下,自动化测试其实就是UI(WebUI和AppUI)和接口两端。
但是目前关于APPUI的自动化技术非常不成熟,稳定性差,效率低,所以基本很多企业都不会选择APPUI的自动化测试。
核心的技术块就是webui的Selenium和接口的Requests两个库。
三、自动化测试介入
-
自动化测试的工作开展:
-
自动化测试开展成功的标志是整个公司内,所有需要应用自动化测试框架的人都正常使用。
-
需求调研:
-
企业内部的业务需求
-
项目需求
-
团队需求
-
-
自动化测试内容的提取
-
编写自动化测试用例
-
试运行(基于当前项目进行)
-
培训
-
跟进优化和缺陷的解决
-
持续推行
-
-
决定自动化测试能否真的入你的期望正常推行,有一个一锤定音的领导很重要
-
如果公司内已经有成熟的自动化测试技术,你需要做的就两件事情,1熟悉现有技术,2优化现有体系
-
-
自动化测试介入:并不是每一个项目都适合自动化测试
-
UI层自动化开展,一定要功能稳定的情况下
-
接口逻辑完成之后,可以开展接口自动化测试
-
系统的回归阶段下,对流程的验证(UI层和接口层)
-
不是每一个功能都需要自动化测试。
对于周期特别短的项目,如果没有成熟的自动化测试技术,就不要强行自动化了。
对于一次性的项目,不要考虑研发自动化测试框架。
所以对于个人发展而言,去到甲方会更好一些。
但是大家不要把外包妖魔化,不过外包对于个人的发展而言,确实不宜待太久。
不要频繁跳槽,不然会让人觉得你不稳定。