GB T 17548-1998 信息技术 POSIX依从性的测试方法.pdf

上传人:hopesteam270 文档编号:197190 上传时间:2019-07-14 格式:PDF 页数:24 大小:1.43MB
下载 相关 举报
GB T 17548-1998 信息技术 POSIX依从性的测试方法.pdf_第1页
第1页 / 共24页
GB T 17548-1998 信息技术 POSIX依从性的测试方法.pdf_第2页
第2页 / 共24页
GB T 17548-1998 信息技术 POSIX依从性的测试方法.pdf_第3页
第3页 / 共24页
GB T 17548-1998 信息技术 POSIX依从性的测试方法.pdf_第4页
第4页 / 共24页
GB T 17548-1998 信息技术 POSIX依从性的测试方法.pdf_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、中华人民共和国国家标准信息技术依从性的测试方法发布实施国家质量技术监督局发布前言本标准等同采用国际标准信息技术依从性的测试方法由于国际标准是直接采用了美国国家标准根据我国国情本标准删去了的引言部分和索引部分另外关于附录和附录的性质问题原文前后不统一本标准将附录和附录都定为提示的附录除上述外本标准与国际标准在技术内容上是完全一致的本标准的附录和附录是提示的附录本标准由中华人民共和国电子工业部提出本标准由电子工业部标准化研究所归口本标准起草单位中国计算机软件与技术服务总公司本标准主要起草人孟庆余王桂兰黄民德冯惠前言国际标准化组织和国际电工委员会是世界性的标准化专门机构国家成员体它们都是或的成员国通

2、过国际组织建立的各个技术委员会参与制定针对特定技术范围的标准和的各技术委员会在共同感兴趣的领域内进行合作与和有联系的其他官方和非官方国际组织也可参与标准的制定工作在信息技术领域中和建立了一个联合技术委员会即由联合技术委员会接受的标准草案需分发给国家成员体进行表决发布一项标准至少需要的参与表决的国家成员体投票赞成国际标准是由信息技术联合技术委员会程序设计语言及其环境和系统软件接口分委员会制定的附录和附录仅提供参考信息中华人民共和国国家标准信息技术依从性的测试方法国家质量技术监督局批准实施概述范围本标准适用于标准依从性测试方法的开发和使用本标准中确定的通用测试方法应与为某个特定标准所规定的测试方法

3、结合使用本标准旨在供开发标准测试方法的工作组测试方法的开发者和使用者使用本标准的目的是定义对某个实现的依从性做测试断言和开发相关的测试方法的通用规则这些测试方法可以包括依从性测试套依从性测试规程和依从性文档的审核对某个实现的标准依从性测试包括测试该实现所声称的符合本标准要求的能力和行为这些测试方法旨在提供一种合理且实际的保证使得该实现符合本标准但这些测试方法的使用不能担保某个实现就一定符合本标准要保证这种依从性通常需要进行穷举测试见而穷举测试无论在技术上还是在经济上都是做不到的引用标准下列标准所包含的条文通过在本标准中引用而构成为本标准的条文本标准出版时所示版本均为有效所有标准都会被修订使用本

4、标准的各方应探讨使用下列标准最新版本的可能性软件工程术语信息技术可移植的操作系统界面第一部分系统应用程序界面术语和一般要求约定在本标准中所使用的排版约定是斜体字型用于在使用中通常用实值替代的参数可选变元和操作数语言数据类型和函数名全局外部变量名黑体字型用于测试结果代码断言类型的分类宽字型用于描述所讲到的实际使用的系统的输入输出示例对实用程序名和语言标题的引用由各种函数返回的符号名表示为符号名符号常数限制表示为符号常数限制符号常数选择项表示为选择项名作为带标号的表和图形的组成部分的注释是本标准的组成部分规范性的而在正文内的脚注和其他注释只是提供信息参考性的通常使用小写字母的定义名特别是函数名决不

5、要放在句首或按规则的英文语法要求使用大写字母的任何地方表排版约定引用内容示例语言前导文件命令名命令选项带变元的命令选项数据类型定义术语环境变量差错号文卷名函数变元声明函数变元函数声明函数名全局外部变量依赖于实现的限制元变量操作数输出参数特殊字符符号常数限制符号常数选项表引用变量诸如等数学符号仅能用在公式断言分类赋值以及条件断言前面的条件从句中在某些情况下列表信息呈直线排列成行而在另一些情况下则是一些单独标号的表这种安排纯系为了方便排字这两种情况之间没有规范性的差异上面列举的约定只是为了容易阅读在本标准的排版编辑中出现的前后不一致的地方不是有意的不具有规范性质表是对排版约定的总结定义术语本标准采

