浅谈计算机软件测试自动化解决方案

上传人:寒*** 文档编号:88996171 上传时间:2019-05-15 格式:DOCX 页数:12 大小:435.68KB
返回 下载 相关 举报
浅谈计算机软件测试自动化解决方案_第1页
第1页 / 共12页
浅谈计算机软件测试自动化解决方案_第2页
第2页 / 共12页
浅谈计算机软件测试自动化解决方案_第3页
第3页 / 共12页
浅谈计算机软件测试自动化解决方案_第4页
第4页 / 共12页
浅谈计算机软件测试自动化解决方案_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《浅谈计算机软件测试自动化解决方案》由会员分享,可在线阅读,更多相关《浅谈计算机软件测试自动化解决方案(12页珍藏版)》请在金锄头文库上搜索。

1、经典资料,WORD文档,可编辑修改,欢迎下载交流【经典资料,文档,可编辑修改】浅谈软件测试自动化解决方案【摘要】 测试是软件开发的一个重要环节。本文论述了软件测试自动化测试的实施。从自动测试的好处. 影响软件测试自动化实施的因素产生原因等几个方面出发.总结软件自动化测试的方案。 【关键字】软件测试 软件自动化测试软件测试自动化,已经成为国内软件工程领域一个众所周知的课题;不言而喻,软件测试从业者都意识到软件测试这项工作走向成熟化、标准化的一个必经之路就是要实施自动化测试。也许您认为实施自动化测试不是必须,也许您认为测试的思想是开展该工作的精髓、而工具只是辅助,那么我要告诉你我的想法:从计算机这

2、一庞大学科发展至今,它最根本的意义是解决人类手工劳动的复杂性,成为替代人类某些重复性行为模式的最佳工具;我们不可推翻测试思维在测试工作中的指导思想地位,但如何将思想转化成可操作的方案,本文也许会给您一些启示。以前听过北京中软的一个业内专家讲一句话,觉得挺经典:凡是说既是科学又是艺术的学科,就是说明它是不成熟的学科!他将软件工程和建筑行业做类比,让我们深深体会到软件工程走向成熟化的任重与道远。而软件测试,更是一个新兴的领域,虽然近几年得到了快速发展,也随着该领域从业者数量的与日俱增,培养了一批高级的人才;但是依然有多少企业和个人工作在迷茫中:这种困惑是因为工程师们手中的测试工作与理想的测试模式造

3、成的强烈反差,这种无奈是因为他们和开发人员一样的努力却有不同的待遇,这种迷茫是因为测试工作者不知道这个领域里是否还有自己的发展空间和人生价值的体现!笔者认为:如今的软件测试行情,正处在群雄逐鹿的混战岁月,每个人、每个有测试部门或从事测试业务的企业,都该发扬百花齐放、百家争鸣的精神,多多借鉴国内外先进的测试经验,参考业界流行的行业标准,找到适合自己团队的测试方法和模式,创造更大的社会价值,发挥更大的人生价值。 实施软件测试自动化的理由分析 首先,测试人员的工作比以往任何时候都更加困难,因为公司和组织希望以更快的速度和更低的成本开发出高质量的应用程序。此外,在很多项目中,测试人员的所有任务实际上都

4、是手动处理的,而实际上,有很大一部分重复性强的测试工作,是可以独立开来自动实现的。还有,在大型项目中测试团队和其他的团队之间没有足够的合作,无法促进彼此的工作。最后,从个人角度来说,测试人员通常很难花费大量时间来学习新技能;这是目前国内测试从业者的现状,太多的企业为了节约成本而将刚刚走出校门的毕业生作为测试工程师,他们每日做着繁忙的重复工作,又基于自身技能的不深,虽怀博览群书的心愿却不知从何出入手。所谓光阴似箭,因为一转眼我们就说到未来的5年、10年后,我们这些技能不深的测试工程师能做什么呢?而软件测试自动化,也是未来测试工程师或即将成为测试工程一项强有力的工作技能。可以说,实施测试自动化是软

5、件行业一个不可逆转的趋势,如果在这个领域走在了前列,无论从企业的核心竞争力还是个人的工作技能来说,都有巨大的优越性,而国内众多的软件厂商也的确在纷至沓来的着手开展着这项工作。 当然国内软件测试自动化实施现状分析 随着众多具有了一定优秀实施自动化测试经验的企业陆续出现,也伴随着很多组织对这项工作依然是丈二的和尚摸不着头脑。对当前国内软件企业实施或有意向实施测试自动化时面临的主要问题,按实施的不同层次来说:干脆认为测试自动化是个遥不可及的事情,我们这样的小公司不必实施,人员、资金、资源都不足,以后再说吧!热血沸腾的实施测试自动化,购买了工具,推行了新的测试流程;几个月后,工具放在那里成了共享资源,

