如何编写优质的软件测试需求文档(2)

发表于:2014-09-04来源:uml.org.cn作者:不详点击数: 标签:
首先,自由运行的定时器在这里不需要提及. 因为对它基本上无法进行黑盒测试,它既不是输入也不是输出,而且跟这两者也没有什么联系。 让我们用数字

  首先,自由运行的定时器在这里不需要提及. 因为对它基本上无法进行黑盒测试,它既不是输入也不是输出,而且跟这两者也没有什么联系。

  让我们用“数字输出端变化的频率应控制在每秒10次和每秒1次之间”来代替自由运 行定时器的测试标准。

  对于上述的第四条需求,可能需要一些小修改才能作为测试标准。让我们用“ADC端的输入电压应当保证在每100毫秒内至少被读取一次”来加以描述,这样的描述能让我们预期的测试行为显得更加通俗易懂。

  需求的第五条也需要一些小修改。我们如何才能检测电压的输出范围是在0到1伏之间呢? 总不能给个2伏的电压,然后看看元器件有没有被烧毁吧?

  那么,说“检验系统在ADC端输入电压为1到2伏之间的时候,工作是否正常”,这样就检验就容易多了。需求描述应当是“正面”的,应当描述设备“应该”的行为,而不是设备“不应该”的行为。否则的话,测试将会无法进行。

  版本0.2

  1、数字输出端的切换频率应当控制在每秒10次到每秒1次之间

  2、数字输出端的切换频率应当在最大值和最小值之间呈线性变化,并与ADC端的输入电压成正比

  3、ADC端的输入电压应当保证在每100毫秒内至少被读取一次

  4、检验当ADC端的输入电压范围在0到1伏之间的时候,系统工作是否正常

  第7步:你的需求是否通俗易懂?

  相比于我们原来的描述:“根据弯曲传感器的输出不同频率来控制LED闪烁”,我们上面的那些需求描述显得难以阅读和理解。

  我发现,让需求文档变得通俗易懂,最简单办法莫过于,把过于细节的东西抽取出来,然后以条目的形式单独定义。

  版本1

  1、弯曲传感器应当保证至少在100毫秒内读取一次数据(放到注释单独列出)

  2、切换LED的状态,使其与弯曲传感器的读数保持一致

  3、当弯曲传感器的读数为1伏特时,LED状态切换的次数应当保持在平均一秒十次;当传感器的读数为0伏特时,LED的切换次数应保持在一秒1次。

  定义:

  弯曲传感器:输入电压位于ADC的X端。安全电压范围为0到1伏特(放到注释单独列出)

  LED状态:数字状态由Y端输出

  这样就好多了(尽管还不完美)。这些需求通俗易懂,不涉及到系统内部实现,且易于测试。对于系统行为的限定也仅仅限于需要做什么,点到为止。(例如,对弯曲传感器的采样频率,在实现上也可以更高,只要不产生非预期行为,一切都可以)。

  编写需求就仿佛是在大脑中构建软件的过程。因此要重于执行操作。

原文转自:http://www.uml.org.cn/Test/201205185.asp