6、用下述定义可以测试方法的选择在本标准中不必用作可以的否定应测试方法的一项要求宜建议的一种测试方法一般术语本标准采用下述定义断言对一个单元的功能或行为的一项陈述它是由将被测试的标准得出的它对于符合的实现为真断言号赋给一个断言的数字标识符单元名和断言号结合起来共同唯一地标识某个断言断言测试为确定一个实现是否符合某个断言而采用的软件或过程性方法基本断言需要对所要求的特征和已实现的条件特征进行测试的一个断言条件特征在标准中涉及到并非所有的实现都必须具有的某个特征或行为开发系统用于编译和配置依从性测试套的计算机系统单元功能接口或名字空间的分配单元的例子如函数或实用程序名字空间分配的例子包括前导文件或出错

7、返回值常数扩展断言一种不需要测试的断言依从性文档标准要求的依从性文档依从性测试规程进行依从性测试时可能与其他测试方法一起使用的一些非软件规程依从性测试套进行依从性测试时可能与进行依从性测试的其他测试方法一起使用的软件集要求的特性标准要求一个具有依从性的实现必需具备某个功能或行为或者具备一对可选用的功能或行为中的一个目标系统执行的计算机系统与产生可执行代码的开发系统的若干部分的结合测试方法为了测试依从性而由标准规定的软件规程或其他手段测试方法可以包括或对的审核测试结果代码描述断言测试结果的值缩略语下列缩略语适用于本标准美国电气与电子工程师学会依从性文档依从性测试规程依从性测试套对系列标准的通称本

8、标准对本标准依从性的测试方法依从性准则符合的测试方法应遵从下列各项准则这些测试方法应将它们符合的测试方法规范写成文档这些测试方法应对要进行依从性测试的标准的要求的特征和已实现的条件特征进行基本断言测试若某个断言列出了一组实例通常用分隔开则应对每个实例进行断言测试应尽可能由自动断言测试所构成文档应包括与安装配置和执行有关的一切信息需要时测试方法文档应包括实现和对审计的细则测试方法文档应说明怎样实施采集和解释测试结果其他附加准则应在可以实施的标准中加以规定测试级别和复杂性级别引言原则上讲依从性测试的目标就是要确定被测的实现是否符合有关标准中的规定实际存在的限制因素使人们不可能进行穷举测试许多经济方

9、面的考虑还可能对严格的测试有更大的限制在测试方法的设计和开发过程中这些限制的存在使得单元复杂性级别将决定满足依从性要求的测试的级别因此本标准按照给出的依从性范围划分为三种主要的测试级别和三种主要的单元复杂性测试级别三种主要的测试级别是穷举测试详细测试鉴别测试三种主要的单元复杂性级别是简单单元中等单元复杂单元测试级别穷举测试穷举测试寻求验证一个单元的各个方面的行为包括所有的置换情况例如对某个给定的用户命令的穷举测试应当要求测试该命令的不带选项的情况带每种选项的情况带每对选项的情况等等直到对所有的可选择项的各种置换情况都测试完为止各种命令选项和置换情况很快会达到一个巨大的在现实的时间内难以完成测试

10、数目举一个例子在中约有个不同的出错情况一种差错的发生往往可能影响对另一个差错的正确检测个差错的穷举测试不仅要求对每一个差错进行一次测试而且要对这些差错的每个可能的置换情况都测试一次因此不是测次而是要测几十亿的次幂次因此穷举测试通常是不可行的详细测试详细测试是穷举测试的一种替代方法详细测试力求验证一个单元的各个方面的行为但并不测试所有的置换情况例如对某个给定的命令进行详细测试首先应测试该命令不带选择项情况然后一个个地测试每种带选项的情况也可以测试可能的选项组合前面假设的例子有个出错情况详细测试可能需要进行次测试这是一个可操作的数目详细测试是一种可行的解决方案在对大量的单元一个个进行测试的过程中可

11、以同时测试子单元的某些组合在这个讨论中要考虑到由每个软件单元的规范导出的断言的数目详细测试的目的是要测试在孤立的情况下各个方面的功能因而比穷举测试要可行得多但当一个单元的各方面功能的数量很大时详细测试也是不大可行的因而定义了第三级的测试鉴别测试鉴别测试力求验证被测单元的一些特色特性它包括对该单元进行某种粗略的检查以最小命令语法调用该单元并验证它的最小功能例如对某个语言编译程序的鉴别测试会将这个编译程序与系统中的另一种语言的编译程序区别开来但不必与本系统中的或者另一系统中的其他编译程序区别鉴别测试不要求验证编译程序手册中规定的所有的语法和功能对某个编译程序的适当的鉴别测试应当是验证建立编译程序的

12、特色特征所必须的最小程序结构复杂性级别简单单元简单单元是在对该单元的描述中已完全定义了的单元简单单元只有几个要测试的断言而且其功能与标准中定义的其他单元无关简单单元的例子包括在中规定的实用程序和在中规定的函数对简单单元应进行详细测试中等单元中等单元是具有中等数目的断言并可依赖标准中定义的其他单元的功能中等单元的例子如中规定的和实用程序这些程序除支持正则表达式之外还支持其固有的功能详细测试应当是中等单元的目标但有些情况下可能是不可实现的复杂单元复杂单元是那些实现某种语言依赖中等单元的功能或对硬件有影响的单元详细测试一般需要进行数量很多的断言测试复杂单元的例子如中规定的和实用程序它们实现正则表达式

