“我们丐帮集团对测试活动的重视,在业界是非常知名的。我们是国内第一家测试人员和开发人员配比达到1:1的软件企业。目前我们所采用的是以测试用例为中心的测试管理方法。”
“以测试用例为中心的管理方法?愿闻其详”一直不动声色的薛慕华,明显表现出了对乔峰下面内容的兴趣。
“在我们看来,软件测试的核心工作内容都是围绕着测试用例这一测试最重要的工件来进行的。通过关注测试用例,能及时察觉到需求不明确这类对测试影响巨大的问题的出现,也能让缺陷的描述更加具体,回归测试更加的准确。所以我们从前年开始,为公司的每一个产品,进行的每一个项目都进行了全面的用例覆盖,目前我们的测试用例库已经初具规模。”
“乔总,你长篇大论了这么多,来点实际的吧。我们想看看你们公司到底是怎么以测试用例为中心的?在座的都是火眼金睛,胡吹大气可是过不了关的。”如此不客气的打断别人的话,不愧为刀快嘴快的快刀祁六。
“祁老师说的有道理。今天我们也准备了一个demo,用来向大家介绍我们的以用例为中心的测试管理。”说着,乔峰摁动手中的遥控器,投影仪上出现了一张示意图。
“软件测试的几个关键过程可以由该示意图明确的表示出来。通过测试需求来确定这次测试的目标和缺陷判定标准,测试策略是为测试方法做战略上的策划,最终会形成具体可以执行的测试用例。所以我们说,从测试需求到测试用例的过程是个具体化的过程。当测试用例编写完成,且经过评审确认后,无论我们采用手工测试和自动化测试的方法,只不过是测试用例在具体某个程序中的应用。软件缺陷,也是测试用例执行时产生的产品。如果拿武功来做比喻的话,测试需求和策略应该算是内功心法,测试用例则是武功招数。而手工测试和自动化测试就是在实际过招中招数的灵活应用罢了。”
“按照分工来看,测试需求往往是由需求编写者或业务人员提供的,测试策略多是测试经理提出的,测试用例是测试工程师进行的第一项测试工作,也是耗时最长,需要消耗精力最多的测试工作。基于此原因,我们认为,控制了测试用例的质量,也就基本上控制了软件测试的质量。当测试需求和测试策略完成后,测试经理会建立一个测试用例编写计划,每周进行一次小的评审,直到测试用例编写完成。在测试用例执行中,每周也会组织各个测试人员,对测试用例进行维护和更新,以便让新的测试用例有合适的渠道进入测试用例库。在发布之后的产品维护环节,如果用户发现新的缺陷,我们也会召集测试小组,重现缺陷,并分析测试用例产生遗漏的原因,更新用例库。这样,我们的用例库会在软件产品的更新中不断的完善,也就让测试用例的覆盖逐渐的完善了。除了事件驱动的对用例库的维护之外,我们也会定期进行一次用例库的大型维护,其目的是提高用例库的可移植性。目前我们已经总结了十八种可以通用的测试用例模式,和原来的镇帮之宝《软件开发的十八种设计模式》并称。”
“在这种以测试用例为中心的模式下,我们也拥有了一大批专业的测试用例编写人员,每个人都带领一支小队,负责某一模块的测试用例的执行。一般的配比是这样的,一个测试小组由一个用例设计师为组长,三至四名手工测试工程师和一名自动化测试工程师组成,共同向测试经理汇报,为某一个模块的测试任务负责。”
“难道这就是丐帮集团当年享誉武林的打狗阵法?”快刀祁六对丐帮还是非常熟悉的。
“非也。打狗阵法是当年洪七公董事长带领研发团队开发我们丐帮核心产品时采用的研发人员组织方式,我们这套测试团队组织方式,因为都是和查找BUG有关系,所以我们称其为‘捉虫阵法’。”
“在我们投标的附录里面,有我们的测试用例库的几个具体的用例,请各位专家过目。”
“为何贵公司的测试用例如此之详细?连点击某某按钮或者使用键盘操作某一功能都详细描述清楚,这些操作上的细节,对于一个熟悉操作的测试人员来讲,应该无需这么多的描述,就能操作的。这么做岂不是浪费时间?从而再次增加成本?”久不发问的薛慕华终于提出了一个尖锐的问题。
“测试用例的详细程度,一直都是学术界在探讨的问题,多年以来都没有一个固定的标准。现在大家普遍认可的理论就是Good-Enough 原则,就是符合使用的要求就可以的原则。测试用例到底要详细到何种程度,是根据测试执行的需要而定义的。如果是非常熟悉系统的测试人员,用例可以写的更加简略一些,甚至有些用例只是提供了测试思路或测试数据就可以达到执行的要求。我们的用例详细程度也是按照不同的情况进行分类的。给各位展示的用例,是我们比较特殊的一类用例,这类用例是为了我们的自动化测试准备的。是为了后期进行自动化测试而将传统用例进一步细化的结果。”
“为自动化测试而专门准备的用例?”
“正是。相信各位专家都对自动化测试工具有所了解,特别是四川唐门的自动化测试工具,使用方便灵活,合理运用能大幅度提高测试执行效率,降低测试执行成本。我们丐帮也曾在几年前试图和唐门以战略合作的方式引入自动化测试工具,当时我也是作为其中一员参加了这个合作项目。但最终发现,我们并没有准备好应用自动化测试工具,当时我们的薄弱之处,就在于….”乔峰好整以暇的喝了一口水,他发现评委们已经慢慢进入了状态,在以他的节奏思考问题了。
“自动化测试工具是个非常强大的武器,但是在项目中应用除了精通其使用这类硬功夫之外,还要做很多流程方面配合的软功夫。这些软功夫正是当时我们测试团队缺失的。”
“众所周知,自动化测试工具并不是人们想象中的可以自主进行测试的一种工具,而是需要测试人员将测试的内容和步骤详细的提供给它,它才能自动运行测试步骤。所以,我们才需要将为自动化测试准备的各个步骤写的如此详细。换句话说,这些详细的内容不是给测试人员看的,而是给自动化测试工具看的。”
“可是你们使用的依然是自然语言,不是自动化测试脚本呀?”快刀祁六不解。
“我们团队的自动化测试工程师,就是将这些用自然语言编写,详细的足以进行自动化测试的用例翻译成测试脚本的人。其实这也是四川唐门最新的BPT(业务流程测试)理念的精髓。精通业务的人用自然语言编写测试用例,精通自动化测试的人,用脚本语言编写自动化测试用例,在这样的分工下,测试才能有序又高效的进行,自动化测试才能真正的得以全面的应用,而不是像目前这样,只是在少数功能中才能发挥其优势。”
乔峰翻了下一页PPT,“这是四川唐门的最新资料,其中也沿用了我们刚才提到的分工方式,Subject Matter Expert就是精通业务的业务专家,Automation Engineer是精通自动化测试的自动化测试工程师,他们的分工各有不同。Subject Matter Expert致力于业务方面的思考,不用去学习自动化测试工具,Automation Engineer熟悉工具,不用过多的去考虑业务流程。这种分工我们似曾相识,软件开发也是逐渐由一个人统揽需求获取,设计和编码慢慢变成现在的分工合作,多工种配合的局面的。我们可以肯定的说,软件测试也将会随着规模的逐渐扩大,测试队伍人员的逐渐增加,而产生这种分工。目前我们丐帮集团正在进行的这种尝试,是为了大规模应用测试工具而做的软性工作,也相信是符合测试未来发展趋势的。”
乔峰的答辩完成后,台下专家席响起了掌声,更有很多专家上来和乔峰互换名帖,希望进一步的交流。乔峰偷偷望向薛慕华,发现薛慕华正在低声吩咐着聚贤庄的CIO什么。乔峰猜到,一定是薛慕华在要求泰山集团提供测试用例库的样板给他们参考了。看来薛慕华准备全面评审泰山集团的软功夫了。本来指望着依靠对自动化测试工具熟悉的硬功夫在评标中占据优势地位的泰山单正,也只能眼睁睁的看着乔峰夺走了聚贤庄项目。
“故事讲完了,我们再来看看你今天在测试用例上…..咦,人呢?”古龙刚讲完故事,还想继续说教,却发现令狐冲已经快跑到门口,边跑还边喊:“古师兄,我现在赶紧回去看书,明天一早,我就来补充测试用例!”
一回到宿舍,令狐冲就冲到自己的床上,找出《独孤九剑》,翻到第二式:
“昔有大娘公孙氏,一舞剑器动四方。软件测试用例就像武侠小说中的剑术秘技,只要按照剑谱练习,哪怕是没有丝毫功底和基础,只要勤学苦练,都能成为一个合格的剑手,甚至天赋高的,也能成为一代高手。概念上讲测试用例是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试用例是解决怎么测试和如何衡量的问题的一种工具。测试用例简单的看,是对测试步骤的一种设计,看似只要理解了业务就能设计出用例,但是其中也是蕴含非常多的技巧的。单从测试用例的设计技术上讲,就有等价类,边界值,因果图,正交法等多种方法,不同的测试模块采用适当的测试用例设计技术,才能起到事半功倍的效果。下面就是各种测试用例设计技术的详解…..”
看着看着,令狐冲进入了梦乡。
[
本帖最后由 aries_duan 于 2008-7-7 20:32 编辑 ]