一个软件测试小白的进阶之路

强哥是一个软件测试新人,毕业之后他的职业发展是这样的。html

1

功能测试人员,也就是咱们经常俗称的进行点点点测试工程师。前 1-2 年作功能测试,使用其余人开发的工具进行测试。这个阶段的测试工做都比较初级,严重依赖于别人开发的工具和系统。当系统进行升级换代的时候,强哥会明显的感受到有阵痛期,一下适应不了这种变化。前端

作了 2 年功能测试,强哥悟出了一个道理:功能测试人员通常最遵照行业规则,可是也最没存在感。强哥发誓在下班之后学习自动化测试技术,摆脱这种随便被人甩锅的命运。python

2

自动化测试人员。强哥终于面试上了一个自动化测试的岗位,这一年天天晚上熬夜学习终于获得了回报,试用期结束,强哥已经上手了第一份自动化测试的工做。web

他在部门内部受到了其余同事尊重,尤为是部门的功能测试人员,一双双膜拜的眼神。强哥内心窃喜,这一年的付出是值得的,如今我也能够给别人脸色了。面试

自动化测试的工做内容,主要是使用编程语言编写脚本啊,进行自动化测试。强哥明显感到了测试效率的提高,一我的能够干两我的的活,用老板的话说:小强不错,能打能扛。数据库

2 年过去了,小强隐约感受到了几点自动化测试工做的不足:编程

  • 写出来的代码,功能测试人员看不懂,也没有办法用。平时他和功能测试的同事也是各干各的,至关于在两个部门。这就意味着,从老板的角度来讲,没有发挥 1 + 1 > 2 的效应。flask

  • 本身使用的是 Python 语言,部门的另一位自动化工程师用的是 Java 语言,她被招来作另外的项目测试。强哥很想去看看她的代码是怎么写的,怎么运行的,奈何看不懂,也不知道怎么运行。同是一个岗位的人,却没办法切磋技术,好不孤独啊。后端

  • 还有一个问题。前 3 个月本身写的代码,过几个月本身再去看,竟然有点看不懂了,要调试一段时间才能弄清楚中间的思路。要是被别人知道了,确定会认为本身很菜的,本身代码本身都看不懂。浏览器

虽然看到了自动化岗位的一些不足,可是强哥内心清楚,相比以前的功能测试,瞧别人的脸色,如今简直太幸福了。自从学习了 Python 自动化测试,他感受真正融入了这个行业,不由自主的开始关心行业动态,关心起 Python 这门编程语言的发展势头了。

3

在一次技术开发者大会上,强哥接触到了 ”测试开发“ 这个岗位,心中好久的疑惑终于被解开了。进行技术分享的是国内某大型电商平台的技术专家,详细介绍了测试开发这个岗位的优点和进阶路线。

强哥赶忙掏出一直放在双肩包里的袖珍笔记本,开始记录:

  • 测试开发是给测试部门开发交互界面友好的测试工具和效率工具,像你们熟知的 Postman 和 Jmeter 属于测试开发的工做;

  • 测试开发研发出来的产品,功能测试人员和其余工做人员通过简单培训就能够上手使用,充分发挥 1 + 1 > 2 的效应;

  • 能够将部门管理,BUG 管理,自动化运行,测试报告, 性能分析, 同事登陆等工做模块所有集成到一个平台,大大减小了部门内部和跨部门的沟通成本,提升整个部门和工做的工做效率。

  • 测试开发是行业规则大的制定者。使用工具和平台的人须要遵循这些规则。强哥终于知道本身之前作功能测试的时候是被谁左右了。他默默下定决心,要成为测试开发,成为规则制定者。

测试开发这个工做确实挺好的,商业价值和技术价值都很高,技术演讲到后半段,强哥发现,事情也没那么美好,准入门槛挺高的,要学习的内容不少,初略总结下来,包含的最基本内容就有许多。

  • HTML,GUI ,手机端等页面构建技术。用来给使用者观察和使用的 UI 界面。强哥在自动化测试的时候学过 HTML,打算再学深一点,就能够比较轻松的完成前端页面技术积累。

  • 服务端开发技术。最初强哥不理解这是个什么技术,后来越听越明白,其实就是进行测试的时候接触的后端开发,之前常常和这帮人打交道,报了 BUG 去找他们,他们还死不认帐,几回差点和他们打起来。强哥突然想到:若是我要学这个技术,那我岂不是能够和后端开发作一样的事情了?他们私底下都在作本身的产品和工具,我也能够啊,搞很差还能融到资,卖点钱。

  • 数据库。数据库这东西强哥也接触过,不过了解得不太深刻,只会几个简单的 SQL 查询语句,一旦设计到建表和多表查询,那就只能召唤搜索引擎了。这方面可能还须要下点功夫。

  • 服务部署。服务部署强哥仍是第一次听,不少概念都不懂,不过有一个名词强哥常常听到,那就是 Docker,之前只知道概念,彻底不知道它干吗用的,今天终于算是启蒙了。

