邰晓梅,软件测试独立顾问

寻找bug,其乐无穷;

分享测试,分享学习!

我的书籍

《海盗派测试分析:MFQ&PPDCS》

这是一本描述海盗派测试人员如何做测试分析的书,共307页,硬皮精装本,彩色印刷。

样章试读:

关于书名

序章

第三章(部分)

(附:亚马逊购买链接

我的分享

我在多个会议上做过演讲:My Presentation Experiences

我会不定期在喜马拉雅平台分享测试知识:专辑“软件测试基础知识(BBST)”,“Checking and Testing”等。

我在优酷上分享的视频:视频链接

这是我的微信公众号:ShareTesting_Info,会不定期的分享一些测试以及非测试的点滴

我的博客

邰晓梅的博客,记录了我对软件测试的一些观点。

我的微博:邰晓梅ShareTesting

海盗派测试

在我个人十几年的测试从业中有一些观察,发现很多的测试人员:

  • 对一些基本的测试术语理解错误;
  • 相信所谓的“测试最佳实践”
  • 过于迷恋“测试自动化”
  • 过分依赖“测试用例”
  • 使用具有误导作用的“测试度量项”
  • 重文档、重流程,却轻思维、轻技能

 

我一向认为测试人员是测试的核心,“海盗派测试”理念的提出正是为了体现这种认知。

海盗派测试是一套测试理念和测试实践。它包含面向个人级的测试思维和测试技能、以及面向组织级的测试管理理念和框架。

                                                      

 

海盗派测试认同的核

心测试理念

 

测试是基于上下文的

要基于风险开展测试

测试即学习、测试即探索

测试人员的思维和技能是测试的核心


以下是海盗派测试的典型做法:

  • 在海盗派测试中,我们不相信测试可以预先一次性就计划得很好,后续只要遵照执行就可以了;相反,我们制定计划时,一定会有很多没有考虑到的风险和质量因素,一定会对产品有很多不够了解的地方,因此我们需要根据最新掌握的信息不断调整测试策略和测试计划

  • 在海盗派测试中,我们不相信通过学习产品知识、通过学习测试课程、通过多实践多练习,就可以设计出接近完美的测试ideas,并且执行这些ideas就可以发现绝大部分的软件缺陷;相反,我们做测试分析与测试设计时,一定会设计了多余的不必要的test ideas,也一定会漏掉很多好的应该被执行的test ideas,因此测试分析与测试设计一定是个迭代的过程,而不是一次性的

  • 在海盗派测试中,我们不相信工具可以代替人类完成测试,工具只能实现部分把test ideas自动化的工作,对于一个复杂的、高质量的软件项目而言,我们也不相信那些重要的缺陷都可以通过automated checking方式捕捉到;相反,我们认为测试人员的技能是所有测试工作的核心,包括使用工具辅助测试的技能,对于缺陷发现和挖掘来说,人比工具起着更重要的作用。

  • 在海盗派测试中,我们不相信写下来的test ideas或者test scripts可以弥补测试人员知识和技能的不足,也不认为写下来的test ideas是测试组织最宝贵的财产;相反,我们认为,很多时候没有必要浪费时间写下所有的test ideas(除非你的测试时间并不紧张),让一个测试新手更快更有效的成长途径是在一个有经验的测试人员指导和带领下开展实际的测试工作,克服一个又一个挑战,“最好的学习就是测试一下”,技巧娴熟的测试人员是测试组织最宝贵的财产

  • 在海盗派测试中,我们不相信测试人员是不负责任的、恶意偷懒的、不关心产品质量的,不相信通过制定一些定量的的测试度量统计指标就可以准确知晓测试的质量,例如统计test ideas的通过/失败比率,统计test ideas的自动化实现比率、统计需求规格说明的测试覆盖率等等;相反,我们相信每个海盗派tester都是负责任的、不断改进自己的测试的、以及努力把测试工作在受限的上下文下尽可能做到最好的,因为提供高质量的测试服务是每个测试人员的职责所在,我们相信频繁的沟通交流以及测试过程的透明化更有助于管理者了解真实的测试质量状况。

  • 在海盗派测试中,我们不相信测试人员可以独立给出产品是否可以发布的意见,因为测试人员没有权利控制项目资源分配、项目预算等,测试人员没有能力控制产品的质量;相反,我们认为测试人员应该准确的讲述测试的故事,向测试的客户及时提供质量相关的信息,这可能包括测试发现了什么、做了哪些测试、测试做得怎么样等等。


如果您也认同海盗派tester的理念,欢迎加入微信群一起交流测试,给公众号ShareTesting_Info回复关键字“海盗派”,按提示操作即可。

我的测试之路 

我2001年开始了在华为的软件测试之旅,2012年离开华为后,成为一名软件测试独立顾问,为企业提供软件测试培训(Training)与测试咨询(Coaching)服务。

 

我认为“如何做好测试”这个话题与具体的测试上下文关系很大,我非常赞同“Context-Driven School of Software Testing”提到的7个基本原则。2012年8月,我发表了我的测试宣言,最新的中文版本如下:

技巧娴熟的测试匠人  高于  完善的测试流程和工具

      提供特定上下文质量相关的信息  高于  提供缺少上下文的测试统计数据

       基于风险调整测试  高于  遵循计划进行测试

        发现有价值的问题  高于  创建测试用例文档

 

2008年,我参与了一个测试过程改进(TPI)的项目,并负责对“测试设计”这个领域的问题进行研究,我发现很多团队在测试设计方面遇到过不少的问题,为此,我写了一篇总结报告“Test Design Problems Investigation”,这个报告曾在ChinaTest2012软件测试会议上有过分享,您可以在这里这里查看此次演讲的视频。这个调查报告揭示了一个现象:很多测试人员缺少足够的“测试分析”的能力(testing analysis ability),针对这个现象,我提出了MFQ&PPDCS测试分析与测试设计的思路,这个想法首先在ICSEA2009国际会议上得到发表,您可以查看MFQ&PPDCS的论文全文,或查看有关“海盗派测试分析:MFQ&PPDCS”测试课程的详细描述,或者阅读这本书同名书籍《海盗派测试分析:MFQ&PPDCS》。

 

2009年开始研究敏捷相关的方法,将敏捷的理论与实际的项目相结合后,我开发了敏捷测试原则与实践的课程,该课程旨在帮助敏捷项目中的测试人员更好地应对敏捷环境下的测试,这是相关的一个演讲视频:敏捷测试的一些重要思想

 

 2011年起,我开始研究“测试人员的思维”这个课题,专注于帮助个人和团队提升测试技能。这是一个可以包罗万象的题目,它已经远远超出了测试本身的范畴,可以从其他很多学科如心理学、人类学、哲学、行为科学、甚至是玩游戏中借鉴到很多有价值的测试理念,首个研究成果就是“测试思维”课程。您可以在这里这里、以及这里找到我曾经写的几篇关于测试思维的博客。2013年的ChinaTest上我做了一个Keynote的演讲,通过对比科学与测试的相似性,进一步阐述了测试思维的理念,欢迎查看此次演讲的视频

 

 我在StarEast2011上系统地学习了基于需求测试的课程,和Richard Bender多次讨论此方法的应用,并结合实际项目辅导过一些团队应用基于需求测试的技术。相对于探索性测试等更轻型的测试方式而言,基于需求的测试属于偏重型的测试技术,ShareTesting与BenderRBT倾力合作,将这个方法已经本地化引入中国,您可以在这里这里观看基于需求测试相关视频。

 

 如果您的团队正在思考测试过程改进,可以考虑使用TPI评估模型,Polteq公司的创始人Martin Pol是TPI之父,ShareTesting与Polteq紧密合作,正在将Polteq世界一流的测试方法和技术引进中国,包括TPI培训与咨询、Cloud Testing技术、敏捷测试认证等课程。我曾在2008年至今为数个测试团队开展过测试过程改进的咨询和评估。当然,您也可以考虑采用一种更加迅速有效的、投资回报比高的、逆向分析的方法 - 缺陷根因分析方法,我提出的T-RCA方法旨在通过几个关键缺陷的根因分析,得出组织一级的测试改进点,我曾辅导过多个团队开展缺陷根因分析

 

 近几年来热衷于探索性的测试实践与研究,基于我在StarEast和StarWest上的一些经历,以及听James Bach和Michael Bolton的“RST(快速软件测试)课程”等,结合多年的测试经验,成功开发了“海盗派测试技能:RSET”和《海盗派测试管理:RSTM》课程。这里是与探索性的测试相关的演讲视频:挖掘探索性测试的价值百人ET1百人ET2。ChinaTest2014上与James Bach的一段访谈视频:点击观看


 

 2010年和2011年,我在华为创立并组织了MiniStar软件测试会议,这是一个企业内部的会议。之后我创立了MiniStarClub软件测试俱乐部,这是一个民间的、非盈利的、跨地域的俱乐部,由一群喜爱分享和探讨软件测试技术的人组成。现在,MiniStarClub微信群已经不在单独维护,转而维护新的名称“海盗派tester”微信群。

 

2012年8月,我作为联合创始人发起了第一届中国软件测试大会ChinaTest,并担任ChinaTest2012~2015连续四届担任大会主席,不过由于合作破裂的原因,自2016年起将不再参与ChinaTest了。


经过17年的测试生涯,现在我称自己是一名海盗派的tester,这是受James Bach那本书《学习要像加勒比海盗》的启发,无论测试所处的周边条件如何,我会充分发挥自己的测试思维和测试技能,利用一切可以利用的方法和工具但不被所谓的测试流程和制度所束缚,快速了解我的测试任务,快速学习被测对象,时刻识别和警惕软件内部存在的风险,调整我的测试策略,尽可能早地挖掘那些对客户而言更重要的bug,服务于我的客户!关于这个理念,可以从我给探索性测试的一个定义上看出来:

For (a tester),

who (has the willingness to do effective testing as possibly as he can), 

and who (doesn’t want to just follow a script to do testing),

exploratory testing is a (style of testing),

that (emphasizes more on the tester’s skillset and mindset than on test procedures and tools).

Unlike (scripted testing),

exploratory testing (enables the tester to continuously improve his work in tiny and short test cycles, in which the tester would rather start testing earlier, adjust his testing frequently based on past test results and his testing missions and repeatedly confirm satisfaction with his clients).


 

  我除了是一个海盗派的Software Tester,我还是一个热爱学习的Learning Geeker。

   学习和吃饭睡觉一样,已经成了我每天的必备,内容绝不仅仅局限于软件测试领域,但实际上由于中“软件测试”的毒太深了,以至于无论在学习什么,总是自觉或不自觉地就和测试关联了起来,慢慢地,这竟然成了我提升测试知识和技能的一大法宝,目前我正在研究Learn How To Learn的内容,我的学习理念可以归结为PRE三个字母,分别代表Practice,Reflection和Explicitness,相关文章可以看我的2015The Significance of Structured Information In Learning!Tree-Type Notes in Exploratory Testing等。

我的日程表

这里是我的行程表,当我抵达某个城市,如果您原意和我交流软件测试,欢迎和我联系!

ShareTesting,Share Learning!