`
universsky
  • 浏览: 91892 次
文章分类
社区版块
存档分类
最新评论

软件测试人员需要什么技能? 东海陈光剑

 
阅读更多
  •   批判性思维

  对于一个测试人员,最重要的技能之一就是批判性思维。

  批判性思维是对思考自身的思考,目的是不再被愚弄。批判性思维是一种训练,检查事物,并且质疑我们对它的理解:哪些部分可能是不完整的;哪些部分可能是错的;哪些部分可能不能分享给其他人;哪些部分可能是暂时的,会随着时间发生改变。

  优秀的测试人员批判性地思考他们正在测试的产品。开发人员和管理者更倾向于用正面、乐观的眼光来看待产品。测试的关键目标之一是识别风险,指出乐观和自信是没有依据的。为了做的更好,测试人员必须学会质疑产品,以及关于产品,人们声称或者所相信的观点。可以传授这种技能,更可以学会这种技能。学习批判性思维需要研究、培训、辅导、支持,最重要的是练习。

  【建议】开始研究并培训批判性思维。从以下参考开始:

  ● Kahneman, Daniel. Thinking, Fast and Slow. Penguin, 2011 (中译本为《思考,快与慢》,吐血推荐)

  ● Levy, David A. Tools of Critical Thinking: Metathoughts for Psychology. 2nd ed. Waveland Pr Inc, 2009

  ● Baron, Jonathan. Thinking and Deciding. 4th ed. Cambridge University Press, 2007.

  •   Test Framing

Test Framing是一种技能,来创建一条用于组织和描述测试的逻辑。Framing帮助测试人员巩固目标和测试之间的连接,至上而下地解释测试结果。Framing与缺陷辩护的技能相关(参见:http://www.developsense.com/blog/2010/09/test-framing/)。优秀的Test Framing也可以帮助组织成本和价值的选择;何时停止或加强某些活动;应当实现的自动化程度。

  【建议】阅读,讨论并且开发关于Test Framing中的想法。

  •   系统思维

  Gerald M. Weinberg将一般性系统思维(GTS)称为“简化的科学”,一种采用高度整体的方式,思考系统组成,及其关联和影响的方法。GTS是一种通用的科学技能,同时也是一种测试技能。GTS的技能是核心的测试技能,包括但不限于:Framing,建模,因子分解,观察,以及聚合。一般性系统思维的详细描述超出了本报告的范围。

  【建议】研究和培训一般性系统思维。参见:

  ● Weinberg, Gerald M. An Introduction to General Systems Thinking. Dorset House, 2001

  ● Weinberg, Gerald M., and Daniela Weinberg. General Principles of Systems Design. Dorset House, 1988

  ● Meadows, Donella H. Thinking in Systems: A Primer. Chelsea Green Publishing, 2008. (中译本为《系统之美—决策者的系统思考》,严重推荐)

  •   科学思维

  科学思维位于系统思维和批判性思维的交点。科学技能包括:

  ● 提出正确的问题

  ● 观察发生的事件

● 正视复杂性

  ● 描述你的理解

  ● 批判性思考:识别和管理偏见

  ● 设计假设和试验

  ● 尽管已经“知道”,保持思考

  ● 分析其他人的思考

  ● 将“事实”视为不过是“现在我们认为我们知道的事物”

  但是,非常重要的是,我们需要认识到科学也是一种人类活动,受限于人类的错误认知和社会复杂性。

  软件测试的少数特征要求科学的、仪器化的、量化的工作,类似于物理学。其他方面则需要社会学方法和定性分析。

  【建议】阅读和讨论Kaner的《Software Testing as a Social Science》,以及其他关于科学的论述。参见:

  ● Simon, Herbert A. The Sciences of the Artificial - 3rd Edition. The MIT Press, 1996

  ● Popper, Karl. Conjectures and Refutations: The Growth of Scientific Knowledge. 2nd ed. Routledge, 2002

  ● Klahr, David. Exploring Science: The Cognition and Development of Discovery Processes. A Bradford Book, 2002

  ● http://www.cbc.ca/ideas/episodes/2009/01/02/how-to-think-about-science-part-1---24-listen/

  •   聚焦风险

  测试是通过配置、操作、观察和评估产品来学习和理解产品。优秀的测试不是关注测试用例的通过或失败,而是另一个问题:这里有问题吗?虽然发现问题普遍被认为是测试的目标,但是,测试人员应当聚焦于风险。

  当存在这种可能,a)某人,b)承受损失、伤害或者烦恼,来自于,c)产品中的某个弱点,d)被某些威胁触发。所有四个因子都是风险故事的基本要素。对于测试人员而言,能够搜索风险,能够描述他们感知到的风险,这是非常重要的技能。

  【建议】创建风险的分类表(有组织的列表)。从测试人员的经验、缺陷报告、技术支持人员,以及网上问题、开发人员、客户学会论坛、刊物、风险摘要(参见:http://catless.ncl.ac.uk/Risks)、竞争产品,等等来收集风险方面的意见。对于每一个项目,维护一张关键风险列表,基于它们来测试,并且报告风险覆盖。在询问中,保证测试人员聚焦于问题“是否有(潜在)的问题?”,而不是“这个测试通过/失败了?”

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics