漫谈自动化测试(三)——建设阶段划分

来源:互联网 发布:c语言9除以10的余数 编辑:程序博客网 时间:2024/05/29 07:22

我们在上一篇《漫谈自动化测试(二)——适用场景 》谈到了软件自动化测试的适用场景,对自动化测试的先决条件和适合的测试类型进行了分析说明。既然我们知道了要开展自动化测试,那也有必要知道自动化测试成熟度的阶段划分,就像程序员也分初级、中级、高级等一样,一个公司或团队的自动化测试的能力构建,也可划分以下三个阶段。


初级阶段——测试工具杂乱拼凑

在自动化测试水平的初级阶段,公司已经具备了独立的自动化测试小组,拥有自主研发、二次开发、开源或商业的一套测试工具,脱离了完全的手工测试。但是,相关的测试工具没有统一的规划和集成,就像拥有了一个工具箱,锤子是锤子,扳手是扳手,螺丝刀是螺丝刀,工具杂乱的陈列在一起,不能互相协同工作。发展水平较低的,甚至还有用石块代替锤子,用木棍代替螺丝刀的呢抓狂

我们都知道,一套完整的测试工具,包括缺陷管理系统(如Bugzilla,JIRA等),用例管理系统(如TestLink等),脚本管理系统(如SVN、Git等版本控制系统,也可和用例关联在一起管理),执行驱动系统(如Robot Framework的驱动, Hadoop系统等),测试报告管理系统(貌似比较缺乏,一般都是以文件或数据库形式存在),实验室管理系统(也即所谓的硬件设备管理系统)。这些管理系统(工具)的优劣程度决定了公司自动化发展水平的高度。请关注下篇 《漫谈自动化测试(四)——如何选型》。

有些公司甚至缺少多个以上提及的管理系统,甚至还用最原始的 Excel 或文本文件管理 Test Case,用共享文件夹方式管理测试脚本和工具,处于最原始的阶段。以上提及的管理系统,有些也不是必须的,比如实验室管理系统,若公司就那么几台服务器,根本就没必要使用管理系统,但是若硬件设备成百上千,就需要使用管理系统了。


中级阶段——测试系统协同工作

在中级阶段,公司应该具备一套比较先进的管理系统了,至少拥有用例管理系统,脚本管理系统,缺陷管理系统和测试执行驱动系统(工具)。该阶段由于采用了先进的管理系统,比初级阶段具有很大的提高,管理效率、规范性等都得到了保障。

在此阶段,公司具备一套统一的测试框架,能够满足现阶段所有产品的测试需求,对测试用例、测试脚本的管理良好,开发自动化测试脚本简单高效,使用方便。拥有独立的自动化测试团队和测试环境,负责自动化测试框架设计和开发,自动化测试工具的开发和维护,自动化测试用例实现、执行和维护等工作,分工明确,具有中长期发展规划。

大部分的公司都处于在这个水平,其实达到中级阶段,软件测试的发展投入应该不少,说明公司比较重视软件测试和管理。


高级阶段——测试管理高度集成

高级阶段的自动化发展水平,公司不仅拥有完整先进的管理系统(设备管理、用例管理、缺陷管理、执行驱动、报告管理、脚本管理等),而且各个系统无缝连接,高度协同工作。各个管理系统即相对独立,又拥有高度的可扩展性和透明度,能够与其它系统完美结合,并且均有专人负责开发和维护。

在这个阶段,公司有完全独立的管理系统开发维护人员,有统一的规划和发展计划,拥有一套完整的 CI 系统(continue integration 持续集成),对于公司各个部门的各个产品,能够通过设备管理系统调度分配硬件设备,有中心控制器负责整个测试流程控制和调度。从被测产品的代码提交、编译、打包、部署,到测试设备分配、测试脚本执行、测试报告收集和发送,测试结果分析统计,都是一条龙服务。整个公司都基于一套统一的系统集合,具有高度的统一性、降低各个部门独立开发维护的成本、可扩展性良好,拥有专业的开发维护人员,管理系统和测试工具质量可靠,测试可信度高。

要达到高级阶段,公司需要雄厚的财力和物力,并且拥有技术实力强大的团队,中小企业是很难达到这个阶段的。据我个人认为,华为公司就达到了本阶段,它的各个管理系统都是自主研发,各个系统设计架构非常优秀,具有良好的可拓展性和适用性,都达到企业级商用的水平,但要完整理解和使用这一系列的系统,也不是那么简单的事情,一般都是各个部门分配专人接受培训,基于公司的统一管理系统,再针对各种产品的特性负责本部门产品的自动化测试工作。


欢迎转载,转载请注明出处: 《漫谈自动化测试(三)——建设阶段划分》 http://blog.csdn.net/thomashtq/article/details/45217659



0 0
原创粉丝点击