qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

谈谈我理解的软件测试的核心价值

 随着公司组织架构的调整,战略调整,产品的实现技术不断变化,现在的测试人员可以说是什么都可以干。

  有些人做产品,有些人做平台,有些人做工具......

  有些人有点象专职开发,有些人有点象专职运营......

  Facebook,google的一些敏捷测试理念中,测试人员应该致力于提出测试解决方案,研究各种测试工具为主,具体的测试执行工作,由coding的开发同学去做。

  变化后面也有很多不变的,测试手段无外呼白盒测试黑盒测试,静态测试,动态测试,单元测试,集成测试,系统测试安全测试性能测试等等。那些奋斗在一线的测试工程师的工作内容实则没有什么大的变化,访谈的结果是大家觉得自己也没有成就感,工作很累。

  这一切都让我迷惑了,很多人象我一样也迷惑了,测试人员的核心价值到底是什么?

  测试人员的职业发展是什么?特别是focus在业务上的测试人员的核心价值是什么?在这里仅表达下我个人的观点,欢迎大家一起拍砖。

  ● 核心价值一:测试设计能力

  最基本的也是最重要的价值就是测试设计。无论是采用白盒,黑盒,手工还是自动化等不同的方式,精华都在测试设计中。测试设计能力入门容易,做深难,需要耐得住寂寞,不断的学习积累,同时需要的知识面非常广。

  下面几点可以提升测试设计能力:

  1、对产品的熟知程度

  2、对用户的了解程度

  3、技术实现/依赖产品/中间件/DB设计/缓存机制/安全机制等技术的深入了解程度

  4、产品运行环境(包括服务端,客户端,浏览器,系统并发量,吞吐量等)

  5、bug回溯(定位/分析)

  非常值得一提的是bug回溯,是一项非常有意义的活动。很多公司特别重视线上bug的预防,分析,却忽略了线下bug的回溯。而实际上,大家都有这样的印象,发现bug的不一定是你设计的TC,而是在执行TC时发散的其他测试场景。通过bug原因分析,可以更精准的帮助你识别易出问题的点。而且现在的技术,环境都是多样性的,总会出现一些你意想不到的bug,它的存在一定是有原因的。这些东西需要通过bug回溯不断的积累。

  Bug回溯  与测试设计形成良性循环

  ● 核心价值二:制定测试策略

  大家都知道测试是不能穷举的。在有限的人力、时间、资源情况下,如何更快,更全面的覆盖被测对象,是需要策略的。

  我记得以前天彤说过,专家级的测试工程师可以对被测对象进行“精准爆破”,非常认同。对于象淘宝这么庞大复杂的系统来说,如果不能做到精确设计,精确测试,为了保障大用户量大数据量的并发下,想最大程度的规避可能出现的风险,让测试同学以眉毛胡子一起抓的方式进行测试就是在劳民伤财。

  不同产品,不同的团队,产品成熟度,人员的成熟度,所采用技术的成熟度等等,都可能导致测试策略的不同。制定测试策略的过程,就是对当前的项目、团队进行量体裁衣。

 影响测试策略的因素:

  △ 项目类型。如:新产品,完善功能,重构型的,底层升级,数据库升级,不同的项目类型,测试重点也不同,采用的测试工具和测试类型也不尽相同

  △ 产品成熟度。主要考虑产品的业务是否稳定,成熟。是属于创新型,试水产品,是否是成熟行业,需求明确稳定等等?

  △ 使用研发技术和研发平台。采用新的研发工具,新的研发技术,还是公司成熟的技术,工具,使用什么样的数据库设计,包括产品的设计思想,产品架构等

  △ 团队能力及默契度。稳定型团队?新团队?半新半旧,人员技术能力如何?人员特点如何?(特别需要说明的是,通过bug回溯可以发现团队开发或测试人员的技术能力,代码质量,业务掌握情况,逻辑清晰等这些个人特质,针对不同的人可以在测试时做不同的重点验证)

  △ 研发模式。采用什么研发模式,传统的瀑布,还是敏捷,迭代等。这种研发模式以往常出现的问题是什么?该模式在该团队的运行是否成熟,稳定?

  △ 产品线上运行环境。包括服务端和客户端的运行环境,负载机制,缓存机制,服务器分布等

  △ 产品线上并发量,吞吐量等指标。关注目前指标及增长趋势

  △ 产品使用用户。使用产品的用户人群众分布?目前的使用满意度如何?用户的计算机使用水平如何?用户反馈的最大问题是什么?用户的使用习惯是什么?竞争产品在用户中的优势是什么?

  △ 测试过程保障。上线前测试依赖的环境、数据、技术、平台、工具保障,有现成的,还是需要开发?

  测试策略的方面

  △ 测试类型

  △ 各种测试类型的测试程度、测试通过/停止标准

  △ 使用测试技术

  △ 依赖平台、工具

  在工作中,大家对一些事情存在一些误区:

  1、编码能力。我们不盲目崇拜编码能力,而是随着测试手段不同,测试深入程度不同,需要我们有能力去识别代码中存在的风险,对产品的技术实现有更深入全面的掌握,才能更有针对性的进行测试,所以,我们必须具备编码能力。

  2、创新。我们不能为了创新而创新,而是在工作过程中,技术结合业务,为解决实际的问题自然而然的生长出来的新东西。这个创新一定是解决我们工作中的问题或用户的问题的。

  3、工具。工欲善其事,必先利其器,随着我们被测试对象的复杂化,多样化,使用技术的差异化,一些常规手段无法测试的内容,一些重复的劳动密集性的事务,需要让工具代替手工去做,自然而然的就会产生工具。所以,我们不是迷信工具,也不是崇拜工具,工具是为我们服务,带来价值的。如果这个工具不能给我们带来价值,就算做一个工具,没有人使用,又有什么意义呢?

  在实现测试设计与测试策略制定过程中,我们为解决实际问题自然会生出一些工具,平台,我们要鼓励大家用创新的思维去思考和解决问题,这样的产出是非常有价值的。

相关链接:

软件测试的核心价值是什么?


posted on 2012-12-14 10:26 顺其自然EVO 阅读(499) 评论(0)  编辑  收藏 所属分类: 管理方向


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