小结
在这次采访中,郑文强和大家分享了很多宝贵的经验,摘要如下:
1、勤奋学习能够弥补基础的不足。
2、在决定发展方向的时候,不要生活在别人的期望中,而是要知道自己想做什么,擅长做什么。
3、去做自己喜欢的,还是去做人家喜欢的?最终我选择了前者。从目前的结果看,感觉到自己在公司内部可以做的事情更多了,参与的活动也在增加。不管对公司还是对个人,体现的价值都是在不断增加的。
4、把好的测试理论、测试思想与工作实践结合起来。
5、坚持去做自己喜欢的工作,不断积累、总结和分享。
6、认清楚自己,明确自己的优点和不足。
7、让跳槽符合自己的发展方向。
8、分享并不会导致“教会了徒弟,饿死了师傅”,因为学习是一个过程。另一方面,同事会因为你的分享而感谢和尊重你。
9、作为测试的负责人,不要期望自己在所有的方面都比其他人强,你的定位应该是为整个测试团队服务的角色。如果你能在团队内带头分享你的知识与经验,也一定能带动其他人的分享,更好地做好测试团队的知识与技能的储备,有利于测试经理更好地分配测试工作,并做好备份工作。
10、与脚本化测试相比,探索性测试更强调测试人员的思维自由度与主观能动性。然而,探索性的自由,并不代表它是不做准备的,它也不是随机的。好的探索性测试依赖于测试人员综合应用测试策略、测试技术与方法的能力,例如,获取测试数据,掌握测试设计技术,建立失效模式,创建测试模型等。口号式的探索性测试并不能帮助测试人员成功。
11、我几乎每天都会反省自己当天的工作,有了哪些收获,有了什么总结,多少时间又被浪费了等。通过这样的形式,不断提升自己的信心,提高学习的效率和有效性。
12、软件发布与否应当综合多个方面的因素来考虑,而不仅仅是测试的意见。
13、要想获得成功,勤奋是不可或缺的。
14、多实践,不要怕失败。不管是测试领域的知识,还是测试技能,或者是测试思想和方法,测试新人都需要勇敢地去实践,许多的经验、思想和收获来自于失败的经验教训。
15、面对职业发展迷茫的时候问自己喜欢做什么,目标是什么,当前的工作和活动是否能帮助自己达成这个目标。
16、从形式、覆盖率和有效性方面来评估测试用例的质量。
17、成为测试牛人的三个步骤:制订目标,明确技能目标,立即行动。
18、在参见面试前做好准备,并在面试过程中保持坦诚。
19、软件测试行业的发展前景乐观,同时测试工程师会面对不少的挑战。测试人员要提高自己的技能水平和价值。
20、软件测试行业将持续往前发展,而测试从业人员能否在这个平台中同步前进,这依赖于测试人员自己的不断积累、不断实践与不断交流。要发展,测试人员同样需要走出去,了解当前的测试热点、测试发展趋势、测试理念与思想的趋势等。
(未完待续)
国软件测试专家访谈录(1) 中国软件测试专家访谈录(2)
根据形式、覆盖率和有效性来评估测试用例的质量
蔡:如何评估测试用例的质量?
郑:测试用例质量的评估,我主要考虑下面三个方面。
1、根据测试用例的形式评估其质量,主要包括:
(1)测试用例与需求规格说明中需求条目的可追溯性。例如,每个需求条目至少有1个测试用例与之对应。
(2)测试用例有无明确的期望结果。
(3)是否满足公司内部定义的测试用例模板。
2、根据测试用例覆盖率评估其质量,主要包括:
(1)需求的覆盖率。例如,我们主要负责系统测试级别,因此测试用例的需求覆盖率要求必须达到100%。
(2)质量特性的覆盖率。例如,我们在测试用例模板中采用测试类型的概念,要求每个功能的测试用例必须100%覆盖所有的测试类型。
(3)测试平台的覆盖率。例如,针对我们目前的通信产品,每个功能都需要在不同平台上运行;再如,不同的网元类型、接口类型、业务类型等。测试用例对这些平台的覆盖率也要求达到100%。
3、根据测试用例的有效性评估其质量,主要包括:
(1)测试用例的缺陷发现率。我们采用的计算方法是,系统测试发现的缺陷数目除以执行的测试用例数目(百分比)。
(2)脚本化测试的缺陷发现率。我们采用的计算方法是,根据测试用例步骤发现的缺陷数目除以总发现的缺陷数目(百分比)。如果这个百分比很低,则说明设计的测试用例的有效性方面比较差,不少bug是通过探索性测试发现的。
(3)遗漏到用户现场的缺陷率。我们采用的计算方法是,6个月内用户现场反馈的缺陷数目,除以系统测试级别发现的缺陷数目与6个月内用户现场反馈的缺陷数目之和(百分比)。
每个公司和测试团队在评估测试用例质量方面都会存在不同的度量指标,我们的要求是这些度量指标要简单容易收集,并且有利于改进测试过程和测试团队的测试能力,但切记不会做针对测试人员个人的能力与绩效的评估。
旁观者说:从不同的侧面去做度量,是一个更好的办法。这种办法可以在工作的很多方面得到应用。
成为测试牛人的三个步骤
蔡:有网友提到一个问题,如何成为测试牛人?
郑:不管是测试管理方向还是测试技术方向,都是可以成为测试牛人的。要成为测试牛人,你要有成为测试牛人的强烈要求。根据我的经验,下面的步骤有助于你成为某个领域内的专家。
第一步,制订目标:你希望成为哪个领域的测试牛人?例如,测试技术方面的牛人、测试自动化方面的牛人。
第二步,技能要求:要达到所制订的目标,你需要具备哪些方面的技能?以我自己为例,希望自己成为测试技术专家,我主要从下面几个方面不断积累经验与技能。
(1)深入了解测试对象的背景知识与业务功能。例如,我是做宽带接入产品的,除了测试对象的功能之外,我利用空闲的时间学习了VPN、MPLS、IPv6、IP路由交换协议等。
(2)深入了解我公司所采用的开发模型与测试流程,即需要清楚地知道在测试生命周期中,什么阶段需要做什么事情,有哪些输入与输出。
(3)测试人员要深入了解各种软件测试技术与方法。例如,我们采用敏捷开发,在面向业务的测试过程中,探索性测试与测试人员的结对测试是我们经常采用的测试方式,不仅可以有效发挥测试团队的主观能动性与及时分析反馈能力,而且可以更好地分配资源与加强测试团队内部的技能共享。
(4)培养测试人员的各种软技能,例如,沟通与合作。对我而言,在业余时间喜欢看各种类型的书籍,例如,沟通、管理、心理学、演讲、理解与记忆、经济学、思维等。广泛涉猎各种知识,可以帮助我更好地提高软技能。
第三步,立即行动。
“千里之行,始于足下”,坚实走出每一步,坚持走出每一步,成功就在前面等你。
旁观者说:没有行动,再好的目标也仅仅是纸上的目标。
面试中的考量
蔡:你的测试经验很丰富,肯定参加和主持过不少的测试职位的面试。你在面试中看重什么?
郑:在面试过程中,我主要会从下面几个方面进行考量。
第一,会详细了解职位候选人在测试对象的产品背景知识与业务知识方面是否满足职位的要求。
第二,考察应聘者在测试流程、测试技术与方法等方面是否有所了解,结合测试项目和产品的特点,判断他所掌握的这些技能是否有助于测试团队的测试能力改进。例如,我们一直做的是系统测试工作,时间与资源经常非常紧张,除了基本功能的验证之外,测试中很多的精力放在用户业务的考察上,因此应聘者了解基于场景的测试、基于风险的测试等技能是受欢迎的。
第三,考察候选人在性格特征、为人处世等方面是否符合企业文化和团队氛围。
同时,员工的上进心与学习能力也很重要。例如,两个候选人,一个有一年工作经验,另一个有三年工作经验。只要有上进心,有一年工作经验的那位候选人在半年后就能做与有三年工作经验的那位朋友一样的事情,甚至做得更好。
旁观者说:这里也揭示了一个残酷的事实:如果没有高人一等的技能,年资有的时候会在找工作的时候帮倒忙(暂且称为年资拐点)。我们要尽可能延迟年资拐点的出现。
当然,面试中获取每个候选人真实的信息并不是一件容易的事情,我自己会从候选人的日常时间安排、个人兴趣爱好和业余时间计划等方面收集与分析信息。
基于我面试的经验,下面是我给测试职位应聘者的两条建议。
1、面试前做好充足的准备工作。
2、面试过程中,应聘者诚实很重要。面试过程中有些问题不会,可以直接回答不懂或者没有经验,切记不要不懂装懂。没有一个人是完人,面试官可以接受存在不足的候选人,但不会接受明显撒谎的人。
旁观者说:对,坦诚其实是面试中最好的态度。
软件测试行业的发展前景
蔡:对软件测试行业的发展前景,你怎么看?
郑:我是2001年开始从事软件测试工作的,从我个人的整个从业经历来说,软件测试行业一直在往专业化、系统化、正规化方向发展,因此软件测试应该是一直在往上走的趋势。针对软件测试行业的发展,可以从行业本身与测试从业人员两个方面进行分析。
软件测试行业前景乐观
首先,我国的软件测试行业相对欧美国家,现在还是处于很年轻的阶段。借鉴美国等软件测试的历史发展经验,测试行业发展的前景还是乐观的。在欧美国家,软件测试行业中经常可以看到有30年甚至40年测试经验的从业人员;而在国内,像我这样有11年软件测试经验的人都算是“很老的”测试人了。因此,欧美国家中30/40年的软件测试经验,可以说明这个行业能够提供机会,让他们一直做下去,而且做得不错。我相信这个现象同样适用于我国的软件测试行业。
旁观者说:有的朋友说,咱们国家的IT公司不养年纪大的人,你看身边哪有年纪大的?对于这一点不必悲观。之所以现在IT公司里没有年纪大的员工,主要是因为我们的IT行业太年轻。只要IT行业持续发展,公司规模增大,慢慢就会出现白发斑斑的IT工程师。
其次,客户对软件产品的质量要求越来越高。尽管说软件产品的质量是构建进去的,而不是测试出来的,但是软件测试对提高产品质量是建设性的,因此测试在研发中的不可或缺性将会不断得到提升。这对软件测试行业而言是利好消息。
旁观者说:社会对软件的依赖和对软件质量要求的提高,是软件测试行业发展的基础。从这个方面来说,测试从业人员可以去培育和引导社会对软件质量的要求。
第三,2012年的软件测试很热闹,除了在上海成功举行了中国第一届软件测试大会之外,在北京、上海等地轮番上阵了ISTQB测试沙龙、测试专题讨论、软件测试俱乐部沙龙等民间测试活动,并且参与的测试从业人员都是几百人的量级。这样的现象在前几年是不可想象的,这从另一个侧面反映了测试行业的蓬勃发展。
测试人员要提升自己的技能水平和价值
蔡:测试工程师将来会遇到哪些挑战呢?
郑:测试行业前景看好并不代表每个测试从业人员都有好的前景,这依赖于测试人员如何提升自己的测试技能与提供的测试价值。今后一段时间测试业界内的热点是:
1、自动化测试与手工测试之争。随着软件测试成熟度的提高,加强自动化测试将是一个合理的趋势,这对于测试从业人员而言是一个发展方向。但是自动化测试并不能代替手工测试,因为自动化测试的基础来自于测试人员的思维与设计,测试从业人员应该将自动化测试作为一个提高测试效率的手段,而不应该是最终的目标。自动化测试工具并不能保证项目的成功,但是可以帮助优秀的测试人员更加出色地工作。
2、探索性测试与脚本化测试之争。测试从脚本化测试的关注过程,到探索性测试更关注测试人员的思维与主观能动性,并不能说明两者之间谁好谁坏,或者谁替代谁的问题。测试人员需要做的是如何平衡两者之间的关系,如何更好地发挥两者各自的优势,弥补各自的不足。
3、敏捷开发模式下的敏捷测试。敏捷测试更强调整体团队运作,强调将质量构建进产品而不是在生产出来之后再进行测试,强调自动化测试,以及同时强调面向技术的测试与面向业务的测试。敏捷测试要求测试人员掌握熟悉范围之外的新技能,例如,测试驱动开发、持续集成。
软件测试行业将持续往前发展,而测试从业人员能否在这个平台中同步前进,这依赖于测试人员自己的不断积累、不断实践与不断交流。要发展,测试人员同样需要走出去,了解当前的测试热点、测试发展趋势、测试理念与思想的趋势等。
旁观者说:博取各家所长,兼容并蓄。
书籍推荐
1、《软件测试艺术》:软件测试的经典著作,展示了测试大师Glenford Myers多年的软件测试思想和技术。书中探讨了代码检查、走查与审查、测试用例的设计、单元测试、系统测试、极限测试等主题,是测试人员入门的一本优秀教材。
2、《软件测试经验与教训》:本书分享了3位作者多年的测试经验,知道成功的测试需要什么。书中汇总了293条测试经验建议,阐述了如何做好测试工作,如何管理测试,以及如何澄清有关软件测试的常见误解。读者可以将这些经验用于自己的测试工作中,避免一些容易犯的错误,提高测试效率与有效性。
3、《A Practitioners Guide to Software Test Design》:关注测试用例设计的一本著作,其中包括了白盒测试技术、黑盒测试技术与基于经验的测试技术。每个测试技术本身都结合了技术原理、案例分析和优缺点分析,是每个测试人员了解和应用测试用例设计的一本好书。
4、《赢在测试:软件测试先行者之道》:蔡为东写的这本书,汇集了多名测试行业的测试精英,其中描述了他们是如何认识测试,发展测试,规划测试,以及如何在测试行业中取得成功的,为测试从业人员的职业发展提供了参考方向。这本书为处于迷茫阶段的测试人员规划自己的测试职业发展,提供了许多现实可行的方向。
5、《思维导图:大脑使用说明书》:要想在测试领域有所建树,测试人员持续不断地学习与积累是非常重要的,而如何有效地阅读与学习将是决定成败的一个关键。思维导图是一个简单易学的革命性思维工具,它可以帮助你提高记忆力和理解力,激发想象力,更好地制订生活和工作计划。
小结
在这次采访中,郑文强和大家分享了很多宝贵的经验,摘要如下:
1、勤奋学习能够弥补基础的不足。
2、在决定发展方向的时候,不要生活在别人的期望中,而是要知道自己想做什么,擅长做什么。
3、去做自己喜欢的,还是去做人家喜欢的?最终我选择了前者。从目前的结果看,感觉到自己在公司内部可以做的事情更多了,参与的活动也在增加。不管对公司还是对个人,体现的价值都是在不断增加的。
4、把好的测试理论、测试思想与工作实践结合起来。
5、坚持去做自己喜欢的工作,不断积累、总结和分享。
6、认清楚自己,明确自己的优点和不足。
7、让跳槽符合自己的发展方向。
8、分享并不会导致“教会了徒弟,饿死了师傅”,因为学习是一个过程。另一方面,同事会因为你的分享而感谢和尊重你。
9、作为测试的负责人,不要期望自己在所有的方面都比其他人强,你的定位应该是为整个测试团队服务的角色。如果你能在团队内带头分享你的知识与经验,也一定能带动其他人的分享,更好地做好测试团队的知识与技能的储备,有利于测试经理更好地分配测试工作,并做好备份工作。
10、与脚本化测试相比,探索性测试更强调测试人员的思维自由度与主观能动性。然而,探索性的自由,并不代表它是不做准备的,它也不是随机的。好的探索性测试依赖于测试人员综合应用测试策略、测试技术与方法的能力,例如,获取测试数据,掌握测试设计技术,建立失效模式,创建测试模型等。口号式的探索性测试并不能帮助测试人员成功。
11、我几乎每天都会反省自己当天的工作,有了哪些收获,有了什么总结,多少时间又被浪费了等。通过这样的形式,不断提升自己的信心,提高学习的效率和有效性。
12、软件发布与否应当综合多个方面的因素来考虑,而不仅仅是测试的意见。
13、要想获得成功,勤奋是不可或缺的。
14、多实践,不要怕失败。不管是测试领域的知识,还是测试技能,或者是测试思想和方法,测试新人都需要勇敢地去实践,许多的经验、思想和收获来自于失败的经验教训。
15、面对职业发展迷茫的时候问自己喜欢做什么,目标是什么,当前的工作和活动是否能帮助自己达成这个目标。
16、从形式、覆盖率和有效性方面来评估测试用例的质量。
17、成为测试牛人的三个步骤:制订目标,明确技能目标,立即行动。
18、在参见面试前做好准备,并在面试过程中保持坦诚。
19、软件测试行业的发展前景乐观,同时测试工程师会面对不少的挑战。测试人员要提高自己的技能水平和价值。
20、软件测试行业将持续往前发展,而测试从业人员能否在这个平台中同步前进,这依赖于测试人员自己的不断积累、不断实践与不断交流。要发展,测试人员同样需要走出去,了解当前的测试热点、测试发展趋势、测试理念与思想的趋势等。
(未完待续)