@<font color="red”> 本文为"software testing"一书的读书笔记 @</font>

原来在项目经理写好产品说明书,软件测试师就要开始工作,检查产品说明书里面有 没有什么bug,这样可以大大减少整个项目的开支。 一个简单的计算器软件的产品说明书就需要几百页。

黑盒测试和白盒测试

  • 黑盒测试,black-box testing,测试师不知道软件里面是怎样操作的,他只给一个

输入,得到一个输出。他不知道里面发生了什么,不知道为什么会得到那样的输出。 黑盒测试有时也叫功能测试(functional testing)和动作测试(behavioral testing)。

  • 白盒测试,white-box testing,测试师查看了程序的源码,并以此为线索来制定测试

用例,进行测试。白盒测试有时也叫clear-box testing。 白盒测试有一个危险的地方是,测试师可能会被代码给束缚住,制定出来的测试用例都是 为了迎合代码的。

静态测试和动态测试

  • 静态测试, static testing,不运行软件地测试。
  • 动态测试, dynamic testing,运行软件来进行测试。

书上有个例子非常好,当我们去买车的时候,踢一下轮胎,看一下车的漆和车篷,这是静态 测试。启动车,听一下引擎的声音,开一下它试一下感觉,这是动态测试。

测试产品说明–静态黑盒测试

产品说明书只是一个文档或者是一些图,没有运行,当然是静态的,它还没写代码,你也 不能去查这个文档是怎样写出来的,所以是黑盒测试。

从高处测试产品说明

假装自己是一个用户

调研一个这个产品面向的用户是哪些人(比如向市场经理或销售询问用户是哪类型的人), 理解这种类型的用户的期望和需求。还要假装自己是搞破坏的用户,不要假设用户都是 好人,这在提高软件安全性上有很大的帮助。

调查现有的标准和规范

一些一般需求考虑的标准和规范有:

  • 公司术语和习惯(如果是为某个企业做软件的话)
  • 工业标准
  • 政府标准(特别是军方)
  • GUI(软件要符合操作系统的GUI的使用习惯)
  • 安全标准

调查市场上相似的产品

比如竞争者的产品,主要从下面的方面来进行比较:

  • 规模–特性的多少,代码量的多少,软件的大小
  • 复杂度
  • 可测试性
  • 高质量/可靠性
  • 安全性

从低处测试产品说明

检查产品说明的属性

  • 是否完整(有没有漏掉一些东西)
  • 是否精确(accuracy)
  • 是否准确(precision),没有歧义,清晰
  • 是否一致(有没有自相矛盾)
  • 是否相关(有没有一些废话)
  • 是否可行(feasible)
  • 是否code-free(好的产品说明书只说明产品,没有设计和代码)
  • 是否可测试

检查产品说明术语

当看到出现下面的术语时,要小心了:

  • always, every, all, none, never 这些是表示绝对的术语,这时就要检查一下是否真的是这么绝对。
  • certainly, therefore, clearly, obviously, evidently 这些术语会让你觉得理所当然,要小心。
  • some, sometimes, often, usually, ordinarily, customarily, most, mostly 这些术语很含糊,测试起来有难度。
  • etc., and so forth, and so on, such as 这些术语是不可测试的,因为没有列举完全。
  • good, fast, cheap, efficient, small, stable 这些是不可度量的术语,不可测试的。
  • handled, processed, rejected, skipped, eliminated 这些术语隐含了太多意思,需要更明确的说明。
  • if…then…(missing else) 少了else,可能漏掉了一种情况