C.1  测试项
测试项是指通过测试需求分析所得到的需要测试的特定科目。测试项有明确的测试目标和测试方法。通常一个测试对象对应多个测试项，一个测试项可划分成多个测试子项。测试项可对应由一种或 多种测试类型覆盖。
测试项（或测试子项）的要素至少应包括：
a. 名称和标识。每个测试项应有唯一的名称和标识；
b. 测试项说明。简要描述测试目标和测试内容；
c. 测试方法。说明对测试项进行测试所采用的策略，包括采用的测试方法以及测试数据生成方法、测试数据注入方法、测试结果捕获方法及分析方法、使用的测试工具等；
d. 测试充分性要求。说明为实现测试目标，测试项应覆盖的范围及覆盖程度；
e. 测试项终止条件。说明正常终止的条件（例如，测试充分性是否达到要求）和导致测试异常终止的可能情况；
f. 优先级。说明测试项的优先顺序；
g. 追踪关系。说明测试项对测试依据的追踪关系，应追踪到测试依据的某个具体功能（或子功能）、接口、性能等。测试依据一般包括软件测试任务书/合同、软件开发文档、软件更改报告等。

C.2  测试用例
C.2.1  设计原则
设计测试用例应遵循以下原则：
a. 基于测试需求的原则。测试需求来自于软件测试任务书、合同或其他等效文件、软件开发文档、软件更改报告、软件代码等。应在测试项的基础上设计测试用例；
b. 基于测试方法的原则。应明确所采用的测试用例设计方法。为达到测试充分性要求，应采用相应的测试方法；
c. 兼顾测试充分性和效率的原则。测试用例集应兼顾测试的充分性和测试效率，每个测试用例应完整、具有可操作性；
d. 测试执行的可重复性原则。应保证测试用例执行的可重复性。

C.2.2  要素内容
测试用例是针对测试项所设计的，描述测试输入、测试方法、操作步骤、预期结果的集合。通常一个测试项由多个测试用例来覆盖。
测试用例至少应包括以下要素：
a. 名称和标识。每个测试用例应有唯一的名称和标识。
b. 测试追踪。说明测试所依据的内容来源，通常是对测试大纲/计划的追踪关系，应追踪到测试大纲/计划中的具体测试项或子测试项。
c. 用例综述。简要描述测试目的和所采用的测试方法。
d. 测试的初始化要求。应考虑下述初始化要求：
    1. 硬件配置。被测系统的硬件配置情况，包括硬件条件或电气状态；
    2. 软件配置。被测系统的软件配置情况，包括测试的初始条件；
    3. 测试配置。测试系统的配置情况，例如，用于测试的模拟系统和测试工具等的配置情况；
    4. 参数设置。测试开始前的设置，例如，标志、第一断点、指针、控制参数和初始化数据等的设置。
    5. 其他对于测试用例的特殊说明。
e. 测试的输入。在测试用例执行中发送给被测对象的所有测试命令、数据和信号等。对于每个测试用例应提供：
    1. 每个测试输入的具体内容（例如，确定的数值、状态或信号等）及其性质（例如，有效值、无效值、边界值等）；
    2. 测试输入的来源（例如，测试程序产生、磁盘文件、通过网络接收、人工键盘输入等），以及选择输入所使用的方法（例如，等价类划分、边界值分析、错误推测、因果图、功能 图方法等）；
    3. 测试输入是真实的还是模拟的；
    4. 测试输入的时间顺序或事件顺序。
f. 期望结果。说明测试用例执行中由被测软件所产生的期望测试结果，即经过验证，认为正确的结果。必要时，应提供中间的期望结果。期望测试结果应该有具体内容，例如，确定的数值、 状态或信号等，不应是不确切的概念或笼统的描述。
g. 测试结果评估准则。判断测试用例执行中产生的中间和最后结果是否正确的标准。对于每个测试结果，应根据不同情况提供：
    1. 实际测试结果所需的精度；
    2. 实际测试结果与期望结果之间的差异允许的上限、下限；
    3. 时间的最大和/或最小间隔，或事件数目的最大和/或最小值；
    4. 实际测试结果不确定时，再测试的条件；
    5. 与产生测试结果有关的出错处理；
    6. 上面没有提及的其他标准。
h. 操作步骤。实施测试用例的执行步骤。对于每个操作应提供：
    1. 每一步的测试输入；
    2. 每一步所需的操作动作、测试程序的输入/输出操作、设备操作等；
    3. 每一步的期望结果；
    4. 每一步的评估准则；
    5. 程序终止伴随的动作或错误指示；
    6. 获取和分析实际测试结果的过程。
i. 前提和约束。在测试用例说明中施加的所有前提条件和约束条件，如果有特别限制、参数偏差或异常处理，应该标识出来，并说明它们对测试用例的影响。
j. 测试用例终止条件。说明测试正常终止和异常终止的条件。
k. 测试用例通过准则。判断测试用例是否通过的标准。