6、测试流程又涛声依旧,回到原来的模式。公司实施了自动化测试;然而开发与测试之间,甚至与项目经理之间矛盾重重,出了事情不知如何追究责任;虽然还在勉强维持的自动化测试,但实施的成本比手工测试增加了,工作量比从前更大了,从而造成项目团队人员怨声载道,更怀念起那段手工测试的悠闲岁月,唉!那一场风花雪月的事,既然要结束又何必开始自动化测试实施相对比较成功,但或多或少还有些问题,比如工具选择不准确,培训不到位,文档不完备,人员分配不合理,脚本可维护度不高等等,造成一种表面上的自动化测试流程,是一幅空架子,如同山间竹笋,嘴尖皮厚腹中空。 国内软件测试自动化实施不成功原因分析 公司高层意识不到软件测试自动化的重

7、要性;殊不知,其他竞争对手们都大张旗鼓的开展这方面研究和策划的时候,自己还对此持漠视态度,等到整个行业都提高到一个新的层次,那时再着手做,可能就是热锅上的蚂蚁了。所谓凡事预则立,不预则废。一个软件企业实施测试自动化,绝对不是拍脑袋说干就能干好的,它不仅涉及测试工作本身流程上、组织结构上的调整与改进,甚至也包括需求、设计、开发、维护及配置管理等其他方面的配合。软件开发是团队工作,在这一领域要尤其注重以人为本;所以人员之间的配合、测试组织结构的设置非常重要,每个角色一定要将自己的责任完全担负起来,这也是减少和解决前述团队矛盾的必要手段。对开展自动化测试的监督和评估相当重要,也包括对工作产品的检查和

8、人员的考核。一定要将自动化测试全面深入的贯彻到测试工作中,不能敷衍了事,不能做表面工作。这项工作在CMM三级里规范的很好,只可惜我们的很多公司对CMM真的只是“过级”! 正确认识国内未实施软件测试自动化的根源 目前国内的软件公司,很多还是处于获取资本的原始积累阶段,我们不能说公司领导完全不重视测试,而是测试整体行业都没有被重视起来,这是其一;其二是公司高层有更需要重视的环节,例如寻找客户签订单,或者开发,这些是直接关系公司存亡的命脉性东西。即便企业重视测试,如果公司做一番比较全面的评估(在后续的测试自动化引入入条件里,再详细说明),也不一定非要实施自动化测试。笔者认为一些中小软件公司在大刀阔斧

9、推行自动化测试之前,在测试流程管理、测试缺陷流程、测试人员技能培训等方面做工作,这样可以用比较少的成本投入来获取相对较大且长期的收益回报。最后,针对普通测试工程师的一些建议,在这样的公司里,其实有着很多意想不到的优越性:(一)这样的公司测试如果不正规,那么你就有更大更多的发挥空间。(二)你可以单独学习自动化测试技术,自己先试着应用到日常工作的软件项目中。(三)你可以直接和开发人员沟通,甚至向他们学习开发技术,这对将来的自动化测试中开发脚本很有好处。(四)每个优秀测试工程师的成长都是个循序渐进的过程。我遇到很多测试界的新手向我发牢骚,很惭愧我没有什么可以告诫他们的,只是希望这样的新人克服浮躁情绪

10、,稳扎稳打练好基本功,想成为优秀的测试专家,就要经历这个阶段。 软件测试自动化的引入条件 如果你的测试部门有意向引入自动化测试,那么首先要从思想上统一认识。自动化测试能大大降低手工测试工作,但决不能完全取代手工测试。完全的自动化测试只是一个理论上的目标,实际上想要达到 100% 的自动化测试,不仅代价相当昂贵,而且操作上也是几乎不可能实现。一般来说,一个 40-60% 的利用自动化的程度已经是非常好的了,达到这个级别以上将过大的增加测试相关的维护成本。测试自动化的引入有一定的标准,要经过综合的评估,绝对不能理解成测试工具简单的录制与回放过程。实际上,从实现成熟度来说,自动化测试分五个级别: 级

