GB T 17548-2008 信息技术.POSIX标准符合性的测试方法规范和测试方法实现的要求和指南.pdf

上传人:dealItalian200 文档编号:231698 上传时间:2019-07-13 格式:PDF 页数:52 大小:1.24MB
下载 相关 举报
GB T 17548-2008 信息技术.POSIX标准符合性的测试方法规范和测试方法实现的要求和指南.pdf_第1页
第1页 / 共52页
GB T 17548-2008 信息技术.POSIX标准符合性的测试方法规范和测试方法实现的要求和指南.pdf_第2页
第2页 / 共52页
GB T 17548-2008 信息技术.POSIX标准符合性的测试方法规范和测试方法实现的要求和指南.pdf_第3页
第3页 / 共52页
GB T 17548-2008 信息技术.POSIX标准符合性的测试方法规范和测试方法实现的要求和指南.pdf_第4页
第4页 / 共52页
GB T 17548-2008 信息技术.POSIX标准符合性的测试方法规范和测试方法实现的要求和指南.pdf_第5页
第5页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、ICS 35060L 74 囝固中华人民共和国国家标准GBT 1 7548-2008ISOIEC 1 32 1 0:1 999信息技术POSIX标准符合性的测试方法规范和测试方法实现的要求和指南Information technology-Requirements and guidelines fortest methods specification and test method implementation formeasuring conformance to POSIX standards200807-18发布(1SOIEC 13210:l 999,IDT)200812-01实施丰瞀

2、粥紫瓣譬雠瞥鐾发布中国国家标准化管理委员会铍1”前言1概述一11 范围12规范性引用文件-13符合性准则14 IuT符合性评估2术语和一般要求21约定22术语和定义3断言定义、类型、语法和结构31引言-32类属断言结构33断言类型和结构一34宏35总结4测试结果代码41 引言一42测试方法实现43测试方法规范5测试报告51测试报告52符合性文档(cD)审核6轮廓61 定义62符合轮廓63符合性评估7用于测试级别与复杂性级别的导则71 引言72测试级别-73复杂性级别74结论8断言编写指南8】 引言82识别前提条件83编写中的是符号名字。它们用于表示在写断言时应提供的具体细节。适用时,应提供由这

3、些符号名字要求的细节。肖不适j月时应不适用它们。一个测试方法规范应提供基本标准的完整覆盖。测试方法规范是为测试方法实现的开发者而编写的而且当正确应用时提供授权的方式来指H明确地符合基本标准。产生的断言应是完整的、可理解的和正确的。测试方法应按照同样的部分、条款和子句相对啦POSIX标准来组织。断言应仅为r符合性要求而编写。为声明所编写的断言不应仅适用于一个实现的使用而不适用于实现本身。在声明中使用明确的术语的声明,对程序员来讲仅是一个警告或一个实现建议。32类属断言结构图2表示了类属断言结构。除r一般断言和一般文档断言要求For结构和(TestText)结构外,对1GenericAsserti