听完这个基础技术准备,强哥感到热血澎湃,都想马上起身回家开始学习这些东西了。可没过几分钟,站在台上那位大佬就给他泼了一盆冷水。他一再强调,这些是入门测试开发的基础内容,要真正开发一款好用的测试工具和平台,只会简单的使用这些技术是不够的。

必需要对网络协议有必定的了解,要对开发模式很是熟悉,要会使用版本控制,更重要的,要深刻编程语言的高级特性和编程技巧,若是 CS 基础不够,玩出来的都会是花架子,对职业发展没有太多好处。

强哥心灰意冷,大学学的 CS 课程所有忘光了,如今要捡起来谈何容易啊。没想到一个小小的测试岗位要求这么高。不过演讲者仍是给出了一个比较可行的方法,那就是熟读源码,分析源码。咱们使用的框架,好比 Selenium 和 Appium, 里面包含了不少优秀的设计思想,强哥当年学习的时候被整得一脸懵逼,苦不堪言,一度想放弃,后来用得这次多了,源码重读的次数也愈来愈多,慢慢可以理解他们写的代码有多么厉害了。想到这,强哥不禁得感叹一声,要是有我的带我分析源码该有多好啊,能少走好多弯路。

演讲结束了,强哥决定回家试一试用 Python 语言写一个最简单的 UI 测试工具,在公交车上他已经思考好了大致的框架:

  • HTML 页面展现;

  • Python 开发框架接受 HTML 页面上的请求。如今还不知道有什么框架,回去了解一下。

  • 以前写好的测试脚本。将脚本封装成函数或类,开发框架接受到请求,调用对应的方法就完成了自动化测试。

回到家,强哥喝了口水就开始了解开发框架,上网了解了 Flask 和 Django 两大框架,他赶忙把想到的架构图画下来。

若是用 Java 开发,把中间的开发框架换成 Springboot 就能够了。

  1. 先把 HTML 写好:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Lemon Web Test</title>
</head>
<body>
  请选择你要测试的项目:
   <form action="http://127.0.0.1:5000/ui-test/" method="get">
   <select name="project">
       <option>百度</option>
       <option>豆瓣</option>
       <option>Github</option>
   </select>
       <input type="submit">
   </form>

</body>
</html>
  1. 强哥看网上 Flask 用的代码很少,他初略看了一下官方文档就开始依样画葫芦写简单的 Demo。

from flask import Flask, request

# 初始化服务对象
app = Flask(__name__)

@app.route("/ui-test/")  # 定义访问的网址
def ui_test():
   # 获取 HTML 数据,要测试的项目或者功能
   project = request.args.get('project')
   # 自动化测试脚本封装的函数
   if project == '百度':
  # auto_test()

   # 返回给用户操做成功
   return "test success"

# 运行服务,开放端口 5000
app.run(port=5000)
  1. 至于自动化脚本,他从之前写的 Selenium 脚本随便抽了个最简单的拿出来用,封装成 auto_test 函数。

def auto_test():
# 初始化了一个浏览器
   driver = webdriver.Chrome()

   # 进入项目路径
   driver.get('http://www.baidu.com')

   # 找到要输入的输入框, 元素定位
   input_ele = driver.find_element_by_id('kw')
   input_ele.send_keys('柠檬班')
   # 提交内容
   input_ele.submit()

   # 定位元素
   e = WebDriverWait(driver, 20).until(
       ec.presence_of_element_located((By.CSS_SELECTOR, 'h3.t')))

   # 测试结果是否经过
   if '柠檬班_腾讯课堂' in e.text:
       driver.quit()
       return 'Test Success'

   driver.quit()

虽然这个 Demo 很是的简单,可是强哥已经经过本身写的例子认识到测试开发的强大之处了,接下来,他要努力学习 Python 高级特性,开发框架 ,前端语言、数据库和部署技术,而后就是源码分析能力了。行业规则制定者,这个信念已经在内心。

相关文章
相关标签/搜索