主观可测性
  ·产品知识。了解包括产品内部是如何运作的知识,能够有效的提高我们测试它的能力。如果我们不了解产品,探索性的测试方法可以帮助我们快速学习。
  ·技术知识。有能力编写程序,掌握基本的技术和适用的工具,对软件开发的动态性有一定了解,这样算没有样样详尽也能使测试更容易。
  ·领域知识。越了解用户和他们的问题,可以越好地测试。
  ·测试技能。总体的测试的能力显然使测试更容易。相关方面的测试技能包括实验设计,建模,产品元素分解,批判性思维,测试框架。
  ·参与。在测试时测试员与开发过程联系更紧密,同队员的有效沟通和合作,能使测试更容易。当测试员远离开发,测试的效率将极端糟糕。
  ·帮助。当有人协助的时候,测试将更容易。“帮手”不认为自己对要测试的产品负责,但也可以做一些测试或为测试员提供一些有用的服务。
  ·测试策略。一个精心设计的测试策略可以有效地降低测试的成本和精力。
  内在可测性
  ·可观测性。为了测试,我们必须看到产品。理想情况下,我们希望一个完全透明的产品,能够获得关于它的所有情况和特性,包括这些现象的历史。
  ·可控性。为了测试,我们必须能够访问该产品的行为反应。理想的情况是,我们能立刻并且便利地提供一切可能的输入,调用一切可能的状态、状态的组合或要求的状态序列。
  ·算法简单。为了测试,我们必须能够访问和评估输入和输出之间的关系。产品的行为反应越复杂,越敏感,我们越需要关注。
  ·缺陷消除。缺陷之所以拖慢测试,是因为我们必须停止并报告它们,或者解决它们,或者在缺陷阻断的情况下,等待它们被修复。当没有缺陷的时候测试容易进行。
  ·小型。产品越少,我们需要关注的越少,因为产品原件间的相互作用产生缺陷的几率也越少。
  ·可分解性。当一种产品的不同部分可以相互分离,我们能更轻松的关注我们的测试,查找缺陷,并在变化后重新测试。
  ·相似性(已知并且可信赖的技术)。一个产品与其他我们已知的产品越相似,我们越容易进行测试。如果该产品与一个可靠的产品共享核心代码,或者基于可靠的框架,情况将会相当理想。