4、on)的唯一要求的文本是IestText。For(Elemem 1),Elementn:IfApplhable_Standard、lhP“1f()pllo1、thenIfl Test Support、then(,gelup:、SupRtqui remenl s、)Icbt:7 1eY,l I eXl、(I R: ,TestingRequi rements、*(Nolo、NolPs、)。Else、No Te一Support、ffl se(No一()ption、Else:NApplication Standard、图2类属断言结构本结构为本章定义的每个断吉类型提供丁基础。对于每个类属断占结构的规范

5、应根据应用而确定。、Test,rext)适用于某个类属断言。允许测试方法规范在结构的具体术语的标识符表示上具有一定的灵活性;但是,同样的表示应保持一致。例如else可以表示为else、El,SE、E1SE:,Else等只要表示是一致的即可。断占是从上往下执行的,如果前提条件没有被SUT或IUT支持那么断言结果将由柏应的Else执行。UGBT 17548-2008ISOIEC 13210 1 1999321 For如果一个贯穿多种元素的特性或行为是相似的,那么采用For结构以一种精确和准确的方式对多个元素规定同样的要求。这种结构常常在编写一般断言时使用。For也可以作为跳转结构使用这类似于编程语

6、言中使用的方式。它可以列出函数集或常量集作为断言体中引用参数的替换。322 Ifthen ElseIf(precondition),thenElse(outcome)结构用于规定测试某个断言所必需的要求。在断言结构中用If(precondition)子句表达。当要求不满足时。由Else(outcome)子句表达。当SUT支持前提条件时,if子句为真(TRUE)。当SUT不支持前提条件时lf子句为假(FALSE),相应的Else子句决定了报告的结果。当没有提供必需的前提条件时,这种结构提供了一种简单的方法为断言赋值。323适用的标准(ApplicableStandard)表示这个基本标准适用于测

7、试这个断言。(ApplicableStandard)可以是由断言衍生出的单个基奉标准。或是断言应用的多个基本标准。这个参数可以逻辑方式表达。324选项(Option)代表4i必在所有符合性实现中出现的基本标准定义的任何行为或特性。此参数可以逻辑方式表示。325测试支持(Testsupportj表示那些被测试的标准没有规定、或规定了但没有要求,被测系统(SUT)在执行断言测试中又需要的工具,为了彻底地测试一个实现,在一个被测系统中,测试方法规范可能需要非相关的选项特性来支持,326设置要求(SetupRequirements)是测试计划或测试人员为执行断言测试必须履行来建立适当环境的步骤。(Se

8、tupRequirements)町能有一个或多个步骤。它是创建适当测试环境的说明。如果某个设置要求步骤没有成功,那么符合胜测试方法应报告那个步骤失败了失败的原因。如果任何设置步骤都没有成功报告的测试结果代码应是uNREsOLVED。327测试文本(Test 1ext)规定r要执行的测试。通常采用(action)7 result格式。当一个断言要求多重测试时,可以列表或表格的形式定义最少的被测项月。328测试要求(TestingReqren、ents)为一个断言规定了要求的最少测试。最典型的情况就是,当一个断言允许多个方式测试。检测要求宜用于在同样的测试环境下规定文件类型必需的最小集。,Setu

9、pRe斗1iremcnts、可能依赖于断言的语境。因此对于一个单一的断言有可能有多个检测要求每个检测要求适用于一个具体的断言语境。当一个断言为了测试彻底,要求多次测试时,以列或表的方式提供测试参数以代替重复的文字。329注释(Notes表示让那些使用测试方法规范的人了解的附加信,自、。33断言类型和结构根据基本标准的文字每个断言结构应有对应于五个断言类型的可能的格式之一。这些断言类型是:基础;一般;参考;GBT 1 7548-20081S0IEC 1 32 1 0:1 999文档;一般文档。每个断言结构都是基于图2所示的类属断言结构。331断言标识符每个断言都有一个断言标识符,其在断言结构中用

10、符号(AssertionIdentifier)、(DAssertionIdentifier)、(GAAssertionIdentifier)、(GDAssertionIdentifier)、(RAssertionIdentifier)指出。本标准给出如下的编写断言标识符的指南:如果使用丁其他惯例它们应在符合本标准的测试方法规范中规定:(specificationList)(AssertionType)(portableidentifierchars)此处。specificationlist)是其他断言标识符应用的标准和规范的列表;作为可选项时,使用圆括号表示。(AssertionType)指出

11、了断言的类型,它是下面规定的类型或测试方法规范规定的其他类型之一。(portableidentifierchars)选自可移植标识字符集,其给出了断言的标识符或名字。注意在个(AssertionIdentifier)中不允许空格,唯一的空间只能以逗号的形式在中出现。下面的字符集是为(AssertionType)保留的。而且仅能作为指出断言类型使用;测试方法规范应定义所应用的断言标识符惯例。见图3。(AssertionType) 断言类型 断言标识符符号D 文档断言 GA一 一般断言 (GA A sserlionIdentltier)(|D 一般文档断言 “;D-AsserionIdentifi

12、er)R 引用断言 -R侧A e rIlOnIdentifier)(NUI。L) 基础断言 Asserrion Identlfier)图3断言类型符合推荐指南的断言标识符实例:23GA一1 7GAstdCprotodecl1 735Rerofs下面的子句为每个断言类型规定了布局。第四章提供了使用POSlX标准文本为每个断言类型编写断言的实例。332基础断言符号(BasicAssertion)代表关于单一元素的个或多个标准要求。表示以相似的方式影响多个元素的标准要求。每个一般断言导致一个或多个断言。一般断言的格式应符合图5的断古结构。图2所表示的For结构对每个一般断言是必需的GA Asserl