13、和某种语言对复杂单元详细测试只能用于测试该单元的某些特殊方面结论每个单元的功能是根据测试级别和单元复杂性级别的定义进行分析和评价的由于选项事件和事件计时的可能组合数相当大因而通常不能进行穷举测试根据详细测试定义的非正则性测试的详细程度应因的不同而异在一个里断言不同测试的详细程度也不同的实施者必须对此做出选择精确地定义推荐测试的级以及取消这种自由度不属于本标准的范围断言分类分类方法每种断言必属于表中矩阵表示的四种类型之一表断言的分类基本断言扩展断言要求的特征条件特征断言矩阵的行对应于该特征是要求的还是条件的见该断言矩阵的列对应于对该断言是否要进行测试不一定需要测试的断言为扩展断言鼓励在可能的条件

14、下开发扩展断言的断言测试在某些情况下可以建立一种断言测试它只是部分地而不是全部地测试一个扩展断言例如依从性检测失败有时是可能的但不可能所有情况下都失败所有检测失败的断言测试都应对该断言产生测试结果代码见第章对断言进行不充分的断言测试和在系统中正确完成测试但未检测出系统故障的断言测试都应返回测试结果代码把断言归类为扩展断言的理由如下理由对这种断言尚没有可移植的测试方法理由对在标准中的相应声明要进行依从性测试但其特殊性尚不足以编写可移植的测试理由对这种断言尚没有可靠的测试方法理由这种断言测试需要建立规程而这些规程包括需要某个测试方法的用户付出过多的努力理由这种断言测试在多数系统上都需要花费过多的时

15、间和资源理由建立一种断言测试将需要过多的测试开发时间理由这种断言测试可能对某种测试方法的完成有不利影响不属于扩展断言的断言为基本断言对要求的特征和实现条件特征的基本断言都应进行测试因此每个断言属于下列四种类型之一要求的特征的基本断言要求的特征的扩展断言条件特征的基本断言条件特征的扩展断言断言编写本章说明应当怎样编写标准中的测试断言断言确定断言是为与实现有关的标准中每个定义性声明编写的设计相应的断言测试是为了确定该声明对于该实现是真还是假标准通常是以平叙的方式编写的因而通常不能直接从标准拷贝某个声明每个断言都应是一个独立的声明对遵从标准的实现断言的用词都应使作一个依从性实现的结果代码见第章在标准

16、中一个定义声明是含有或隐含应宜或可以的一个声明本章描述在一个标准中怎样解释使用应宜和可以的声明以使其相当于一个断言被某个标准取代的情况例外在标准中一个声明若适用于该实现它或包括有应或是隐含着助动词应的一个声明语句它就被解释为对该实现的一个要求这个声明本身或者它与其他定义性声明相结合就相当于一个断言一个声明若适用于该实现的一个条件特征使用了助动词宜或可以或者隐含有助动词宜或者可以如果该实现支持该选择则该声明解释为对该实现的一个要求这样一种声明本身或它与其他定义性声明相结合就相当于一个断言如果一个声明仅限于对某个实现的用法而不涉及实现内容本身则无断言可写如果一个声明使用助动词宜或可以是对程序员的一

17、种警告或是对实现的建议该声明也无断言可写断言结构断言部分一个断言有三个部分断言号断言类别和断言的实际文本断言号在一个特定单元的断言集内给每个断言分配了一个唯一的断言号断言应当与在标准中的相应声明的次序相同在每个单元中断言要从开始按顺序编号新的或者修改过的断言应从下一个可用的编号开始按顺序编号如果对断言表的修改导致某些空闲不用的断言号则在断言表尾部的每个断言的前面冠以短语已不使用的断言号以指示出这些空闲不用的断言号断言类别如同书写一个语句那样如果一个断言对应于基于条件特征的一个声明则该断言为类的或类的否则为类或类断言如果一个断言对应于可用某种合理的时间和工作量通过可移植的测试的一个声明则该断言为

18、基本断言类或类否则为扩展断言类或类之所以为扩展断言其理由已在第章中列出对大多数断言而言断言类别只有和类见第章中的矩阵有时候一个断言是基本断言还是扩展断言取决于对该被测实现的限定符是否为真在这些情况下断言类别写成或在第一种情况下若为真则所需的断言为类基本断言否则为类扩展断言在第二种情况下若为真则带条件特征的该断言为类基本断言否则为类扩展断言断言文本和例子每个断言的实际文本都遵循本节中描述的结构中的一种最简单的断言是一个简单的声明例如天空是蓝色的若断言需要环境处于某种特定状态则要包含有一个当从句其后跟则例如当没有云时则天空是蓝色的若断言针对某个条件特征则若从句含带有条件的特性其后面跟冒号例如若实现

