zoukankan      html  css  js  c++  java
  • 测试人员需要什么技能?

    测试人员需要什么技能?

    这个问题很多人问过,也有很多人回答过,我非常赞同来自Michael Bolton的以下观点和建议(不过有一点补充,参见:做一个海盗派Tester),欢迎讨论。

    批判性思维

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

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

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

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

    ·   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)、竞争产品,等等来收集风险方面的意见。对于每一个项目,维护一张关键风险列表,基于它们来测试,并且报告风险覆盖。在询问中,保证测试人员聚焦于问题“是否有(潜在)的问题?”,而不是“这个测试通过/失败了?”

     
     
     
    标签: 测试覆盖
  • 相关阅读:
    kafka学习默认端口号9092
    kafka搜索介绍
    进程线程区别
    linux下的mysql修改默认编码
    [LeetCode] #19 Remove Nth Node From End of List
    [LeetCode] #18 4Sum
    [LeetCode] #17 Letter Combinations of a Phone Number
    [LeetCode] #16 3Sum Closest
    编程之美2015 #1 2月29日
    编程之美2015 #2 回文字符序列
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2923547.html
Copyright © 2011-2022 走看看