13.7 精益创业与探索式软件测试
最近阅读了李善友先生写的关于《精益创业》的4本书,主题思想是传统工业社会思维方式与现代互联网社会思维方式的区别。传统工业社会思维方式是先摸索用户的需求,然后依次为计划、实现、测试和使用。然而,用户往往开始时并不知道自己想要什么,提不出自己想要的真正需求。所以,现代互联网社会的思维方式要变为与用户一起先摸索、交流,经过多次迭代获悉用户最基本需求之后再进行开发、测试,然后交给用户使用,并且从用户使用情况中快速得到反馈信息,以挖掘更深层次的需求,最后再进行多次的迭代式开发和测试。
这种摸着石头过河的思维方式是非常符合当前软件产品形式的。笔者经常把软件测试比喻为寻宝,缺陷在哪里?它具有很大的不确定性和一定程度上的未知性。而自动化测试是对基本的并且已知的缺陷进行验证,自动化软件测试的最大优点在于能有效地控制回归测试。探索式软件测试在软件测试过程中是非常重要,特别是基于测程管理的探索式软件测试加强了探索式测试的可管理性,这与精益创业的精神完全符合。软件测试工程师不要一上来就花太多时间去思考要测试什么,而是要通过不断地测试,逐步了解软件产品,产品中哪些地方容易出错,哪些地方就需要重点进行测试,并通过测试来决定采取什么手段进行什么样的测试,然后再决定如何进行更深一步的测试。
自动化测试可对最基本的功能进行测试,其他的测试工作需要交给基于测程的探索式软件测试来完成了。
下面简单介绍一下基于测程的探索式测试方法。探索式测试是一种基于经验的测试方法,而对于基于经验的测试方法最让人头痛的就是测试的管理方法。基于测程的探索式测试方法就是为了解决这个问题。参看图13-4。
图13-4 基于测程的探索式测试
首先进入第一个测程。测程开始就是测试分析,设计和执行一起进行,测试过程中随时进行记录。比如,测试过哪些模块,使用了哪些方法,遇到了哪些问题,读者可以参见本书第一篇第3.2节“基于场景的测试”中的测试记录。一个测程一般在0.5~3h(这个数据是有科学依据的,小于0.5h思维进入不了状态,也就进行不了有效的测试,而大于3h,人就容易疲劳)。一个测程测试完毕后,测试工程师与测试经理及其他测试工程师一起讨论。测试记录总结如下内容:
- 需要进一步学习哪些专业知识(包括业务知识、测试技术、其他知识)。
- 系统中发现的哪些问题是有效的缺陷,讨论后填写到缺陷管理软件中。
- 下一次需要重点测试哪些模块,使用哪些方法和技巧。
然后进入下一轮测程。
随着探索式测试测程的持续进行,探索式测试工程师对产品业务、缺陷分布情况有了越来越清晰的了解,从而能采用更加有效的具有针对性的测试策略。
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。