19、提供与标准语言有关的系统支持天空是蓝色的在针对某个条件特征的断言需要环境处于特定状态的情况下要将上述两种结构结合起来例如若实现提供与标准语言有关的系统支持当没有云时则天空是蓝色的如果断言针对某个要求的特征而该实现的某个特定条件是否为真时该要求的特征具有不同的特性则用若否则结构并且该断言为类或类例如若支持与有关的特性天空是蓝色的否则天空是灰色的当断言的类别取决于实现的某个特征时则使用一个限定符下面是一个条件断言的例子其中用一个限定符来确定该断言是基本断言还是扩展断言例如若实现提供与标准语言有关的系统支持天空是蓝色的如果在同一章中定义的多种功能之间的特征或行为相类似则允许用对于结构来维护在各功能中

20、的断言号的依从性例如对于地球若该实现提供标准语言的系统支持当无云时则天空是蓝色的对于月球若该实现提供标准语言的系统支持当无云时则天空是黑色的当实现的某一方面取决于两种或更多的条件特征时则将该断言写成多个断言以包括这些条件特征的各种可以适用的组合例如若支持通用的终端接口和与有关的行为天空是蓝色的若不支持通用终端接口和与有关的行为天空是灰色的若支持通用终端接口而不支持与有关的特性天空是黑色的若某个断言基于一个大得难以测试的值或者按照标准是一个不确定的值则在该断言中使用一个用字符串打头的符号代表对该值的测试限制该断言描述对基于符号值的特征的期望特性使用这个符号以确定该断言的期望特性例如若已定义且天空

21、是蓝色的否则天空是灰色的当某个断言需要许多测试以求详尽地测试该断言时则提供一份清单或表列出最小测试需求例如天空有黑色白色水蓝色和灰蓝色四种颜色或者天空在一天内变化颜色如表所示表变化的天空时段颜色黎明黑色中午白色黄昏水蓝色晚间灰蓝色当标准中的一个声明规定一组独立的可选择的设置条件而其中有些条件不能成立时则要写成两个断言对于能够成立的条件写一个基本断言对于不能成立的条件写一个扩展断言例如当中午时或当地球被某个小行星碰撞时系统打印分成下面两个断言当中午时系统打印当地球被某个小行星碰撞时系统打印一般断言一般断言为由标准导出的行为或功能的声明这些声明适用于多个单元并对每个适用的单元扩展成一个特定的断言一

22、般断言写成这里的是从开始的一个整数每个标准中的值都是唯一的一般断言不分类别由一般断言导出的每个断言都包含有一个对导出该断言的一般断言的引用例如当按下某个特定键时系统停止对于键单元该断言变成下面的断言当按下键时系统停止见参考断言参考断言写作此处是一个从开始的整数且的值在每个单元的描述中是唯一的参考断言不分类参考断言包含指向实际断言的指针例如当头顶上无云笼罩时则天空是蓝色的见中的断言测试需求当某个断言可能具有歧义性或可能被错误地解释时则在该断言后面添加一个测试需求声明以讲清楚这个断言当想增加某个断言的精确度结果却只能增加它的歧义性和模糊因素时才需要对断言添加精确的描述例如当云笼罩着天空时天空是灰色

23、的测试需求对黑色白色水蓝色和灰蓝色的初始天空颜色进行测试不用的断言号不用的断言号表示该断言号不再有效因为该被测标准中的措词已经修改或者原来确定的断言不正确断言格式本条用正式的规格说明定义断言的内容这种正式的规格说明用来保证断言结构定义的清晰度和准确性这将有利于为未来的测试方法工作组在定义断言时保持一致性在规定断言格式的正式规格说明中使用下列规则变量名是用大写字母和数字组成的一个单词变量的定义是由一个变量名及其后面的符号和定义所组成一个定义由几组有序变量文字和变量文本组成加引号的的字符串为文字应在断言中作为特殊的内容精确地使用一个变量可以具有多个定义符号用来表示可选择性变量文本由大写和小写字母的

24、不带引号的短语规定所有的断言的编写格式应与在及中规定的语法和规则相一致断言格式语法断言格式规则对于类和类断言若后面必须总跟着否则类和类断言必须以若开头对于类和类断言一定不使用否则从一般断言导出的断言必须包括一个对一般断言的引用采用放在后面见的格式见在中的一个引用断言必须包括有一个指针采用将断言号见在中的断言号放在后面的格式见测试需求应放在后面并在前面空行见断言测试输出测试结果代码断言测试执行完后将从充分的输出中得到下列信息被测试的单元名被测试的断言号相应的断言是基本断言还是扩展断言测试结果代码有两种类型的测试结果代码最终结果代码和中间结果代码最终测试结果代码是基于断言测试执行发现该断言为真基于

