职业经验 我的自动化开展思路

孟德 · 2017年06月24日 · 最后由 无尽的悔恨 回复于 2017年07月05日 · 2438 次阅读

本人在公司一直从事自动化测试推进工作,最近在好友的邀请下去其就职的公司分享如何开展自动化测试!

希望能帮其解决如下几个痛点:
1.上线周期长;
2.测试时间紧张,上线信心不足,测试覆盖不全;
3.修改一个 BUG,也需要大量的人力去测试;
4.经常需要通宵,只有凌晨才敢上线。

在这里将分享的内容纲要分享一下,主要围绕其痛点关注的问题进行开展!(仅个人愚见,不喜勿喷)
也希望能够给有同样痛点的同学提供一点点思路!

1、手动测试和自动化测试 + 手动测试两种模式对版本质量有哪些提高
在 BUG 修复时:可以降低对相关功能影响;
功能重构时:可以显著提高测试效率,并且充分保障业务的一致性;
新功能上线时: 可以提高测试覆盖,降低意外发生;
对快速上线会比较有信心!

举例:昨天下班前一个上线版本,修改购物车中一个规格商品的问题,
导致一个爆款商品下单金额计算错误的 BUG;

如果购物车全场景手工测试的化,>1 个人天,修复上述问题到上线最快都要 1 天时间;
而开展有成效的自动化之后, 开发花了半个小时定位并修改规格商品的问题,半个小时左右 BUG 回归;
然后跑自动化用例,发现导致的爆款商品下单金额计算错误的 BUG,再修复爆款商品问题;
再次跑自动化用例通过,并上线,前后不到两个小时;

2、自动化测试用例一般在哪个阶段完成
新功能,在手工测试结束之后 或者 新功能上线之后 补充自动化用例;
已用例覆盖功能:可以同步进行 BUG 修复,逻辑微调;

3、自动化测试用例覆盖度到什么程度
建议重要等级 1 级的业务 全覆盖;主体的下单流程,所有涉及到用户金钱的用例;
重要等级 2 级 的业务 好实现的进行自动化;
以接口自动化优先保障后台业务的正确性,辅助 UI 测试保障前端重点业务逻辑,配合表数据校验;
这样自动化的回报会大于投入,过犹不及。

4、能否给出简单示例说明自动化测试中前置条件、操作步骤、预期结果和实际判断
前置条件:清理垃圾数据、开启活动、初始化库存 、生成预期结果 等
操作步骤:可以根据用户操作行为 进行组织,比较好理解 ;
结果判断:在操作过程中收集过程数据,在操作结束收集结果数据 跟 预期结果进行校对;
结果数据包括:页面展示数据、接口返回数据,redis 数据、数据库数据等;

5、自动化用例的管理和新增以及维护,怎么操作
使用 git 进行用例管理;
建议使用 sublime 进行用例维护;
使用 Jenkins 进行用例执行任务管理;

6、自动化用例设计工作量是怎么安排的
先摸索,再度量一个标准;

7、助力手工测试
自动化用例有一定的积累之后,可以有效的提高手工测试效率;
给手工测试做数据初始化;
帮助快速熟悉许久未接触的业务;
作为测试笔记使用;
快速回归修复的 BUG;

8、自动化框架 robot framework
pip install PyMySQL
pip install requests
sudo easy_install pip
sudo pip install robotframework
sudo pip install robotframework-ride # 可不装
sudo pip install robotframework-requests
sudo pip install robotframework-databaselibrary -i http://pypi.douban.com/simple

9、使用 sublime + robot framework assistant 开发调试

10、四层用例结构
接口资源层
接口关键字层
业务关键字层
用例层

11、使用 Jenkins 工程化
已实现项目自动编译、自动 docker 部署、自动分布式测试、自动优雅停机交替上线! 全程 30 分钟左右!

11、谁来写自动化用例
每个测试都要会写,测试结束,自己补充用例!

共收到 8 条回复 时间 点赞

你好,主要是做接口方面的自动化测试吗

你好! 我是以接口自动化为主的,因为我们这边接口相对稳定!

孟德 回复

你好,能分享下自动 docker 部署是怎么流程么?

对于第一点,人工>1 天。自动化 2 小时不到。
很难理解,这是怎么做到的。能详细说说吗?

@michael_wang 你好! 人工>1 天 就是在开展自动化之前在做这种 类似的 BUG 修复 并上线,我们都会围绕修复的功能做一些 周边影响进行测试验证!
在补充大量自动化用例之后,周边的验证都已经实现了自动化,只需要针对 BUG 这个点,先进行手工验证,然后补充自动化用例,或者维护之前的用例,手工 + 自动化 大量节省了测试时间!

@linaup
关于 docker 一些实现技术上的东西,分享的同学很多,我就不多讲了! 我这边操作思路是:
1.模拟现实分布式部署组织结构,设计一套精简化的 服务环境镜像,如 pay、core、sale、cs、数据库、redis 等服务环境镜像;
2.在使用 Jenkins 进行自动编译之后,调用 docker 运行这些镜像(可以根据需要运行多套,以达到多线并执行自动化用例的目的),并将编译好的项目文件分别部署到这些环境中;(自动部署 使用 ansible )
3.校验部署成功之后,Jenkins 自动调用执行自动化用例的任务;

我们这样做的目的是:
每次执行自动化用例都是一个干净的运行环境,数据都经过初始化;
每一套环境都是独立的,可以避免多线运行用例相互干扰!
只有服务器有资源,可以开很多线并行执行用例,缩短自动化用例执行时间,加快上线速度!

孟德 回复

thx

对自动化有了更细致的理解了!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册