构件可测试性挑战
上一篇 / 下一篇 2006-12-15 22:45:15 / 个人分类:转贴好文
查看( 2034 ) /
评论( 4 )
构件的可测试性是设计和测试软件程序及构件的重要概念之一。运用具有良好的可测试性的程序和构件来构建软件,可以简化测试操作、减少测试开销、提高软件质量。 51Testing软件测试网,_O'B-~}w%o
T$\-X2O s0 James Bach曾指出,有一些程序特性可以用于可测试的软件,包括可操作性、可观察性、可控制性、易理解性等等。Jeffrey M.Voas和Keith W. Miller将软件可测试性看成是可靠性的三个难题之一。他们指出软件可测试性分析对于检测和评估一个使用经验主义(empirical)分析方法的软件测试是很有用的。
8N [Y6M9t@)O0 51Testing软件测试网re9^;?"SSa!a4HeS
然而,在构件工程、基于构件的软件开发中,开发者对构件的可测试性仍然存在一些疑惑。什么是构件的可测试性?它的相关要素是什么?怎样检查、测量或评价软件构件的可测试性?怎样设计和开发可测试的构件来达到良好的可测试性? 51Testing软件测试网1xX#r5v4g \
o E oq1y C G9}0 构件可测试性是什么? 51Testing软件测试网3H1X}%O+L6Tg
U,\0dH7z#GK;fP0 在构件工程中,有几种不同的构件可测试性的观点,包括构件可观察性(observability)、构件可跟踪性(traceability)、构件可控制性(controllability)和构件易理解性(understandability)。
!{(c|3AC:K9c0
WJhf?e(_-E,B9eF0 构件可观察性和可跟踪性
!C/IM;x'b/{pt0 51Testing软件测试网`C B zW
根据Roy S. Freedman的观点,软件可观察性是指根据一个程序的操作行为、输入参数及输出结果,来察看观察这个程序的简单程度。这也暗指了设计和定义一个构件的接口(例如输入、输出接口)将会影响到它的可观察性。可以使用Roy S. Freedman提出的方法来检测一个构件的接口,相对于它的输入,来评价观察它的操作和输出的简单程度。应用到构件工程中,构件可跟踪性是另一个影响构件可观察性的要素。
*PW(@)LEw[~d0
@"R4derL$`0 软件构件的可跟踪性是指跟踪构件属性和构件行为的嵌入能力的范围。它有两方面:行为跟踪(behavior traceability)和跟踪可控制性(trace controllability)。行为跟踪指构件跟踪它的内部和外部行为的便利的程度。现实世界中,构件工程可以通过在软件中增加一个程序跟踪机制来检查和监视软件构件的内部和外部行为。 51Testing软件测试网h1eQgz"m/@
51Testing软件测试网`^$wyl[.m
共计有六种类型的构件跟踪,它们是操作、性能、错误、状态、GUI事件和通讯跟踪。可以使用不同的方法将跟踪可控制性添加到软件构件中。为了支持嵌入功能的访问,必须在构件中定义一个标准跟踪接口。构件跟踪接口的标准化和跟踪格式对一个基于构件的程序建立系统化的跟踪解决方法很重要。
!?B)o.X}w,`0 51Testing软件测试网\'hP$A1Jy I$]e
构件可控制性
Gb.^;Sk&cb0
8\ X,TPm/~1h~o5A0 一个程序(或构件)的可控制性是一个重要的特性,它表明了控制一个程序(或构件)的输入/输出、操作和行为的简单程度。构件开发者从三个方面察看软件构件的“可控制性”:行为控制,特性定制和安装布置。第一个方面与构件的行为和输出结果(相应于操作和输入数据)的能力有关,第二个方面指支持构件内部特性的定制和配置的嵌入能力,最后一个方面是指构件安装和配置的控制能力。
#pU9p z+wQ&O V_4n0
{/[ YD6^:^7u^0 构件可理解性 51Testing软件测试网TpU?]G
ba t J*D[uS(I7^0 构件可理解性依赖于构件信息提供的多少以及它们表述的好坏。构件文档的表述是第一要素。 51Testing软件测试网m2A{2Rs7C`
51Testing软件测试网,m,YQ#W L_&I5|U
构件可理解性的第二要素是构件程序资源表述,包括构件源代码及其支持元素,例如安装代码和测试驱动等。 51Testing软件测试网Dm_y_
51Testing软件测试网Q&ML(p2E0i~
最后一个要素是构件质量信息的表述,包括构件验收的测试计划和测试套件,构件测试度量和质量报告。
8[IB c8P.n0 51Testing软件测试网yg@;n2rBs'uG4X
虽然看上去构件供应商隐藏了详细的测试信息和问题信息也挺合理的,但是用户还是希望在不久的将来他们能够提供构件的质量信息、验收的测试计划,甚至是测试套件。
0[hH_.VYG#T!d0 51Testing软件测试网+b-M-\p#o!gc
测试软件构件的挑战
&F
T$\-X2O s0 James Bach曾指出,有一些程序特性可以用于可测试的软件,包括可操作性、可观察性、可控制性、易理解性等等。Jeffrey M.Voas和Keith W. Miller将软件可测试性看成是可靠性的三个难题之一。他们指出软件可测试性分析对于检测和评估一个使用经验主义(empirical)分析方法的软件测试是很有用的。
8N [Y6M9t@)O0 51Testing软件测试网re9^;?"SSa!a4HeS
然而,在构件工程、基于构件的软件开发中,开发者对构件的可测试性仍然存在一些疑惑。什么是构件的可测试性?它的相关要素是什么?怎样检查、测量或评价软件构件的可测试性?怎样设计和开发可测试的构件来达到良好的可测试性? 51Testing软件测试网1xX#r5v4g \
o E oq1y C G9}0 构件可测试性是什么? 51Testing软件测试网3H1X}%O+L6Tg
U,\0dH7z#GK;fP0 在构件工程中,有几种不同的构件可测试性的观点,包括构件可观察性(observability)、构件可跟踪性(traceability)、构件可控制性(controllability)和构件易理解性(understandability)。
!{(c|3AC:K9c0
WJhf?e(_-E,B9eF0 构件可观察性和可跟踪性
!C/IM;x'b/{pt0 51Testing软件测试网`C B zW
根据Roy S. Freedman的观点,软件可观察性是指根据一个程序的操作行为、输入参数及输出结果,来察看观察这个程序的简单程度。这也暗指了设计和定义一个构件的接口(例如输入、输出接口)将会影响到它的可观察性。可以使用Roy S. Freedman提出的方法来检测一个构件的接口,相对于它的输入,来评价观察它的操作和输出的简单程度。应用到构件工程中,构件可跟踪性是另一个影响构件可观察性的要素。
*PW(@)LEw[~d0
@"R4derL$`0 软件构件的可跟踪性是指跟踪构件属性和构件行为的嵌入能力的范围。它有两方面:行为跟踪(behavior traceability)和跟踪可控制性(trace controllability)。行为跟踪指构件跟踪它的内部和外部行为的便利的程度。现实世界中,构件工程可以通过在软件中增加一个程序跟踪机制来检查和监视软件构件的内部和外部行为。 51Testing软件测试网h1eQgz"m/@
51Testing软件测试网`^$wyl[.m
共计有六种类型的构件跟踪,它们是操作、性能、错误、状态、GUI事件和通讯跟踪。可以使用不同的方法将跟踪可控制性添加到软件构件中。为了支持嵌入功能的访问,必须在构件中定义一个标准跟踪接口。构件跟踪接口的标准化和跟踪格式对一个基于构件的程序建立系统化的跟踪解决方法很重要。
!?B)o.X}w,`0 51Testing软件测试网\'hP$A1Jy I$]e
构件可控制性
Gb.^;Sk&cb0
8\ X,TPm/~1h~o5A0 一个程序(或构件)的可控制性是一个重要的特性,它表明了控制一个程序(或构件)的输入/输出、操作和行为的简单程度。构件开发者从三个方面察看软件构件的“可控制性”:行为控制,特性定制和安装布置。第一个方面与构件的行为和输出结果(相应于操作和输入数据)的能力有关,第二个方面指支持构件内部特性的定制和配置的嵌入能力,最后一个方面是指构件安装和配置的控制能力。
#pU9p z+wQ&O V_4n0
{/[ YD6^:^7u^0 构件可理解性 51Testing软件测试网TpU?]G
ba t J*D[uS(I7^0 构件可理解性依赖于构件信息提供的多少以及它们表述的好坏。构件文档的表述是第一要素。 51Testing软件测试网m2A{2Rs7C`
51Testing软件测试网,m,YQ#W L_&I5|U
构件可理解性的第二要素是构件程序资源表述,包括构件源代码及其支持元素,例如安装代码和测试驱动等。 51Testing软件测试网Dm_y_
51Testing软件测试网Q&ML(p2E0i~
最后一个要素是构件质量信息的表述,包括构件验收的测试计划和测试套件,构件测试度量和质量报告。
8[IB c8P.n0 51Testing软件测试网yg@;n2rBs'uG4X
虽然看上去构件供应商隐藏了详细的测试信息和问题信息也挺合理的,但是用户还是希望在不久的将来他们能够提供构件的质量信息、验收的测试计划,甚至是测试套件。
0[hH_.VYG#T!d0 51Testing软件测试网+b-M-\p#o!gc
测试软件构件的挑战
&F