25、断言测试执行发现该断言为假或者没有断言测试或者对所进行的扩展断言测试不充分不足以产生或测试结果代码由于条件特征未实现断言测试不能进行附加的最终测试结果代码只能在上述最终测试结果代码都不适用的情况下使用测试方法使用的任何附加的最终测试结果代码都应写进测试方法文档中中间测试结果代码是至少有下列条件之一为真该断言测试需要人工检查以确定其结果断言测试的建立没有以期望方式完成含有断言测试的测试程序被意外中断断言测试不能进行因为它所依赖的前面的断言测试失败含有断言测试的测试程序未启动测试程序的编译或执行产生了意外的差错或警告由于其他原因断言测试未能得到最终的测试结果代码所有产生的测试结果代码都应在做出依从

26、性的声明见第章之前解决求出一个最终测试结果代码表按照断言分类中的解释示出了允许每类断言使用的测试结果代码表测试结果代码基本断言扩展断言要求的特征条件特征测试方法不会对上述测试结果代码附加任何其他的意义每个单元都有一个实际使用的最大断言号对于小于最大号且无有效断言的断言号测试方法应输出代替有效测试的结果代码当测试的结果代码为或时测试方法应尽可能地提供充足的信息以确定该结果的原因如果在确定某个断言测试的结果时发生的意外事件可能使该结果无效则测试方法应尽可能地指出它并报告事件的发生如果断言测试在这种事件发生后不能完成则测试结果代码就是如果测试方法是则应力争继续执行测试程序但任何不能执行的断言测试应报

27、告为一个应当力争用最大限度地执行断言测试以使测试从意外事件中恢复过来并保证后继测试结果的有效性和正确性标准依从性声明依从性声明的内容针对某个特定的目标系统的测试方法的执行结果可以概括成一个关于该目标系统的依从性声明如果做一个依从性声明则在该依从性声明中应提供下述信息测量其依从性使用的标准的名称和版本所使用的测试方法的名称和版本号该测试方法符合的测试方法的规格说明被测计算机系统的名称型号和配置以及实施者用易识别的用语说明的这种实现的名称版本和发表级别被审核的的名称和版本如果标准要求有实施测试方法的日期已经测试过的语言联编此外还要有下述信息每个断言测试的最终结果代码对测试方法所做的任何修改的说明对

28、标准的一个依从性声明的基础是用一套符合的测试方法对目标系统所完成的测试在这个测试中对该标准的每个断言正确地赋给了一个测试结果代码如果这些测试结果代码如表所示则该目标系统符合该标准表依从性测试结果代码基本断言扩展断言要求的特征条件特征附录提示的附录参考文献本附录列出了有关的开放系统的标准有关的开放系统标准组网标准信息处理系统开放系统互连基本参考模型信息处理系统开放系统互连运输服务定义信息处理系统开放系统互连面向连接的运输协议规范信息处理系统数据通信网络服务定义信息处理系统开放系统互连面向连接的基本会话服务定义用专用电路连接到公用数据网上的分组式数据终端设备与数据电路终接设备之间的接口信息处理系统

29、局域网第部分逻辑链路控制信息处理系统局域网第部分带碰撞检测的载波侦听多址访问的访问方法和物理层规范信息处理系统局域网第部分令牌环传送总线访问方法和物理层规范信息技术局域网和城域网第部分令牌环访问方法和物理层规范信息处理系统开放系统互连面向连接的表示服务定义信息处理系统开放系统互连面向连接的表示协议规范信息处理系统开放系统互连文卷传送访问和管理信息处理系统开放系统互连联系控制服务元素的服务定义信息处理系统开放系统互连联系控制服务元素的服务协议规范信息处理系统开放系统互连面向连接的基本会话协议定义信息处理系统开放系统互连作业传送和操纵概念及服务信息处理系统开放系统互连作业传送和操纵基本类协议的规范

30、信息处理系统数据通信提供无连接方式网络服务的协议建议信息处理系统数据通信开放系统互连用的数据链路服务定义语言标准程序设计语言程序设计语言程序设计语言程序设计语言程序设计语言程序设计语言图形标准信息处理系统计算机图形图形核心系统的功能描述信息处理系统计算机图形存储和传送图片描述信息的元文卷信息处理系统计算机图形程序员层次交互图形系统数据库标准信息处理系统数据库语言信息处理系统数据库语言其他标准信息技术通用多八位编码字符集第部分体系结构和基本多文种平面信息处理八位单字节编码图形字符集第部分拉丁字母一世界各语种代码世界各国和地区名称代码信息处理系统用户软件包的用户文档和覆盖信息信息技术可移植的操作系

31、统接口第部分命令与实用程序电气和电子标准术语词典附录提示的附录基本理论和注释概述本标准不涉及如何建立一个测试套的问题测试的目标系统可以是嵌入式的小系统也可以是中大型系统而且还认可某些公司有自己的符合这个标准的特殊条件即要求一种不能移植的测试方法在讨论中将自动测试与交互式的测试相对照得出的结论是测试方法可以包括交互式的测试尽管目标应当是用自动测试的方法进行详细测试得出这个结论时承认进行交互式测试要求增加硬件例如它需要用两个异步的端口而不是一个这样才可以进行闭环测试讨论了的意义以及是否包括对所要求的文档进行审计的问题本标准制定者的结论是文档审计与分开术语和一般要求本附录中定义的术语是本标准使用的特

