一个公司的测试部门由初创到成熟,最具代表性的可能就是其自动化团队的实力,因为当公司的规模越来越大,业务越来越庞杂,测试的工作量也会成倍的增长。整个团队的瓶颈开始由研发人员的不足转向测试人力的不足,单靠人工测试已经无法满足产品的快速更新迭代速度,往往痛定思痛后测试部门都会艰难的走上自动化测试的道路上,那么当我们从无到有打造自己的自动化测试团队时,应该从哪些方面入手,以及按照怎样的流程来避免走太多的弯路呢,这里小编以自己自动化测试的经验来给出一些参考建议。
1、人员组建
这当然是一切工作的开端,一旦我们准备开始打造自动化测试团队,我们就应当开始着手自动化测试人员的挑选。
1)面试招聘
当你到了这个地步才开始意识到要构建自动化测试时,说明你的团队之前并没有太强的自动化测试的意识,那么最有效的方式是招聘一些在自动化测试方向更有经验的人员,一方面他们能够更好的引导自动化测试的构建,另一方面也可以对已有的团队成员进行自动化测试思维的培养。
2)职能分工
除了开始挑选相关的自动化测试人员,接下来需要思考自动化测试工作的一个分工,自动化测试本身也是一个大规模的作业,各个环节需要的技能都各不相同,需要安排具有相关技能的人员,一般自动化测试会涉及到以下环节:
- 自动化测试框架的搭建
- 架构设计能力
- 丰富的coding和debug经验
- 代码性能优化
- 底层接口的开发
- API封装的能力
- 良好的编码规范
- 熟悉各类基础业务
- 自动化脚本的开发
- 基本的脚本语言开发能力
- 熟悉所涉及的测试业务
- Web端的开发
- 丰富的前后端开发经验
- 服务器性能优化能力
2、人员管理
如何更好的管理一个自动化测试团队,可以从以下几个方面入手。
1)流程管理
制定适合团队的一套流程,能够规范团队的工作,提高整体的工作效率,一般可根据公司的管理政策适当的做一些变更,磨合出适合团队的流程。比如有的团队更适合使用敏捷测试的流程,有些则适合瀑布式的串行流程。
2)工作管理
采用一些KPI或OKR类的工作评价指标,以量化团队的工作,提升团队的工作积极性及工作导向。
3)团队建设
团队的磨合在自动化测试的搭建过程非常重要,可以适当的组织技术分享,安排技术培训等,通过技术的共享让各个团队成员找到更适合自己或者自己更感兴趣的业务方向,能够提高团队成员的自我成就感。
3、基建工作
1)测试用例管理系统
事实上测试用例管理系统在没有自动化测试业务的团队也至关重要,然而当你准备投入自动化测试时,测试用例管理系统将更加变得不可或缺。
目前比较普遍的是使用诸如testlink之类的开源系统,然后在其之上进行一些二次开发(这也是为什么第1节中提到需要一些Web端开发的人员),或是使用一些收费的系统,这里不再列举。
2)Bug管理系统
同1)所说,bug系统对整个测试部门都至关重要,但是实现自动化测试时,bug的覆盖跟踪也是自动化测试覆盖率的重要环节,可搭建诸如Bugzilla、Mantis这样的开源系统,也可使用Jira这样强大的收费系统。
3)Wiki文档系统
技术分享、技术培训不可或缺需要Wiki文档系统来维护一些技术文档,普遍会采用Confluence作为内部文档交流的系统。
4)代码管理系统
不必多说,代码库管理是必需环节,SVN、Git等工具均可使用。
4、自动化测试系统构建
如何从头开始构建自动化测试系统,往往是按照以下的顺序依次进行。
1)底层API
所有的自动化测试脚本都基于最底层的API接口的调用,所以这部分是自动化测试工作最先开始投入的部分。
2)自动化测试脚本
最初由于脚本当量不大,所以并不需要太庞杂的系统来承托脚本的运行,所以在底层API开发完毕后即可进入简单的自动化脚本的开发工作。
3)自动化框架
当自动化测试脚本的量级过大后,脚本的选择、运行、调度等变得困难,这时将需要一套自动化测试框架,负责所有脚本的调度,有时也可基于一些开源的框架做二次开发使用,这个阶段需要考虑的是采用哪种策略的框架更适合当前的自动化业务。
4)报告、日志系统
大当量的脚本将会对统一的日志有更高的要求,需要定义更规范的日志以及开发便捷的报告生成系统来配合自动化测试的进行。
5)环境部署
当整套的框架都开发完毕,需要一套规范的方法来快速的部署自动化测试环境到真实的测试平台上去。
6)集中控制系统
团队规模再次扩大之后,可能还需要一套集中控制系统,用来管理各个自动化测试平台,引入账户机制,远程操作,分布式执行等策略
5、自动化测试管理
1)自动化脚本管理
往往脚本也同其他代码一样,需要录入代码管理系统
2)自动化质量管理
通过率是自动化测试质量的重要指标,通过率过低会导致自动化的低效,甚至反而不如人工测试的效果好
3)自动化覆盖率
在编写自动化测试用例时,并非要一味的追求自动化的覆盖率,更多时候我们是需要考量自动化的投入与产出,使得自动化测试发挥其价值而不是消耗更多的人力。
4)持续集成
往往是通过持续集成的方式来自动执行冒烟测试,在软件构建之后立即反馈致命问题
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。