MFQ&PPDCS 大型嵌入式软件系统的测试分析和测试设计(3)

发表于:2013-08-23来源:wzhj132的个人博客作者:邰晓梅点击数: 标签:测试设计测试分析
Step4:进一步测试 没有一种类型的模型可以有效地描述测试对象的所有方面。尽管上面三个步骤已经使用,仍然会存在测试对象的一些其他方面需要测试。

  Step4:进一步测试

  没有一种类型的模型可以有效地描述测试对象的所有方面。尽管上面三个步骤已经使用,仍然会存在测试对象的一些其他方面需要测试。例如,一些特殊的规格变量限制关系很难放进模型,所以需要另外一个分开的测试设计。另一方面是,人们的经验,测试分析者对测试对象有他们自己的理解,而且很难放到模型中,所以更进一步的测试设计过程是需要的。

  好的测试=正式的测试+非正式的测试。前面三个步骤是正式测试过程,最后的步骤“高级测试”是非正式的测试过程。实际上,非正式测试并不意味着没有任何规则可遵循的随机测试。有很多成熟的非正式测试的方法,比如基于错误的测试,探索性测试等等,这些测试不在这篇文章详细展开。

  C M-基于模型的简单功能测试分析和设计

  上述“基于4-step模型的测试设计过程”是最适合简单功能测试设计的,因为简单功能的合适粒度,所以这部分用M(Model)表示。

  在为简单功能测试设计和分析应用4-step过程中,首要做的是将测试对象分为不同的”简单功能“(单元或者组件)。根据我的经验,一个简单功能的可以是几十行到几百行代码的大小,但是最好不要超过一千行。一个简单的功能在单元测试里可以对应1个或者几个组件,或者1个或几个SRS的需求,或者一个或者两个用户场景。没有明确的规则规定那个文档需要被引用,那个需求或者规格需要对应一个简单功能。因此,测试分析者需要收集足够多的材料来做测试分析来识别需要测试的合适的简单功能。

  在面向对象的程序里,简单功能可能相对比较容易识别。一个对象负责实现的方法(成员函数)或者一个类可以被看成整个系统的一个简单功能。但是在其他语言,例如C语言,识别简单功能不是那么容易。通常情况下,一个简单功能拥有两个特征:

  从需求的角度看,一个简单功能是相对独立的。一个软件系统由很多特性组成,一个简单的特性可以分解为很多分开的功能。

  从实现的角度看,内在逻辑和简单功能是相干的。例如,一个对象的行为可能通过很多方法(很多功能)实现,一个方法可能包含很多步骤。

  同Bill Wake描述的的用户故事的INVEST模型类似,一个简单功能应该是独立的、可测试的、有价值的(实现特定功能)、比较大的(根据上下文情况,没有固定的大小)、可调整的(简单功能的分发可以适应测试分析和测试设计的活动的调整)

  从系统特性中识别出简单功能后,下一步就是对每个简单功能使用4-step过程进行测试分析和设计。第IV章将详细描述。

  D F-功能交互的测试分析和设计

  ”F“代表功能交互。

  在简单功能的测试分析和测试设计完成后,怎么处理简单功能间的交互关系?我们可以使用下面的4-step过程来做功能交互分析。

  注意:在下面表格中用单词”特征“来替代”简单功能“,因为”F“和”Q”部分在特性级别频繁使用。

  Step1:建立模型

  列出跟所要测试功能有关的遗留功能。他们的关系是“交互”或者“修改”。“交互”以为遗留功能和被测功能需要共同配合做某些事。“修改”意味着遗留功能因为新增的被测功能需要修改。

  列出跟被测功能相关的新功能。他们的关系是时间关系(先后运行,或者同时运行),空间关系(使用共同资源例如定时器、内存、或者交互的信息等)或者其他任何关系。

  将遗留功能和其他新功能放到表格的第一行,将测试功能放到第一列

  将有交互的单元格标志”X”

  Step2:设计基础测试用例

  针对表格中每个有交互的内容,我们设计一个或者结果基本测试用例-每个测试用例清晰描述两个有交互功能的关系。表格II阐述了这个步骤:

  Step3:填充测试数据

  识别每个FIP基本测试用例的变量,然后使用的EP(等价类划分)和BV(边界值)获得更多的数据,完成测试用例。

  Step4:扩展测试

  尝试基于测试者的经验得到更多的测试用例。James Bach’s Heuristic测试方法【12】有非常好的参考文档。

  E Q-质量属性的测试分析和设计

  Q代表质量属性.

  除了功能测试分析和测试设计,其他质量属性也需要考虑。

  Step1:建模

  选择和定义要测试的产品的相关非功能质量属性。ISO9126【13】有对质量属性和子属性的非常好的定义。

  将所有的质量属性写入表格的一行中,将每个组件、功能或者特性写在第一列中。

  将有交互的地方画上”x”,表示这个组件、功能或者特性需要考虑这个质量属性。这个分析粒度在这里不固定,不管是组件级别、功能级别、甚至特性级别都可以。下表是基于功能级别的例子:

  Step2:设计基础测试用例

  针对每个表格每个交互点,设计一个或者几个基本测试用例,描述清楚要验证的质量属性。

  Step3:补充测试数据

  找出每个QCIP基本测试用例中的变量,使用等价类划分和边界值得到更多的数据,完成测试用例。

  Step4:拓展测试

  尝试基于测试者的经验获得更多的测试用例,【12】将很有帮助。

  在”F“和”Q”中使用”表格“作为模型的好处是它使得测试分析者不会那么容易忘记一些测试的相关点。

  这个章节主要将MFQ框架。“表格”用来描绘功能交互和质量属性的测试分析模型。但是针对简单功能测试分析,模型的类型会是不同的,下一章节会讲到这个。

  IV PPDCS-选择合适的测试技术来建模

  A PPDCS介绍

  就像上面说的,4-step过程在每个M,F和Q测试分析和测试设计过程都会用到。在4个过程中,step1是关于测试分析的,也是最重要的步骤的。在F 和Q部分,step1比较简单就是用表格作为模型。但是M部分,step1可能是大多数测试分析者认为最困难的。面对众多测试设计技术和面对不同特征的测试对象,测试者经常思考要选择哪种技术来建立一个好的模型。

原文转自:http://hejiajie.cn/archives/472