32、殊术语它们也适用于其他的标准断言国际标准的制定者原来曾定义断言是在可适用的标准中的语句的重要功能使用短语软件或规程而不用软件一词是为了需要一个人工规程来决定结果国际标准的制定者后来决定去掉断言与定义的一个测试结果相对应的概念其主要原因是原来的定义给的实施增加了一个不必要的限制而且这个定义与本标准的引用标准中的定义有不一致之处断言测试断言测试的定义是用于确定某个实现对一个断言的依从性的软件或规程例如它包括可执行的软件测试对输出的人工验证检查或根据一个标准的要求对所要求的实现定义的文档进行的审计基本断言这是要求进行测试的断言因为标准要求基本断言具有应声明的特征或是在说明性语句中含有隐含的应声明另一

33、个级别的基本断言是条件特征已实现因此必须进行测试见条件特征在中术语有条件的比中的术语可选择的具有更广的意义后者可能在其他的标准中已经定义但那些都是术语有条件的子集在一个标准中可选择一个术语隐含有该可适用的标准的制定者特指为一个选项而不是一项要求的一个特征或行为出现这个问题的情况是本标准中的某个声明声称只有在该符合的系统实际实现了某个特性时才需要这个特性也就是说在一个中提出的一个条件是倘若相关的特性已经实现是否还要进行测试这种例子是异步通信文件类型和在中的特许方式开发系统开发系统不必符合标准但它应有生成指定目标系统的配置所必需的一切软件在这种情况下生成适用的的编译环境将被看作是该目标系统配置的一

34、部分扩展断言这种断言不是基本断言所以不要求进行测试国际标准的制定者创建这类断言是因为在该标准中将指出一些不可测试的特性见第章本标准定义是软件测试一个断言要求执行该断言测试软件但该断言测试软件所产生的结果可能得不到该断言测试的最终结果代码为了使该断言测试得出最终或的测试结果代码可能需要进行人工的执行规程换句话说对于某些断言测试为了得到最终结果既需要运行一个软件也需要一个人工执行的规程例如一个单元如命令可能使一个断言的定义要求在打印机上打印某些特殊的字符这个断言测试软件能将这些字符输送给打印机但不能验证打印机是否打印出了正确的字符在这个例子中该断言测试软件的测试结果代码就将是一个中间测试结果代码如

35、这个测试结果的信息将指出某人必须遵循某个规程以验证打印机打印出了正确的字符在这个例子中为了使该断言测试得到或的测试结果代码软件和人工的规程都需要总之产生依从性声明所需要的最终结果可能需要软件测试和人工执行的规程要求的特征如适用的标准所指出的这是依从性的实现所需要的一个特征一个要求的特征是由一个特定的应做的声明或在该标准中隐含的应做的声明决定的要求的特征通常产生一个基本断言但如果根据在第章中讨论的理由确定该特征是不可测试的这个要求的特征所产生的就是一个扩展断言要求的特征的定义处理若否则断言结构另一种定义方法是要求将若否则断言分成两个类断言而且其中的一个断言将产生一个测试结果代码为了避免这种结果并

36、保留条件特征不存在时就存在符合实现的应做的特征的这种概念现已修改了要求的特征的定义闭环模式一个目标系统配置的终端测试的闭环模式是将两个目标系统的异步端口进行电路连接连接方式是使用调制解调器的控制协议在两个端口间进行数据通信服从性术语服从性是在中使用的目的是提供一种有效的方法来表示一个实现对一个标准的特定的可接受的依从性级别如用一个依从性测试方法所测得的那样因此如一种测试方法所测得的那样服从于某个标准系指通过了这种测试服从性和依从性在标准字典上的意义非常接近在测试对一个标准的依从性的上下文中国际标准的制定者选择区分这两个词的意义以便将完全依从的理论思想与对依从性的实际测量区别开来以一特定的标准中

37、的依从性定义为基础一个软件供应者可能声称某个实现与该标准的依从性同样以标准中的依从性定义为基础一个测试方法的提供者可能声称与标准的依从性在标准中规定测试方法的目的是测试一个实现对一个标准的依从性级别但实际限制使得测试方法不能保证实现完全的依从性事实证明一个实现可能地服从某个标准尽管它不能地符合该标准总之一个实现可能在某种程度上符合一个标准但没有办法保证完全的依从性不使用另外的术语也很难描述可接受的依从性程度依从性在对本标准投票之后国际标准的制定者决定应当取消对术语服从性和依从性的区分因为这种区分引起了混乱国际标准的制定者决定像英语字典那样把它们视为同义词用术语依从性来确定一个计算环境的应用软件