11、别 说明 优点 缺点 用法 一级 录制和回放 自动化的测试脚本能够被自动的生成,而不需要有任何的编程知识 拥有大量的测试脚本,当需求和应用发生变化时相应的测试脚本也必须被重新录制 当测试的系统不会发生变化时,实现小规模的自动化 二级 录制、编辑和回放 减少脚本的数量和维护的工作 需要一定的编程知识;频繁的变化难于维护 回归测试时,用于被测试的应用有很小的变化 三级 编程和回放 确定了测试脚本的设计,在项目的早期就可以开始自动化的测试 要求测试人员具有很好的软件技能,包括设计、开发 大规模的测试套件被开发、执行和维护的专业自动化测试 四级 数据驱动的测试 能够维护和使用良好的并且有效的模拟真实生

12、活中数据的测试数据 软件开发的技能是基础,并且需要访问相关的测试数据 大规模的测试套件被开发、执行和维护的专业自动化测试 五级 使用动作词的测试自动化 测试用例的设计被从测试工具中分离了出来 需要一个具有工具技能和开发技能的测试团队 专业的测试自动化将技能的使用最优化的结合起来 自动化测试能提高测试效率,快速定位测试软件各版本中的功能与性能缺陷,但不会创造性的发现测试脚本里没有设计的缺陷。测试工具不是人脑,要求测试设计者将测试中各种分支路径的校验点进行定制;没有定制完整,即便事实上出错的地方,测试工具也不会发觉。因此,制订全面、系统的测试设计工作是相当重要的。自动化测试能提高测试效率,但对于周

13、期短、时间紧迫的项目不宜采用自动化测试。推行自动化测试的前期工作相当庞大,将企业级自动化测试框架应用到一个项目中也要评估其合适性,因此决不能盲目的的应用到任何一个测试项目中,尤其不适合周期短的项目,因为很可能需要大量的测试框架的准备和实施而会被拖跨。实施测试自动化必须进行多方面的培训,包括测试流程、缺陷管理、人员安排、测试工具使用等。如果测试过程是不合理的,引入自动化测试只会给软件组织或者项目团队带来更大的混乱;如果我们允许组织或者项目团队在没有关于应该如何做的任何知识的情况下实施自动化测试,那将肯定会以失败告终。如果软件企业有意向实施自动化测试,那么应该具备什么样的条件才可以引入自动化测试呢

14、,才可以最大可能的减少引入风险,并能够可持续性的开展下去呢? 对企业自身现状的评估分析 第一,从企业规模上来说,没有严格限制。无论公司大小,都需要提高测试效率,希望测试工作标准化,测试流程正规化,测试代码重用化。所以第一要做到的,就是企业从高层CTO开始,直到测试部门的任何一个普通工程师,都要树立实施自动化测试的坚定决心,不能抱着试试看的态度。一般来说,一个这样的软件开发团队可以优先开展自动化测试工作:测试开发人员比例合适,比如1:1到1:1.5;开发团队总人数不少于10个。当然,如果你的公司只有三五个测试人员,要实施自动化测试绝非易事;不过可以先让一个、两个测试带头人首先试着开展这个工作,不

15、断总结、不断提高,并和层层上司经常汇报工作的开展情况,再最终决定是否全面推行此事。第二,从公司的产品特征来说,一般开发产品的公司实施自动化测试要比开发项目的公司要优越些。原因很简单,就是测试维护成本和风险都小。产品软件开发周期长,需求相对稳定,测试人员可以有比较充裕的时间去设计测试方案和开发测试脚本;而项目软件面向单客户,需求难以一次性统一,变更频繁,对开发、维护测试脚本危害很大,出现问题时一般都以开发代码为主,很难照顾到测试代码。但决不是说做项目软件的公司不能实施自动化测试,当前国内做项目的软件公司居多,有很多正在推行CMM等级标准,这是好事情;只要软件的开发流程、测试流程、缺陷管理流程规范了,推行自动化测试自然水到渠成。第三,说说标准化的开发和管理流程。不管是CMM还是ISO,不管是开发流程、测试流程还是缺陷管理流程,这里不能一一阐述,可以参考RUP(Rational Unified Process, Rational 统一过程),可以参考很多业界文献,我只说明一点,也是我们IT从业人员甚至任何从业人员一个很好的工作原则: 1. 把你想做的写下来(计划管理) 2. 按照你写下来的去做(行为管理) 3. 把做的事情记录下来(报告管理) 4. 出现的问题要

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 公司方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号