13、ion identifier是唯一的。这肚标识符在前缀之后是数直可1 2GBT 1 7548-2008IS01EC 1 32 1 0:1 999以包含小数点和小数部分。和同类标识符相关的断言,相对其他已编号的断言按照数字的顺序排列。非数值的断言标识符可按照任何顺序排列,包括断言和数值断言标识符之间的布置。数值断言标识符对测试断言来讲,不应意味着某种特殊的顺序。335文档断言当基本标准明确要求对某些特定属性要进行记录时。文档断言是测试方法规范中所必要的。标准可以要求某个销售商的符合性文档指定文档断言,以便文档的组织能够类似标准。可以在较高层次的标题之下出现信息或者用标准的一章节、条款或子句,目的

14、在于覆盖贯穿标准的多个章节、条款和子句。每个文档断言应陈述文档应归属的章节、条款或子句。当断言依赖于符合性文档,其采用支持或不支持的声明机制时,这个断言应使用符号CD一*),此处*是为已扩展的。符号CD一*建议在表中规定选项与每个符号的关联。这个文档的类型为处理多种选项提供了合理的方法。文档断言用于标识符合性文档要求。文档断言的编写应符合图8所示断言结构格式。i坦AssertionIdentifierE Generic Assertion图8文档断言结构POSIX标准通常要求在符合性文档中对特定属性进行记录。当要求时,这个文档作为POSIX符合性文档(PCD)引用。在编写PCD时,基本标准的所

15、有文档要求都要满足。如果存在一个测试方法规范,那么PCD应包含文档断言所要求的所有稳当。PCD中提供的信息应直接可以溯源到基本标准的要求。3351 文档断言的断言标识符对每个元素,用于(DocumentationAssertion)的断言标识符是唯一的。这些标识符在前缀之后是数值,可以包含小数点和小数部分。和同类标识符相关的断占,相对其他已编号的断言,按照数字的顺序排列。非数值的断言标识符可按照任何顺序排列,包括断言和数值断言标识符之间的布置。数值断言标识符对测试断言来讲,不应意味着某种特殊的顺序。336一般文档断言一般文档断言以类似的方式影响多个元素。每个一般文档断言为每个适用的元素产生一个