38、的可移植性对本标准依从性的测试方法国际标准的制定者决定必需要求每一个的开发者将他们的测试套的特性写成文档国际标准的制定者不能确切地规定所要求的文档的特性因为在市场上用户为了测试系统的依从性而需要理解每个国际标准的制定者要求应当包括关于安装配置和执行该的所有信息另一个要求是的用户应能收集和解释该的结果国际标准的制定者还规定这种文档应当像在中指出的那样满足对一个依从性应用软件的要求本标准一方面指明文档中应当提供诸如如何执行该的信息同时也隐含这样的意思即任何都可以只在整个依从性实现的一个子集上运行实现很可能还依赖被测的标准之外的设备而文档只需要对所设计的此环境描述安装和执行方法关于要考虑的各项的举例

39、国际标准制定者在本文档中提供了可以与产品一起提供的样例测试方法的文档可以含有被测标准的版本的概述包括扩展断言和被该测试的可选择的特征对一切偏离本标准定义的情况的详细说明任何已知的限制的详细说明任何发行版本变化的详细说明任何特殊配置参数的详细说明开发系统的硬件需求例如对内存磁盘空间终端和打印机的需求的详细说明开发系统软件需求的详细说明执行该作必需的硬件和软件需求的详细说明对用户接口语法的定义如果需要将传送给一个目标系统对这个传送规程的描述输出格式的详细说明样板输出实例对获得输出规程的描述获得输出规程的实例可能对的执行产生重大影响的一切已知的断言测试列表对一切故障清除规程的描述测试级别和复杂性级别

40、前言本附录适用的基本原理与上文相同测试级别国际标准的制定者决定当开发一个时有必要定义测试的级别这一点已写进实际的标准中以便指导制定标准的的机构测试级别分为穷举测试详细测试和鉴别测试本标准对每种测试方法进行了讨论国际标准制定者的结论是每个可以不同每个断言的测试级别也可以不同复杂性级别当一个被测试单元的上下文完全不同时软件就有问题实用而又经济的办法是什么呢从设计的角度看在一个中一个单元的成分这个单元与其他单元的相互关系是出现这种复杂性的原因每个单元的复杂性起码有两个方面一个方面是该单元本身功能的复杂性另一个方面是测试该单元的功能的难度有多大一个单元也可以有许多功能为了测试该单元的各个方面必须定义几

41、百个断言但这个单元的测试相对简单而另一个单元可能功能很简单但测试却并不简单国际标准的制定者选择只处理一个方面这就是处理单元功能的复杂性结论本附录专门处理依从性测试的概念以及此断言和的编写者必须作出的单元评价断言分类许多人建议只要有可能就要对扩展断言进行测试鼓励为扩展断言开发断言测试因为对于在中的断言需要有尽可能完整的有效测试套测试扩展断言有下述个理由对于这种断言尚没有可移植的测试方法第一个理由是不可能为所有的依从性系统编写出一种可移植的测试方法因为所支持的目标系统不同实际的软件也不同当在宿主机的操作系统中为一个依从性系统编写测试方法时就会出现这种情况每个目标系统的测试方法也各不相同当存在一种起

42、码适用于一个实现的断言测试方法时理由代替理由但这种方法不能移植到所有的实现上在要测试依从性的标准中的相应的声明不够具体以致不能编写出一种可移植的测试方法第二个理由是从软件测试的角度看该标准的特征规格说明尚不清楚例如在中声明数据项应当含有有意义的值要验证一个结构是否含有有意义的值很难确定测试软件也许为该标准编写的附录可以在可适用的标准中提到这些声明对此断言尚没有已知的可靠的测试方法第三个理由是国际标准制定者也不能使软件测试或规程测试确定断言是否符合标准中的声明例如当认定一个标准中的某个特定函数已用去的时钟时间时的情况测试断言要求一些建立规程这些规程需要的工作量之大使的用户难以承受在多数系统上测试

43、断言需要的时间和系统资源太多建立断言测试需要过量的测试开发时间国际标准的部分制定者想了解测试一个依从性系统的断言所需的系统工程和商业成本对于他们第四第五和第六个理由是合理的要求对在关于测试断言的中合理的一词的意义国际标准的制定者的意见一致工作组也意识到如果测试扩展断言是相关工业中的关键问题市场将提出测试扩展断言的需求断言测试可能对一种测试方法的完善产生负面影响在标准中可用断言分类断言矩阵和扩展断言的理由根据来对一个断言归类本标准不排斥某个测试套中含有相应的标准断言表所列断言之外的测试在含有这种断言的测试套中可以使用第章中定义的测试结果代码但是在决定一个实现对该标准的依从性时不能考虑其他的断言编

