软件企业如何实施自动化测试
摘要:在软件测试日新月异发展的今天,自动化测试正在成为软件测试领域里的一个非常瞩目的趋势和潮流,很多软件公司正在或已经在企业测试团队内部实施软件自动化测试流程和框架,在软件测试组织中,对测试过程中的知识进行有效的管理,是提升组织整体测试水平的关键。
关键词:软件测试 知识管理 评估
软件产业虽然只有短短几十年的历程,但是其应用范围已经从最初的科研专用转变为渗透入我们社会中生产生活各个方面,起着非常重要的作用,我们人类社会对软件的依赖正在越来越强,根据牛顿第三反作用力定律,那么软件问题对我们的影响也在越来越大。如果软件企业有意向实施自动化测试,那么应该具备什么样的条件才可以引入自动化测试呢,才可以最大可能的减少引入风险,并能够可持续性的开展下去呢?
1 对企业自身现状的评估分析
第一,从企业规模上来说,没有严格限制。无论公司大小,都需要提高测试效率,希望测试工作标准化,测试流程正规化,测试代码重用化。所以第一要做到的,就是企业从高层CTO开始,直到测试部门的任何一个普通工程师,都要树立实施自动化测试的坚定决心,不能抱着试试看的态度。一般来说,一个这样的软件开发团队可以优先开展自动化测试工作:测试-开发人员比例合适,比如1:1到1:1.5;开发团队总人数不少于10个。当然,如果你的公司只有三五个测试人员,要实施自动化测试绝非易事;不过可以先让一个、两个测试带头人首先试着开展这个工作,不断总结、不断提高,并向层层上司经常汇报工作的开展情况,再最终决定是否全面推行此事。
第二,从公司的产品特征来说,一般开发产品的公司实施自动化测试要比开发项目的公司要优越些。原因很简单,就是测试维护成本和风险都小。产品软件开发周期长,需求相对稳定,测试人员可以有比较充裕的时间去设计测试方案和开发测试脚本;而项目软件面向单客户,需求难以一次性统一,变更频繁,对开发、维护测试脚本危害很大,出现问题时一般都以开发代码为主,很难照顾到测试代码。但决不是说做项目软件的公司不能实施自动化测试,
当前国内做项目的软件公司居多,有很多正在推行CMM等级标准,这是好事情;只要软件的开发流程、测试流程、缺陷管理流程规范了,推行自动化测试自然水到渠成。
第三,说说标准化的开发和管理流程。不管是CMM还是ISO,不管是开发流程、测试流程还是缺陷管理流程,这里不能一一阐述,可以参考RUP(Rational Unified Process,Rational 统一过程),可以参考很多业界文献,我只说明一点,也是我们IT从业人员甚至任何从业人员一个很好的工作原则:①把你想做的写下来(计划管理);②按照你写下来的去做(行为管理);③把做的事情记录下来(报告管理);④出现的问题要设法解决(跟踪管理)。
在测试流程里,这几个要点都一一有所落实;如果你的软件开发团队据此开发软件,那么完全具备实施自动化测试的条件。当然,也许一些公司的测试管理比较混乱,出了问题不知道谁负责,测试人员或开发人员整日碌碌却无为,软件缺陷不胜枚举,那么笔者认为还是首先从管理角度来规范一下公司的开发流程和测试流程吧!
第四,从测试人员个人素质和角分配来说,除了有一个CTO级人物做后盾外,还应该有个具有良好自动化测试背景和丰富自动化测试经验的测试主管,不仅在技术方面,更重要的
是在今后的自动化测试管理位置起着领导的作用。还要有几个出的开发经验良好的测试人员,当然也可以是开发工程师,负责编写测试脚本、开发测试框架;他们不需要对产品业务了解深刻,但要具有将软件业务逻辑转化成可测试逻辑的分析能力,属于自动化测试设计者。还有一些测试执行者,他们要对软件产品业务逻辑相当熟练,配合测试设计者完成设计工作,并在执行自动测试时,敏锐的分析和判断软件缺陷。如果你的测试团队具有这样的人员角雏形,那么具备了实施自动化测试的又一条件。
综合分析上述四个条件,企业可以决定是否推行自动化测试;但是为了减少实施风险,我们还要预测到其他潜在的风险,做好事先解决思路。
2 对企业推行自动化测试的风险分析
其一是资金风险。虽然你的公司具备实施自动化测试的条件,但如果企业效益不好,还是先扭亏为盈吧。一款正版的测试工具价格庞大,企业要首先考虑资金是否允许购买正版的测试工具软件,所以进行测试工具的成本估算,以及引入自动化测试后组织结构调整等方面的成本估算是很必要的。如果你的公司处在如同前面所言的自动化测试试验阶段,可以使用试用版测试工具。当然具有实力的公司可以按照自身的工作流程自主开发测试工具,本文不考
虑这种情况。
其二是自动化测试对软件功能类型的切入点的风险。企业开发的产品业务和功能是否需要自动化测试,包括白盒自动化测试、功能自动化测试和性能自动化测试。比如一些公司开发单机版软件,只需要做功能测试,那便不必考虑第三种;有的公司开发简单界面之类的软件,也可不必考虑第二种。也有可能公司开发的软件特殊性很强,市场上根本没有支持它的自动化测试工具,此时要另辟蹊径。这种评估相当重要,要根据自身的产品功能特征来综合评估。针对不同阶段采用自动化测试的种种优势。
软件测试流程 其三是软件自动化测试切入方式的风险。正如前面所言,一定要记住将自动化测试与手工测试结合起来使用,不合理的规划会造成工作事倍功半。首先,对于自动化测试率的目标是10/90(10%的自动化测试和90%的手工测试)。当这些目标都实现了,可以将自动化测试的使用率提高。对于何种测试情况下引入自动化测试,何时依然采用手工测试,我们分开阐述。
一般这样的测试条件下使用自动化测试:①项目没有严格的时间压力;②具有良好定义的测试策略和测试计划(知道要测试什么,知道什么时候测试);③对于自动化测试你拥有一
个能够被识别的测试框架和候选者;④能够确保多个测试运行的构建策略;⑤多平台环境需要被测试;⑥拥有运行测试的硬件;⑦拥有关注在自动化过程上的资源。
如下条件下是宜采用手工测试:①没有标准的测试过程;②没有一个测试什么、什么时候测试的清晰的蓝图;③在一个项目中,你是一个新人,并且还不是完全的理解方案的功能性和或者设计;④你或者整个项目在时间的压力下;⑤在团队中没有资源或者具有自动化测试技能的人;⑥没有硬件。
其四是企业软件的开发语言风险。当前业界流行的测试工具有几十种,相同功能的测试工具所支持的
其五还要做时间估算。在评估完前面几项指标后,需要估算实施测试自动化的时间周期,以防止浪费不必要的时间,减少在人员、资金、资源投入上的无端消耗。虽然到测试自动化步入正轨以后,会起到事半功倍的效果,但前期的投入巨大,要全面考虑各种因素,明确实施计划并按计划严格执行,才能最大限度降低风险。
发布评论