16、或多个文档断言。从一般断言衍生的每个断言包含r所衍生的一般文档断言的一个参考。一般文档断言的编写应符合图9所示结构。圈2所示的For结构对每个般断言文档是所要求的。(GD Assertion Identifierf Generic_assertion、图9一般文档断言结构由一般文档断言列出的或隐含的每个元素应使用图10所示结构为每个元素产生文档断言。See:为相应的一般文档断言提供了一个参考。(Assertion Identitier、7GenericA sserlion、See”GI)Assertkm Identiier;图10衍生于一般文档断言的文档断言3361 用于一般文挡断言的断言标识

17、符在每个测试方法规范中,断言标识符(GDAssertionIdentifier?是唯一的。1 3GBT 17548-2008ISOIEC 13210:1999建议(jeneralDocumentationAssertion)断言标识符按照下述方式给出具有意义的名字:GDstdCproto用于C标准原型声明的一般文档断言GDcommCresult用于通用C结果声明的一般文档断言337不使用的断言标识符当测试方法规范的研发者想知JRt_,前使用的,但是现在的草案或规范都不使用的断言标识符时,这个断言标识符应在每个元素的末尾列出,或按照图11所示方式用单词Unused表示出。TestSupport

18、(NoTestSupport)Tesl PASSUNTESTED图12 实体对可允许的测试结果代码GBT 17548-2008IS0IEC 13210:1999当一个断言集具有相瓦排除的前提条件,对一个IUT的PASS的最终测试结果代码可能发生。我们建议将相互排除断言作为一个提示进行标注,最终测试结果代码可以是PASS。对标识相互排除断言的表示法的导则为:PASSE(Assertion ldentifier,(Assertion Identifier)见图1 6和912断言0卜()2和l 3 1 5的示例。5测试报告51测试报告对IuT的测试方法执行的结果在测试报告中进行总结。测试报告应包含下

19、列信息:要符合的标准名称和版本;使用的测试方法实现的名称和版本号;测试方法实现要符合的测试方法规范;测试信息系统的名称、型号和配置,以硬根据实现者的标识模式所陈述的实现的名称、版本和发行水平;CD审核的名称和版本(如果标准要求一个CD);1UT测试的日期。此外,下列信息应可用:每个断言测试的测试结果;对测试方法所作的任何修改的描述;如何复制测试结果的信息。如果最终测试结果代码产生与测试方法实现,这个测试方法实现与测试方法标准对应的断言所产生的符合性测试结果代码相匹配,那么这个IuT就符合这个标准或轮廓。52符合性文档(CD)审核当文档断言要求细节,应提供详细的资料。可以参考系统文档来替换提供这

20、些细节但是这些参考文件必须是合适的。一些标准要求来自销售商的CD结构要与相关的基本标准相类似。允许和要求的CD信息应出现在较高层次的标题之下,或以包岔标准内容的部分、条款或子条款的形式出现,目的在于覆盖多个部分、条款和子条款。如果基本标准没有具体规定CD的结构要与标准相匹配,那么可以允许其他格式;然而,强烈建议尽可能地与标准的结构相一致。6轮廓61 定义轮廓明确地描述了一套标准集中各标准之间的关系这些标准在起使用并可以为所使用的基本标准规定特殊的细节。为了充分利用已经定义好的功能和接口可以参考其他国际标准轮廓(ISP),并因此限制其参考摹本标准的方向。因此,一个轮廓包括:规定其直用的基本标准并

21、限制r特定行为和特性的实现,以最大化应用的可移植性;不应规定任何有可能与参考的基本标准引起冲突或不符合的要求;引用的基本标准中规定的变量町以要求一个较大的最大一最小值或一个较小的最大最小值;在基本标准之间要求一定的交瓦作用;GBT 1 7548-2008ISOIEC 1 32 1 0:1 999可以包含符合性要求,其要比所参考的基本标准更具体,范围有一定的限制。62符合轮廓轮廓通过引用基本标准作为规范的一部分。此外,轮廓可能规定基本标准中的实现所要求的特性和行为,并对基本标准中规定的条款很少限制界限和大小。轮廓可以规定其引入的基本标准之间的关系,例如基本标准实现间的互操作性。因此,对于一个符合

22、轮廓的实现来讲其应符合轮廓所合并的所有基本要求以及轮廓本身所规定的所有要求。符合轮廓的要求在轮廓本身中规定。测试方法尽可能地与轮廓分离,应用于度量符合这个轮廓。621轮廓测试方法轮廓测试方法为轮廓中所包含的每个基本标准的测试方法的合并。622基本标准测试方法如果没有标准或认可的方式来测量符合特殊的基本标准,轮廓测试方法应规定基本标准没有应用到符合这个轮廓的测试。应注意已存在一些认可的测试符合标准的方法,其没有测试方法规范;例如,有些国家成员体已有验证c标准实现的符合性的认证程序。但是没有c标准的测试方法规范。轮廓测试方法应规定测试符合基本标准的标准或已认可的方式。如果一个用于基本标准的测试方法

23、遵循了标准中规定的测试方法的要求,那么轮廓测试方法也应为这个基本标准规定修改的符合性矩阵。当测试方法用于测量符合某个基本标准。应用应与轮廓的要求保持一致。例如,测试软件的配置应按照轮廓中的规定的使用限制而不是基本标准中规定的,特别是在它们有不同的情况之下。否则应使用轮廓中要求的基本标准规定的可选项配置测试软件。623具体轮廓的测试方法63符合性评估此处提出了评估符合轮廓的两个模型。它们是从14的单个基本标准模型衍生出来的,并为认可机构执行轮廓符合性评估提供了指南。两个模型采用了已有的测试方法标准。第一个使用了多个基本测试方法,第二个使用了一个轮廓测试方法标准。二者在概念上保证了实质性的一致性。

24、关键问题是要注意到这些模型的基本目的是要解释测试方法标准所包含的测试结果代码与在进行符合性评估时。从CTS和CTP获得的测试结果代码之间的关系。631 使用多种基本测试方法标准图1 3中的模型刻画了有几个基本标准构成的轮廓与它们相关的测试方法标准。由几个基本标准测试方法实现构成的轮廓测试方法实现并与用于符合性测试的现存测试方法标准相一致。测试方法标准标识符合性测试结果代码。然后按照每个轮廓的要求进行修改。这样产生了轮廓符合性测试结果代码的单一标识集。当执行轮廓测试方法实现时,要解决所有中间测试结果代码以产生最终的测试结果代码。如果符合测试结果代码的轮廓与最终测试结果代码匹配,那么可以判断这个实

25、现符合轮廓。GBT 17548-20081SOIEC 1 3210:1999图13 多重基本标准轮廓632使用轮廓测试方法标准图14中的模型与图1 3中模型类似,尽管在这个模型中,多重轮廓标准(从每个相关基本标准中衍生出的)用它们相关的轮廓测试方法标准来描述(从基本测试方法中衍生出来的)。轮廓符合性测试结果代码由每个轮廓测试方法标准来标识。在这个实例中的轮廓CTS是轮廓测试方法标准要求配置的实际的一个或多个基本标准CTSs(例如,一些选项是必要的)。如果轮廓符合性测试结果代码与最终的测试结果代码相匹配,那么可以判断这个实现符合轮廓。GBT 1 7548-2008ISOIEC 1 32 1 0:

26、1 999图14 多重轮廓的轮廓标准7用于测试级别与复杂性级别的导则本章包含了一些信息类材料,对后面的内容起到指导的作用。71 引言原则上讲,符合性测试的目标就是要确定被测实现是否符合有关标准中的规定。实际存在的限制因素使人们不可能进行穷举测试,许多经济方面的考虑还可能对严格的测试有更大的限制。在测试方法的设计和开发过程中,这些限制的存在使得元素复杂性级别将决定满足符合性要求的测试的级别。因此本标准按照给出的符合性范围,划分为j种主要的测试级别和二种主要的元素复杂性测试级别。三种主要的测试级别是:一一穷举测试;20GBT 17548-2008ISO1EC 13210:1999详细测试;鉴别测试

27、。三种主要的元素复杂性级别是:简单元素;中等元素;复杂元素。72测试级别721穷举测试穷举测试寻求验证一个元素的各个方面的行为包括所有的置换情况。例如:对某个给定的用户命令的穷举测试,应当要求测试该命令的不带选项的情况、带每种选项的情况、带每对选项的情况等等直到对所有的可选择项的各种置换情况都测试完为止。各种命令选项和置换情况很快会达到一个巨大的、在现实的时间内难以完成测试数目。举一个例子在GBT 14246,1 1 993中约有37个不同的出错情况。一种差错的发生往往可能影响对另一个差错的正确检测。37个差错的穷举测试不仅要求对每一个差错进行一次测试而且要对这些差错的每个可能的置换情况都测试

28、一次。因此,不是测37次,而是要测几十亿(2的37次幂)次。因此,穷举测试通常是不可行的。722详细测试详细测试是穷举测试的一种替代方法。详细测试力求验证一个元素的各个方面的行为,但并不测试所有的置换情况。例如,对某个给定的命令进行详细测试,首先应测试该命令不带选择项情况,然后一个个地测试每种带选项的情况,也可以测试可能的选项组合。前面假设的例子有37个出错情况,详细测试可能需要进行38次测试,这是一个可操作的数目。详细测试是一种可行的解决方案。在对大量的元素逐个进行测试的过程中可以同时测试子元素的某些组合。在这个讨论中要考虑到由每个软件元素的规约导出的断言的数目。详细测试的目的是要测试在孤立

29、的情况下各个方面的功能,因而比穷举测试要可行得多。但当一个元素的各方面功能的数量很大时,详细测试也是不大可行的。因而定义了第三级的测试。723鉴别测试鉴别测试力求验证被测元素的一些特色特性。它包括对该元素进行某种粗略的检查,以最小命令语法调用该元素,并验证它的最小功能。例如对某个c语言编译程序的鉴别测试会将这个c编译程序与系统中的另一种语言的编译程序区别开来但不必与本系统中的或者另一系统中的其他C编译程序区别。鉴别测试不要求验证c编译程序手册中规定的所有的语法和功能。对某个c编译程序的适当的鉴别测试,应当是验证建立C编译程序的特色特征所必须的最小程序结构。73复杂性级别731 简单元素简单元素

30、是在对该元素的描述中已完全定义r的元素。简单元素只有几个要测试的断言,而且其功能与POSIX标准中定义的其他元素无关。简单元素的例子包括在POSIX2甲规定的cat实用程序和在GBT 1424611 993中规定的close()函数。对简单元素应进行详细测试。732中等元素中等元素是具有中等数目的断言的元素,并可依赖POSIX标准中定义的其他元素的功能。中等元素的例子如POSIX2中规定的grep和sed实用程序这些程序除支持正则表达式之外还支持其固有的功能。详细测试应当是中等元素的目标,但有些情况下可能是不町实现的。21GBT 1 7548-2008ISOIEC 1 32 1 0:1 999

31、733复杂元素复杂元素是那些实现某种语言、依赖中等元素的功能或对硬件有影响的元素。详细测试一般需要进行数量很多的断言测试。复杂元素的例子如POSIX2中规定的sh和awk实用程序,它们实现正则表达式和某种语言。对复杂元素,详细测试只能用于测试该元素的某些特殊方面。74结论每个元素的功能是根据测试级别和元素复杂性级别的定义进行分析和评价的。由于选项、事件和事件计时的可能组合数相当大,因而通常不能进行穷举测试。 根据详细测试定义的非正则性,测试的详细程度应因CTS的不同而异,在一个PCTS里,断言不同,测试的详细程度也不同。CTS实施者必须对此做出选择。精确地定义推荐测试的级别以及取消这种自由度不

32、属于本标准的范围。8断言编写指南81 引言本章仅包含信息性材料。本章为编写测试方法规范的断言提供了指南。本标准的使用者也可以采用其他方法以满足本标准的要求。编写断言时有三个基本步骤:识别要求和其各自的断言类型;为每个要求识别所有的前提条件;编写断言文本。811识别符合性要求符合性要求就是那些要求符合的。在句子中必须是劈磅的,它们必须规定或明确符合性实现的具体要求。符合性要求不是模糊的,不应造成一个实现的质量或性能属性与另外一个不同。测试做得不错和测试做的正确是完全不同的。前者表明了实现的质量虽然很重要但是在符合性测试的范围之外。这是留给系统开发者来确定他们的系统对一个给定的实现是否执行的好。符

33、合性测试所关心的仅是所要求的实现的功能或行为是正确的。在识别符合性要求时下列的步骤非常有用:核查标准的定义和术语部分,以识别用于定于符合性要求的术语。特别要注意存在应(shaH)、可以(may)、宜(should)、能(can)、定义的实现(implemengatJondeined)、未定义(undelined)和来魍定(unspeciied)的定义。在这些术语中,应(shaH)常用于POSIX和其他国际和成员体国家标准中,意味着一个要求。可以(may)、宜(should)和艟(can)的使用表示明确性相对小一些。此外,检查标准符合性部分所包含的相关材料。这些部分通常涉及到对标准的所有符合性要

34、求。显著标明那些没有使用明确定义的术语,以陈述的方式出现的代表同一意思的术语。检查陈述中包含的作为明确要求候选的那些术语以决定那些是,那些不是。始终要记住,符合性要求是那些符合标准的要求。检查标准中涉及到符合性要求的相关基本原理。要记住这些基本原理仅是信息提示,甚至有可能是错的。在标准的基准要求以及可选特性和行为中可以找到符合性要求。为此,要注意可以(may)的使用,将其与具有应(shall)要求的实现中的可选项区别开,当可以(may)选项支持时。例如,对结果的声明实现可以做A或做B。不是本质上为实现建立任何要求。这个声明允许要么A或B发生,但是可以不要求两个例子曾经是真(TRUE)。这个实现

35、可以做一个,两个,两者都不,或者甚至是其他(c)。然而,对结果的声明:实现要么做A,要么做B。如果A发生了,那么A1应,2GBT 17548-2008ISOIEC 13210:1999构成了当A发生时实现的符合性要求。另外两个容易混淆的术语是unspecified和undeined,乍看,它们可能意味着同一个意思。其实它们不同。在PASC标准中,unspecified源于正确程序结构或正确数据的行为,undehned是指源于错误的程序结构或错误数据。unspecified的目的在于允许标准编写者为正确的程序结构考虑不明确的行为。同样,undefined目的在于允许一定的错误条件发生,要求不产生

36、诊断信息。在这两个情况下,两者都不会为一个测试断言产生符合性要求但是可以产生文档要求(见335文档断言)。定义这些术语由标准编写者来做。并且要让断言编写者明白它们的用法。同样,声明意味着最终确定的术语的使用应将可适用性作为明确的要求来检查。自身所要求的或与其他符合性要求相联的符合性要求要对应某个断言。当标准在陈述中使用了术语而不是位”(shall),其可能符合要求,断言编写者必须要慎重决定产生的声明是否是标准的要求。“可以”(may)这个词的使用就是一个例子。包含“可以”(may)这个词的某些声明没有提供足够的清晰度或构成一个符合性要求。例如,调用open()函数可使底层文件的st_atime

37、字段被标记为修改。这个声明没有说明这种行为适用于所有的文件类型,还是只适用于某个特殊的实现。声明不能构成实现的一个符合性要求。对上面这个声明无法编写断言,这种断言不能评估为假(FALSE)并且对符合标准没有提供信息。因此,一个断言仅能被评估为真(TRUE)或就相关的符合性要求完全评估为无意义。(这种断言可以反映一个实现的质量但是实现的质量不是标准符合性问题)。如果上面的声明有相关的文档要求,那么编写一个断言来验证符合性文档。然而如果“可必”(may)用于描述标准所允许的一个可选的特性并且声明在描述可选特性的行为属性时使用憾”(shall)。然而在标准中包含这样的结构是一个不好的惯例,如果出现这

38、种情况,在“可以”(may)中使用“应”(shall)来构成符合性要求。在写断言和测试套件时,“可以”作为允许术语来定义符合性要求可能不好处理。每个“可以”都能够指函数控制流中的一个分支,它的定义由系统的实现来处理。从断言和断言测试的角度看,建立执行“可“”特征的一个可靠的测试套件很困难,这种测试可能试图使用这个特征并报告结果,如果(从标准的角度看)这个特征确实起作用,它也不能报告出错。不幸的是,一个“可以”特性的一种可允许的副作用会带来巨大的灾难。声明中包含位”表明是一个符合性要求,当这个可选行为被实现支持和适用时。标准中不使用苗”标识一个符合性要求,但是可以认为是推荐性惯例。812确定要求

39、和断言类型8121术语和断言基本标准的符合性要求经常要求使用下列术语产生断言的特定类型。必须对基本标准进行检查以确定是那种情况:应:基础断言;可以:基于“若文档化(if documented)”的文档断言以及一个或多个基础断言每个所包含的一个或多个属性;未规定:基于“若文档化(if documented)”的文档断言以及一个或多个可移植性或非可移植性基础断言的合并;未定义:基于“若文档化(if documented)”的文档断言以及没有断言;定义的实施:文档断言以及一个或多个可移植的或非可移植的基础断言;文档化:文档断言;基本标准的符合性要求常要求下列术语不产生断言,必须检查基本标准来确定是否

40、是下述情况:宜;23GBT 1 7548-2008ISOIEC 1 32 1 0:1 999未定义;扩展;仅用于实施用途的声明而不用于实现,不产生断言对编程人员的警告;实施建议。在基本标准中使用的其他术语与上述术语直接相关。其中部分如【璺i 1 5所规定的术语惯用语 规定的术语可以(can) m8YnlaYshallshallwill shal【documentedimplementation warning should图15术语8122指南下面描述了一个已被成功用于在一个基本标准中确定明确要求的过程。81221基本标准使用基本标准中规定的关键字来显著表示所有声明。在POSIX标准中,这些通

41、常为shall、will、may以及or。同样显著标明声明也就意味着这些词的使用。例如调用open()函数可使底层文件的st_atime字段被标记为修改。这个声明就暗含着“应”意思。确定这些被显著标明的声明哪些仅用于应用并将其删除。断言仅能为实现要求而编写。81222可选断言文本获得不同颜色的显著标明。仔细审查标准并对基于选项而产生断言的术语和惯用语显著标明。81223文档断言文本只有符合基本标准具体特性的。才需要这一步。并要记录。POSIX标准通常要求这些文件在一个符合性文档中,通常作为PASC(或POSlX)符合性文件来引用。当一个基本标准具有同样的要求,必须产生文档断言。拿一支钢笔或铅笔

42、。仔细看标准并划出那些产生文档断言的术语和惯用语。8123明确符号这个方法为基本标准特性提供了命名惯例。这是改进测试方法规范的可读性和精确性所需要的,并允许测试方法实现参考那些在测试方法规范中使用一致的术语的基本标准特性。为了使产生的断言容易明白,应采用系统的方法以确保断言文本的一致。确定所有由基本标准和相关的基本标准规定的前提条件。如果基本标准没有做,为每个前提条件指定一个符号。当一个标准对于前提条件文字描述不清晰,测试方法编写者不得不提出定义与前提条件相关的符号。当断言依赖于PCD,其用于对一个(Option)的支持或非支持的声明机制。所使用的符号及其相关的文字必须确定。建议命名与这些要求

43、相关的符号,并以“PCD-”开头;当断言依赖于基本标准限制不需要获得对所有的符合胜实现,那么应为这些断占建立一个符2IGBT 175482008ISOIEC 13210:1999号和测试限制,以便使用。与这些要求相关的符号建议命名,并以“C FS一”开头;当断言依赖于(TestSupport)那么建议建立符号。与这些要求相关的符号应命名,并以“TS一”开头;所有与PCD_-CTS和TS指派相关的符号建议在一个或多个表中列出,并与符号的名称及其用途相关联。8124产生断言断言是基本标准中已明确声明所必要的。单个的断言可能包括一个以上的明确要求。由于标准的编写通常按照平铺直叙的格调写的,因此没有充

44、分的信息可以从基本标准中拷贝过来作为一个断言。每个断言应作为独立于标准的声明而存在,并且用文字表达出来以便陈述要求符合实现。要求支持确定的实现或非规定的行为的断言是不可移植的。町移植地测试断言的能力在确定与断言有关的文字时将会是一个重要的因素。不能进行移植眭测试的基本标准规范建议由进行可移植测试的断言以及陈述非移植胜测试特性的断言来解决。813基础断言GBT 1 42461 1993文本以及其相关的由IEEE Std20031所规定的断言提供的实例已改变并与本标准的断言结构相一致。814结论编写断言是一个学习的过程。两个2003工作组成员为同一个基本标准编写断言,不会写出同样的断言尽管这两个断

45、言都是正确的。82识别前提条件当if结构评价是真的,才能处理后面的结构。当if为真,按照断言的逻辑,应继续执行剑下一个前提条件。如果评估(ApplicableStandard为假,断言逻辑应结束并返回(No ApplicableStandard。这个前提条件的目的是为r能使轮廓断言的开发者建立基本标准。对文本规范,见322。822选项(Option指一个可选的元素或町适用标准中所定义元素的特性。如果断言依赖于现存的一个可选元素或可适用标准中定义的特性每个可选特胜应作为选项进行定义,创建一个嵌套的IF结构。例如,在GBT 1 42461 l 993标准中,一个允许的可选项足对L:标准的支持。GB

46、T l 42461 1993中,273:声明依赖C语言标准语言支持的实现,应声明所有函数的函数原型。如果标准c被支持了,所有函数必须作为函数原型声明。用来测试一个给定的函数是否为真的断言将以下列形式开始:GBT 1 7548-2008ISOIEC 1 32 1 0:1 999If GBT 142461 1 993 thenIf Standard C thenElse(No Option)Else(NoApplicableStandard)来自GBT 142461 1 993,134的另外一个例子,被实现的函数是否作为一个宏:GBT 142461 1993。134(3):对于作为宏实现的库函数的任何引用应扩展成代码以计算它的每一个实参。测试诸如write()函数的断言应按照如下形式开始:If GBT 142461 1993 ThenIf write()is defined as a macro when the header(unistdhisinclI】ded,thenElse(NoOption) Else(NoApplicableStandard?为了测试一个断言逻辑进行到下一步,一个应被评估为真。如果(Option)不是必需的,其应被指派为NONE并被评估为真。如果(Option被评价为假,断言逻辑应结束并返回(NoOption)。文本规

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1