44、写断言断言确定含有可以的某些声明没有足够的清晰度对这种情况就无法编写断言例如调用函数可使下属文件的字段产生标记用于将来的修改这个声明没有说明这种特性适用于所有的文件类型还是只适用于某个特殊的实现当编写一个测试套时最难处理的是可以的定义每个可以都能指函数控制流中的一个分支它的定义是由提供者自己决定从一个测试套的角度看建立执行可以特征的一个可靠的测试套很困难这种测试可能试图使用这个特征并报告结果如果从该标准的角度看这个特征确定起作用它也不能报告出错不幸的是一个可以特性的一种可允许的副作用会带来巨大的灾难断言结构在制定国际标准的后期认识到当一个标准声明正在讨论的概念是已定义的实现并且本标准中对该实现

45、是否有用无任何要求时必须提供这些情况的断言结构并要求实现这个概念以便测试这个断言这种情况的例子就是只读文件系统标准并不说明如何建立一个只读文件系统没有要求提供它的结构但允许提供如果该实现不支持这种结构怎样在只读文件系统上建立一个文件呢这是一个实现的条件它与本标准定义的条件是对立的因为这个问题引入了条件的新定义国际标准的制定者现在认识到条件分两种由标准定义的条件不是由标准而是由实现定义的条件定义断言的结构是为了处理所有已知的条件我们相信为任何标准编写断言都可以使用这些结构标准以限定条件和前提条件换句话说以条件为基础定义功能如果该条件不是要求的特征本标准则使用条件特征的注释如果该条件是一个声明该声

46、明则要求一个实现必须在两个以上本标准称为条件的限定条件中进行选择一个实现必须从这些条件之中选择一个这些都是由标准定义的条件标准允许对功能不作明确地定义它们声称概念就像已定义的实现为了测试某些断言这些断言可以要求该实现支持这种条件断言部分断言号断言的号码就是标识符不隐含某种测试顺序或在被测标准中的位置当添加上一个断言时则将该单元的下一个不使用的顺序号分配给新的断言断言的位置要尽可能靠近含有这个断言的标准中出现有关词汇的地方当删除一个断言时它的断言号被放在该单元的断言表尾部的表上如果一个断言有了实质性的变化就应当删除原来的断言并添加一个新的断言断言分类对本条没有可增加的内容断言文本和实例本条示出了

47、编写断言的实例它们的范围简单但却实际上反应了断言在标准中的表达方法对于结构可用在一般断言中例如对于和之外的所有的单元当按下一个专用键之后系统停止对于键单元这个断言变成了下面的样子当按下键之后系统停止见断言测试输出为了有助于测试结果的分析过程决定不管一个断言有没有进行测试都必须示出它的测试输出因为扩展断言没有可以进行的测试所以不进行测试这种没有测试的断言的输出是一个测试结果代码只要没有进行断言测试就可使用这个测试结果代码如果进行了断言测试但由于环境出现故障而没有达到预期的目的则使用测试结果代码在国际标准的早期草案中曾定义是成功的测试后来作了改变因为在软件测试中术语成功的常常指发现了特征中的差错这

48、与定义中的描述是对立的几个草案都在本附录中对测试结果代码定义如下根据对扩展断言的测试发现扩展断言在该目标系统上为假另外的定义只适用于基本断言但国际标准的制定者决定不管断言是基本断言还是扩展断言当发现该断言为假时应当适用有些人希望它的意义根据测试的输出来决定不管已失败的测试是基本断言测试还是扩展断言测试现在已经不对测试结果代码做这种区分了所以决定要求在每个断言测试的测试输出中指明断言是基本断言还是扩展断言下面是测试输出符合本标准的实例子与父不同子活动匹配对于依赖支持设备的一个扩展断言将一个测试结果代码转变成测试结果代码的能力有多大尚存在很多的争议国际标准的制定者赞成若不能提供这种支持设备被测系统

49、就不能将测试执行完毕很可能根本就不能执行所以就会导致最终的测试结果代码是在这场争论中也讨论了断言对实现限定的特征的依赖性问题如果一个基本断言的分类是错误的可以根据标准的过程重新分类建议用一个实现以防止一个测试调用这些特征的方式来提供这类特征例如用获得一个控制的终端的方法通过审查中由实现定义的这一定义我们认为即依从性文档需要详细描述在使用这种特征时所需要的正确的程序结构和正确的数据这种看法支持这一观点即一个用可访问所有的依从性实现的方式进行测试的作者能够得到所需要的一切实现定义的特征本段叙述未预料到的事件本标准中包括这一段是因为国际标准的制定者感到一个标准的应当有能力从未预料到的事件例如信号中恢复过来当然单个软件从这种事件中恢复过来的程度是有局限的但期望该软件能够尽可能地识别和报告这种事件依从性测试的参考模式可以用两个倒置的树来表示见图其中一棵树是另一棵树是规程这棵树上的树枝是被测试单元被测试断言测试结果代码最终的或中间的在多数情况下最低处的分支将引出断言测试的结论而最终是测试结果代码在准备一个依从性声明时测试结果代码可作为根据但是有时最低处的分支不能导出最终的声明在

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

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

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