软件可靠性测试与评估实验指导书_第1页
软件可靠性测试与评估实验指导书_第2页
软件可靠性测试与评估实验指导书_第3页
软件可靠性测试与评估实验指导书_第4页
软件可靠性测试与评估实验指导书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件可靠性测试与评估实验指导书北航可靠性与系统工程学院目 录1绪论11.1软件可靠性测试与评估概论11.2软件可靠性测试分类32实验设置的背景、意义和内容安排42.1实验设置的背景、意义42.2本实验的内容安排52.3实验课要求52.4实验报告要求62.5实验软件简介62.5.1软件可靠性测试数据生成工具TCS62.5.2软件可靠性评估工具SRET62.5.3ATM机软件63软件可靠性测试剖面构造实验部分73.1概述及实验相关介绍73.1.1Musa操作剖面73.1.2Musa操作剖面的构造方法83.2实验软件133.2.1TCS133.2.2ATM机软件143.3实验内容144软件可靠性验证

2、测试实验部分154.1概述及实验相关介绍154.1.1软件可靠性验证测试流程154.1.2软件可靠性验证统计测试方案174.1.3软件可靠性验证测试的注意事项224.2实验软件234.3实验内容235软件可靠性增长测试实验部分(选做)235.1概述及实验相关介绍235.1.1软件可靠性增长测试流程235.1.2软件可靠性增长测试的注意事项265.2实验软件265.3实验内容276软件可靠性评估实验276.1概述及实验相关介绍276.1.1软件可靠性评估流程276.1.2软件可靠性评估注意事项286.2实验软件286.3实验内容281 绪论1.1 软件可靠性测试与评估概论软件可靠性测试是指为了保

3、证和验证软件的可靠性而对软件进行的测试。它是随机测试的一种,其主要特征是按照用户实际使用软件的方式来测试软件。软件可靠性测试是评估软件可靠性水平及验证软件产品是否达到可靠性要求的一种有效途径。与其它类型的软件测试相比,软件可靠性测试可以使用与其它测试方法相同的测试环境和测试结果分析方法,但是必须使用专有的软件测试数据生成方法和软件可靠性评估技术,在测试数据中体现出软件需求以及用户对软件的使用情况,在评估中体现出软件可靠性测试中的定量化评估度量。通过软件可靠性测试可以达到以下目的:a) 实现软件可靠性的有效增长:通过软件可靠性测试暴露出软件中隐藏的缺陷,并进行排错和纠正后,软件可靠性会得到增长。

4、软件可靠性测试暴露出来的缺陷是那些软件中发生概率高的缺陷,而且是对软件可靠性影响最大的缺陷,这些缺陷得到纠正后,软件可靠性在软件可靠性测试的早期就会得到较大的增长。b) 用于验证软件可靠性是否满足一定的要求:可以根据用户的可靠性要求确定可靠性验证方案,进行可靠性验证测试,从而验证软件可靠性的定量要求是否得到满足。c) 用于预计软件的可靠性:通过对软件可靠性增长测试中观测到的失效数据进行分析,可以评估当前软件可靠性的水平,预测未来可能达到的水平,从而为软件开发管理提供决策依据。软件可靠性测试与一般软件测试在测试目的、测试效率、测试数据生成方法、测试数据收集、测试数据分析以及测试停止准则上都存在差

5、异,软件可靠性测试与一般软件测试的比较如表1所示。表1软件可靠性增长测试与一般测试比较比较项目软件可靠性增长测试一般软件测试测试目的评估软件可靠性水平、有效实现软件可靠性增长发现软件的故障测试效率较快达到可靠性要求达到可靠性要求较慢测试数据生成方法基于使用的测试,根据软件的使用状况构造操作剖面然后生成测试用例基于需求/结构的测试,根据软件的需求或结构生成测试用例数据收集需要收集测试输出结果和失效时间等数据只需收集测试输出结果数据分析通过失效数据进行可靠性分析根据用例执行情况进行需求/结构覆盖分析测试停止准则满足可靠性要求功能/性能测试:需求覆盖100%结构测试:语句覆盖100%、分支覆盖100

6、%或满足其它结构覆盖要求软件可靠性测试的特点如图1所示。图 1软件可靠性测试的特点国家标准GB11457中,软件可靠性评估(software reliability assessment)或软件可靠性评价(software reliability evaluation)是指“确定现有系统或系统部件可靠性所达到的水平的过程”。国际标准IEEE Std.1633中,软件可靠性评估(software reliability evaluation)被定义为“统计学技术在系统测试和运行期间收集的可观测失效数据上的应用,用于评价软件的可靠性”。软件的失效数据可以在下述两种情况下获得,一是在测试阶段后期,通

7、过软件可靠性测试(即按照软件的实际使用方式测试软件的一种方法),收集测试过程中的失效数据,对软件的可靠性水平进行估计,并能够对未来可能达到的可靠性水平进行预计;二是在软件投入使用后,通过收集实际使用过程中软件的失效数据,对软件可靠性进行评估,并对未来软件可能达到的可靠性水平进行预计。此时的软件可靠性评估结果被认为是真正意义上“软件完成规定功能的能力”(即软件可靠性的定义)的反映,即:此时的可靠性评估结果,不仅可以给出实际的可靠性水平,也可以为下一代软件或同类型软件的可靠性定量要求的确定提供参考。软件可靠性评估是软件可靠性工程中的重要活动内容之一,可用于定量地评价软件工程技术,能够给出“软件究竟

8、有多可靠”的定量结果。1.2 软件可靠性测试分类软件可靠性测试分为软件可靠性增长测试、软件可靠性验证测试,如果在没有可靠性指标要求而需要评估当前的可靠性水平,还有软件可靠性摸底测试。l 软件可靠性增长测试软件可靠性增长测试一般在软件系统测试阶段的末期进行。通常在完成编码、单元测试、集成测试以及常规系统测试后,如果还有可靠性要求,再进行软件可靠性增长测试。软件可靠性增长测试是一项费时、费力的工作,一般仅适用于有可靠性定量要求、且可能会影响系统安全和任务完成的关键软件。通常采取的是测试-可靠性分析-修改-再测试-再分析-再修改的循环过程。软件可靠性增长测试具有以下特点,如表2所示表 2软件可靠性增

9、长测试的特点软件可靠性增长测试的特点测试目的通过测试-可靠性分析-修改-再测试-再分析-再修改的循环过程,使软件达到可靠性要求测试人员通常由软件研制方而非使用方进行测试测试阶段通常在软件系统测试阶段测试场所一般在实验室中进行测试对象软件产品的中间形式测试方法基于操作剖面的随机测试方法测试特征测试过程中软件出现失效后修改软件、排除引起失效的缺陷,从而实现软件可靠性的增长l 软件可靠性验证测试软件可靠性验证测试是为了验证在给定的置信度下,软件当前的可靠性水平是否满足用户的要求而进行的测试。即用户在接收软件时,确定它是否满足软件研制任务书中规定的可靠性指标要求。软件可靠性验证测试具有如表3所示的特点

10、。表 3软件可靠性验证测试的特点软件可靠性验证测试的特点测试目的定量估计软件产品的可靠性,并作出接收/拒收回答测试人员通常由使用方参加进行测试测试阶段软件确认(验收)阶段测试场所既可在实验室测试又可现场测试测试对象软件产品的最终形式,而不是中间形式测试方法基于软件操作剖面的随机测试方法测试特征不进行软件缺陷剔除2 实验设置的背景、意义和内容安排2.1 实验设置的背景、意义在高新技术武器装备中,计算机软件在装备研制中的地位日趋重要。以美国歼击机上的航空电子系统为例,美国的歼击机每更新一代,其由软件实现的功能翻一番。然而,软件发展至今不过短短几十年的时间,无论从开发过程还是质量控制,与硬件相比都显

11、得较为薄弱。对软件,人们通常关心两个方面:一个是软件的功能性能需求,我们需要功能强大、性能优越的软件在生产、生活中扮演更加重要的角色;另一个是对软件质量的需求,需要高可靠性的软件在生产、生活中持续的发挥作用。对于第一个需求,不断涌现的编程工具和语言,能够使编程人员开发出功能和规模非常强大的软件。对于第二个需求,定量化的可靠性管理将是一个重要手段,如在美国的第五代战机研制中已经明确的提出了软件可靠性指标,并进行定量化的验证。常规的软件测试(如单元测试、集成测试、系统测试等)旨在发现软件缺陷,却不能进行软件可靠性的定量评估。因为软件可靠性与软件的使用情况密切相关,在测试中需要体现出用户对软件的使用

12、情况,成为了软件可靠性测试中一个非常重要的环节。软件可靠性测试有效地发现程序中影响软件可靠性的缺陷,从而实现可靠性增长;通过对软件可靠性测试中观测到的失效情况进行分析,可以验证软件可靠性的定量要求是否得到满足;通过对软件可靠性测试中观测到的失效数据进行分析,可以评估当前软件可靠性的水平,预测未来可能达到的水平,从而为软件的开发管理提供决策依据。软件可靠性测试与评估是软件可靠性工程的核心内容,是软件可靠性工程技术区别与其它软件工程技术的特色所在。通过软件可靠性测试与评估实验教学,能够使学生建立定量的软件可靠性实验技术的概念,掌握软件可靠性工程中最具代表性的软件可靠性测试剖面技术,按照严格的软件可

13、靠性增长测试和验证测试的要求,实现完整的测试评估实验过程,以软件可靠性测试计划、测试说明、测试报告的方式完成实验报告。本实验采用的软件可靠性测试试验系统,软件可靠性测试数据自动生成工具,软件可靠性评估工具为北航所独有。本实验的开设,对国内高校研究生软件可靠性实验来说具有开创性。不仅可以掌握软件可靠性测试与评估的基本原理,而且通过实验使学生从软件被测对象分析、软件可靠性测试剖面构造、软件可靠性测试执行、软件可靠性测试评估等环节加深对软件可靠性测试及评估理论知识的理解,并熟悉相关软件的使用,对于他们将来走上工作岗位无论是理论研究还是工程实践都具有重要意义。2.2 本实验的内容安排本实验包括四部分内

14、容:1)软件可靠性测试剖面构造实验2)软件可靠性评估实验3)软件可靠性验证测试实验4)软件可靠性增长测试实验(选做)其中软件可靠性评估实验会贯穿在验证测试实验和增长测试实验之中进行。2.3 实验课要求1) 以两人为小组完成实验内容,每组使用一台固定的实验用计算机,以小组成绩作为学生个人成绩。2) 每个小组需要在实验用计算机的D盘,以两人的姓名命名一个文件夹,并把实验中产生的数据、文件、文档存放在该文件夹中。3) 实验用计算机禁止插拔自带U盘,非教师允许,不得向实验计算机拷入和拷出文件。4) 各小组可以在实验过程中自带笔记本电脑编写测试文档,测试文档可以在实验室之外完成。5) 实验中使用的软件可

15、靠性测试剖面报告、软件可靠性验证测试计划、软件可靠性验证测试说明、软件可靠性验证测试报告、软件可靠性增长测试计划、软件可靠性增长测试说明、软件可靠性增长测试报告及测试记录表格模版可以在实验课公共邮箱中下载:,密码为shiyan2014。实验报告需要在实验结束后的2周内提交。6) 实验前请认真预习实验指导书,每次到实验室需要签到。7) 实验出勤情况、软件可靠性测试剖面的完成质量、软件可靠性测试数据的收集质量、测试文档质量将作为成绩评价的主要标准。2.4 实验报告要求本实验按照软件可靠性测试过程开展。实验报告为可靠性测试的阶段性文档,包括测试计划、测试说

16、明、测试报告、测试记录等。实验报告以电子文档的方式编写和提交,严禁抄袭。如果发现雷同的实验报告,将取消实验课成绩。2.5 实验软件简介2.5.1 软件可靠性测试数据生成工具TCS软件可靠性测试数据生成工具TCS是集软件可靠性测试剖面建模与测试用例生成为一体的软件工具,支持使用Musa的建模。关于TCS的说明详见TCS用户手册。2.5.2 软件可靠性评估工具SRETSRET支持基于软件可靠性失效数据分析可靠性趋势,分析软件可靠性模型的质量,并进行可靠性评估。关于SRET的详细说明详见SRET用户手册。2.5.3 ATM机软件ATM机软件主要用于用户进行取款,存款,转账,查询余额,退卡等操作。客户

17、通过插入银行卡,输入正确的密码,便可根据显示器页面上的提示进行以上操作。操作界面如图2。关于ATM机软件的详细说明详见ATM机的软件需求规格说明。图 2 ATM软件界面3 软件可靠性测试剖面构造实验部分3.1 概述及实验相关介绍软件可靠性测试的主要思想就是按照用户对软件实际使用的统计规律进行随机测试,目前通常采用操作剖面的形式对软件的使用情况进行建模,然后在建模的基础上生成测试数据进行测试。常见的操作剖面通常有Musa的操作剖面、Markov、使用剖面等方法。本实验将采用Musa操作剖面构造方法进行剖面构造。3.1.1 Musa操作剖面对于软件可靠性测试而言,其基本思路都是按照用户的实际使用软

18、件的方式来进行测试,操作剖面是目前常用的一种对用户实际使用软件情况进行建模的工具。其主要目的之一就是生成软件可靠性测试数据,用于支持测试的执行。对于操作剖面,Musa的定义是指操作的集合及其发生概率。该定义中,操作剖面不严格强调输入之间的相互约束和时序关系,重点关心操作的分布。这种定义的特点是简单易行,由于相对忽略了输入之间的约束和时序,在工程中较容易推行。在Musa的操作剖面中,操作是一个主要的系统逻辑任务,持续时间短,结束时将控制权交还给系统,并且它的处理与其它操作显著不同。按照Musa的定义,操作应该是一个逻辑概念,它与软件的功能需求和特征相关。根据Musa的操作剖面,对操作可以做如下的

19、解释:“持续时间短”是指在通常负载条件下每个小时可以有多个操作发生;“将控制权交还给系统”说明当一个操作完成后,系统应该结束对该操作的处理,进而转入等待下一个操作,或者立即执行下一个操作;“处理与其它操作显著不同”是从系统执行操作的角度来说的,不同的操作,系统应该有着显著不同的处理方式。剖面是一组独立的元素及其发生概率。例如,如果某一时刻操作A的发生概率是60%,B的发生概率是30%,C发生的概率是10%,则此时的剖面可以表示为A,0.6;B,0.3;C,0.1。3.1.2 Musa操作剖面的构造方法构造操作剖面的主要目的是定量刻画用户对软件的使用情况,即用户使用软件的统计规律。通常操作剖面可

20、以采用两种不同的构造方法。1) Musa操作剖面构造方法1Musa第一种构造操作剖面方法(简称Musa-1)的流程通常包括以下5个步骤,见Error! Reference source not found.3,其中(1)(4)步为中间步骤剖面,是为准确得到操作剖面而逐步细化的过程。图3 Musa-1流程(1) 确定客户剖面软件的客户是购买并使用软件系统的个人、团体或者机构。客户剖面包括一组独立的客户类型。客户类型是客户群体中以相近的方式使用系统的一个或多个客户,这些客户在使用软件的方式上与其它客户存在显著的区别。通过市场调查的方式可以收集软件的客户信息,对它们进行归纳整理就能得到不同的客户类型

21、。客户剖面中需要为每一种客户类型确定发生概率。概率信息可以从以往类似的软件系统的客户类型中进行收集,并根据新系统的使用要求进行修正,也可以通过收集的客户数量,将组成某一客户类型的客户数量比上所有客户的总数得到。(2) 定义用户剖面用户是使用系统的人、组织、机构或其它系统,而用户组是以同一种方法使用软件的用户的集合。用户剖面是用户组及其发生概率的集合,通常在客户剖面的基础上建立用户剖面。可以通过市场或用户调查的方式收集软件的用户信息,然后根据使用软件方式的不同将用户划分为不同的用户组;用户组的发生概率可以通过组成用户组的用户数量比上同一客户类型中所有用户数量的方式得到。如果在不同的客户类型中出现

22、了相同的用户组,则需要把它们进行合并:假设用户组U在某一客户类型Ci下的概率为P(Ci,U),Ci的发生概率为P(Ci),则合并后的用户组发生概率: (1)其中n为包含用户组U的客户类型总数。(3) 定义系统模式剖面系统模式是为了便于分析执行行为,分组而成的一个功能或操作集合。系统模式剖面是系统模式及其发生概率的集合。通常情况下,系统模式种类越多,专门化信息的价值越高,操作也越便利,但是与之而来的是确定和测试其相关操作剖面的费用也增多了。系统模式可以来源于软件的需求或使用情况分析。系统模式的发生概率可以使用各种模式发生频率占所有模式发生频率的比例确定,获得系统模式发生频率的最佳途径是统计软件在

23、客户现场的使用情况;对于新软件或新的应用领域,由于软件还未发布,此时就需要统计类似软件或应用于其它领域的软件早期版本的使用情况,然后根据新软件或新领域的实际情况进行调整;也可以邀请部分客户对新软件进行试用,统计试用情况;在没有统计数据的情况下可以通过调查目标客户、询问专家意见等方式进行估计。定义系统模式可以参考以下因素:a) 重要的环境条件:如过载与正常的通讯量、初始化与连续操作、系统场所、时间等;b) 操作的构造性结构:如联机模式和单机模式;c) 紧迫性:如某种紧急情况下的应急处理模式;d) 客户或用户:如要求特殊功能的用户组,飞行员模式和地勤人员维护模式;e) 用户经验程度:如初学者、普通

24、用户或专家模式。(4) 确定功能剖面功能剖面是在系统模式下分解系统所需的功能,并确定每个功能的发生概率。功能剖面不需要考虑系统的体系结构或设计因素,通常在需求阶段建立,并且与需求密切相关。构造过程中可以先从软件的研制任务书或软件的需求文档中获得初始的软件功能列表,再结合运行环境的各种情况得到最终的功能列表,最后为每个最终功能分配发生概率。发生概率可以通过功能使用频率占同一系统模式下所有功能使用频率的比例确定,功能的使用频率同样可以通过统计现场使用信息、参考类似软件或早期版本、邀请客户试用、调查目标客户及询问专家意见等方式确定。(5) 确定操作剖面操作剖面是操作及其发生概率的集合,确定操作剖面的

25、主要步骤是列出操作并确定每个操作的发生概率。功能与操作之间存在一定的联系,一个功能可以映射成一个或多个操作,一组功能也可以重新合并成一组不同的操作,因此能够根据功能剖面获取操作列表。由于功能之间的差异主要体现在完全不同的任务实现上,而操作之间的差异主要体现在完全不同的处理过程上,因此需要根据系统任务将功能映射为操作。操作发生概率的确定方式与功能发生概率的确定方式类似,通过操作发生频率占所有操作发生频率的比例得到,操作的发生频率也是通过统计现场信息、参考类似软件或早期版本、统计客户使用信息、调查目标客户及询问专家意见等方式收集。根据软件的具体特点,可以对上述步骤进行裁减:a) 在软件的客户比较单

26、一的情况下,不需要建立客户剖面;b) 在软件的用户比较单一的情况下,不需要建立用户剖面;c) 在软件的系统模式比较单一的情况下,可以省去系统模式剖面的构造;d) 在软件的操作比较明显的情况下,可以省去功能剖面的构造。2) Musa操作剖面构造方法2Musa另一种构造操作剖面(简称Musa-2)的方法流程通常包括以下6个步骤,见图4。图 4 Musa-2流程(1) 确定操作模式操作模式的概念与Musa第一种方法中的系统模式概念相同,是系统使用的独特模式,是需要单独测试的环境条件的集合。(2) 确定操作的发起者操作的发起者包括系统的用户、外界系统和系统自身的控制程序。为了确定操作的发起者,首先应该

27、基于系统相关的商业用例和系统使用信息来确定系统的用户类型,用户类型是倾向于以同样的方式使用系统的用户的集合。这里的用户指的是任何能够发起操作的人、系统或组织。(3) 选择操作剖面表示法操作剖面可以用表格表示法或图形表示法进行表示。表格表示法的示例见表3,图形表示法的示例见图5。如果大部分操作可以用很少的属性表示,就使用表格表示法,表格表示法中通常以其功能组合来命名操作;如果大部分操作由许多属性来描述,逐一地考虑属性会比较容易,此时就应该选择图形表示法。图形表示法将每个操作表示为图中的一条路径,图5中的节点表示操作的属性,分支表示不同的属性值。表 3表格法表示的操作剖面操作概率GPS有效、目标方

28、向水平、开启轴线调整0.4725GPS有效、目标方向水平、关闭轴线调整0.2025GPS有效、目标方向垂直、开启轴线调整0.0525GPS有效、目标方向垂直、关闭轴线调整0.0225GPS无效、目标方向水平、开启轴线调整0.14875GPS无效、目标方向水平、关闭轴线调整0.06375GPS无效、目标方向垂直、开启轴线调整0.02625GPS无效、目标方向垂直、关闭轴线调整0.01125图 5图形法表示的操作剖面(4) 为每个操作发起者创建操作列表基于操作的发起人,能够较为方便地创建操作列表。创建操作列表时,应该将每个显著不同的处理都定义为不同的操作,除非它有着非常低的发生概率或执行非常不重要

29、的功能。除了主要参考系统的需求以外,还可以参考事件流图、用户手册、协议和以前的系统版本等信息。(5) 确定单个操作或属性值的出现率出现率是操作或属性值在单位时间内的发生次数,最好使用实际的数据来决定出现率。这种对使用的度量常常可以从系统的日志中获得,通常情况下,这些数据已经存在于相同或相类似的系统中。如果在没有这些直接的日志的情况下,可以通过更多的调研工作来收集信息,使用相关的一些数据来对出现率进行评估。确定操作或属性值的发生概率。操作或属性值的发生概率通过出现率计算得来,可以采用操作/属性值的发生次数除以所有操作/属性值发生的总数获得。3.2 实验软件3.2.1 TCSTCS软件是面向实时嵌

30、入式软件可靠性测试数据生成的应用软件,能够支持对实时嵌入式软件的图形化测试输入建模以及输入元素的信息描述,辅助测试人员对测试环境、软件的使用情况、软件输入情况进行分析。在测试建模的基础上,本软件能够自动生成软件可靠性测试数据,并实现对测试数据的管理。TCS具备以下的基本功能特性:1) 支持测试分析、测试建模和测试数据自动生成的全过程。2) 提供系统图的建模机制,能够以图形化描述的方式辅助用户进行被测系统交联环境的构建和系统分析。3) 为用户提供输入变量和使用类的提取以及图形建模的机制,使用户能够以图形绘制的方式构建使用类图。4) 为用户提供使用剖面的建模机制,能够以图形化视图的方式实现多个使用

31、子剖面图,并建立起使用剖面中各个元素的使用关系。5) 为使用剖面中的每个操作构建操作描述图,支持步骤图和连续图描述。6) 支持图形化建模过程中的图形元素的拖放、删除、修改、重命名等操作,并能够保持建模中关系的一致性。7) 能够为图形建模提供检查机制,实现建模过程中错误的发现和定位,并给出准确的错误提示。8) 能够根据用户的描述建模信息,自动按照测试数据取值规则生成XML形式的测试数据。9) 能够以测试报表的形式给出整个测试输入建模过程中用户描述信息的报表。10) 能够提供信息检索服务,用于查找建模中的元素,并提供定位功能。11) 通过提供测试输入建模信息导入导出功能,从而实现多人开发对同一个被

32、测对象进行描述。3.2.2 ATM机软件在本部分实验中,学生需要熟悉ATM机软件的使用,并对其进行剖面建模。ATM机软件的主要功能如图6所示。图 6 ATM功能结构图1) 登录模块登录模块提供了插卡和输入密码两个功能。用户只有在插入磁卡,并正确输入密码后,才能进行后续的事务操作。2) 事务模块事务模块提供了取款,存款,转账,查询余额,修改密码五项功能。各项功能的详细说明可见ATM机软件需求说明书。3) 退出模块用户可选择退卡功能选项,退出账户。再次登录需要重新输入密码,执行登录操作。3.3 实验内容1) 教师演示教师将对ATM机软件和TCS软件的使用进行演示,以帮助学生熟悉这两项软件的使用。2

33、) 学生熟悉软件学生分组之后,以两人为一组熟悉ATM机软件和TCS软件的使用。3) ATM机软件剖面构造(1) 学生以小组为单位对ATM机软件进行分析,并使用TCS构造剖面。(2) 编写剖面报告,编写的剖面报告将作为该部分的成绩参考。4) 软件可靠性测试剖面讨论(视情)在剖面构造完成并提交之后,随机抽取小组讲解构造的剖面,并集体进行完善,挑选出最佳的剖面建模,作为后续实验的标准剖面。4 软件可靠性验证测试实验部分4.1 概述及实验相关介绍4.1.1 软件可靠性验证测试流程软件可靠性验证测试过程分为4个阶段:测试策划阶段、测试设计与实现阶段、测试执行阶段和测试总结阶段。主要流程见图7。图 7软件

34、可靠性验证测试的主要流程1 测试策划阶段在该阶段主要进行的工作为确定软件失效的定义和等级、编制验证统计测试方案;主要输出为软件可靠性验证测试计划。其中最为重要的工作为编制验证统计测试方案。软件可靠性验证测试中通常选用的统计方案有:定时截尾方案、序贯方案和无失效运行方案。表4Error! Reference source not found.简述了各统计方案的特点与确定程序。表 4统计测试方案特点及确定程序测试方案定时截尾方案序贯方案无失效运行方案特点a.测试时间可以预先确定,便于进行资源分配,管理简单;b.在信息量的利用上还不够充分a.更充分地利用软件每次的失效信息;b.在可靠性比较高或比较低

35、的情况下可以做出更快的判决a.针对可靠性要求很高的软件;b.对验证测试已判为接收的软件改错后要进行无失效运行测试2 测试设计与实现阶段在该阶段主要进行的工作为构造操作剖面并生成测试用例、建立并校核测试环境。该阶段工作的输出为软件可靠性验证测试说明及其附件软件可靠性测试用例集。该阶段的主要工作与增长测试类似。3 测试执行阶段在该阶段主要进行的工作为执行测试用例,记录、分析测试结果并收集失效数据,按照统计方案要求进行接受/拒收判断。主要的输出为软件可靠性验证测试记录、软件可靠性验证测试问题报告和软件可靠性验证测试失效数据记录和分析。这三份文档作为最终的软件可靠性验证测试报告的附件。4 测试总结阶段

36、在该阶段主要进行的工作为对软件可靠性验证测试过程和结果进行总结,对软件可靠性参数进行估计,给出软件可靠性验证测试结论。该阶段的主要输出为软件可靠性验证测试报告。4.1.2 软件可靠性验证统计测试方案软件可靠性验证统计测试方案对于软件可靠性验证测试非常重要,是验证测试时间、资源、接收/拒收条件的重要支持。不同的可靠性验证指标,对统计方案有着不同的要求。选择统计测试方案时应考虑验证指标的类型、测试环境的预期寿命、该类型软件的质量要求、对软件的实际质量的估计、可承受的最大测试时间、可承受的最大失效数、测试经费、费用-时间的权衡、是否有先验信息等诸多因素。1 方案类别的选择(1) 验证指标为MTBF/

37、失效率的软件a) 若合同中要求进行软件可靠性验证测试,提供MTBF的验证值,并且有固定的测试截止时间时,应选用软件可靠性(MTBF)定时测试方案;b) 对于质量很高或很低的软件,可选择软件可靠性(MTBF)序贯测试方案,以尽早对软件作出接收或拒收判决;c) 对可靠性要求(MTBF)较高的软件可选用基于MTBF的无失效考核测试方案;d) 对于做过软件可靠性增长测试,有先验失效信息的软件,可选择贝叶斯测试方案以减少测试时间。(2) 验证指标为成功率/失效概率的软件a) 对于人力和测试时间受限的情况宜采用定数测试方案以提前确定测试工作量;b) 对于质量很高或很低的软件,可选择软件可靠性(成功率)序贯

38、测试方案,以尽早对软件作出接收或拒收判决;c) 对可靠性要求(成功率)较高的软件可选用基于成功率的无失效考核测试方案;d) 对于验证指标为可接收的失效概率和使用方风险/置信度的单边指标,对测试中允许的最大失效数有限制时可选择TRW法;e) 对于验证指标为可接收的失效概率和使用方风险/置信度的单边指标时,对测试的最长时间有限制时,可选用单风险序贯测试方案;f) 对于验证指标为可接收的失效概率和使用方风险/置信度的单边指标时,若做过软件可靠性增长测试,有先验失效信息时,可选择贝叶斯测试方案以减少测试时间。2 统计方案参数的选取原则(1) 测试时间a) 验证指标为MTBF的统计测试方案对于序贯测试方

39、案,应按方案中可能的最长测试时间来设计,以保证时间控制在计划之内。测试应进行到总测试时间或失效数达到测试方案可以作出接收或拒收判决为止。定时测试方案和无失效考核测试方案的测试时间应按照确定的统计方案中的验证时间进行。b) 验证指标为成功率的统计测试方案对于序贯测试方案,应按方案中可能的最大用例数执行所需的估计时间来设计,以保证时间控制在计划之内。测试应执行到最大用例数或失效数达到测试方案可以作出接收或拒收判决为止。定数测试方案和无失效考核测试方案的测试用例数量应按照确定的统计方案中的用例数量来生成用例,相应的测试应按执行该测试用例数量所需的估计时间来设计。(2) 决策风险在风险方案中,一般来说

40、,选择决策风险较小的测试方案,需要较长的总测试时间(用例数量),但接收不合格软件及拒收合格软件的概率也小了。在制定方案时,力求方案的实际决策风险值接近于指定的风险值,并使每一方案的两类决策风险尽可能接近。(3) 鉴别比鉴别比是检验上限与检验下限的比值。鉴别比越大,作出判决就越快。应慎重选择鉴别比,以防止因鉴别比过大而导致的检验上限相应过大,使指标要求难以实现。3 定时可靠性验证测试方案制定定时可靠性验证测试方案的程序通常为:a) 根据软件产品的可靠性要求及可用的测试资源,由用户和开发方共同协商确定1、d、值,一般选、值为10%、20%,特殊情况下可取高风险率30%。b) 根据1、d、值查表5(

41、原定的、叫名义值,实际计算中的、取值叫实际值、 ),得相应的测试时间(1的倍数)、接收数Ac及拒收数Re = Ac +1值。统计在方案中给定的测试时间内收集的失效数据个数,进行接收/拒收判断:l 当实际失效个数小于等于接收数Ac时,接收软件;l 当实际失效个数大于等于拒收数Re时拒收软件。c) 参数估计。若用户需要根据测试数据估计软件的MTTF,必须规定置信区间的置信度,GJB899A建议=1-2。测试方根据测试数据向用户提供MTTF的观测值(点估计值)及相应于给定的置信区间(L,U),这里分为两种情况: l 判决结果为接收时的MTTF的估计设T是定时截尾测试规定测试时间,r是到测试结束时出现

42、的失效总数,则MTTF的观测值为: (2)表5验证测试统计方案对应表方案号决策风险(%)鉴别比d=0/1实验时间(1的倍数)判决失效数名义值实际值拒收数() Re接收数() Ac9101012.09.91.545.0373610102010.921.41.529.9262511202019.719.61.521.518171210109.610.62.018.814131310209.820.92.012.410914202019.921.02.07.86515109.36516102010.921.33.05.44317202017.519.73.04.33219303

43、08328.52.03.73221303030.733.33.01.110当r0时,根据IEC建议 (3)给定置信度,则的单侧置信下限为 (4)其中表示:置信水平为,自由度为2r+2的分布值。的双侧置信区间为: (5)(6)l 判决结果为拒收时的MTTF的估计设T是最后一个失效发生时软件的总测试时间,r是失效总数,则MTTF的观测值为: (7)给定置信度则相应的置信区间为: (8)(9)4 序贯可靠性验证测试方案制定序贯可靠性验证测试方案的步骤通常为:a) 用户及软件开发商协商确定0、1、。d可取1.5、2.0、3.0之一,、可取10%或20%,(

44、短时高风险方案取30%)。b) 画出序贯测试判决图(如Error! Reference source not found.),图中标出合格判定线及不合格判定线,接收区、继续测试区。图表中的标准化判决时间t以的倍数表示。使用时应将图表中的标准化判决时间乘以,以得到实际的接收判决时间及拒收判决时间。图 8 序贯测试判决示意图Error! Reference source not found.中,合格判定线 (10)不合格判定线 (11) 其中: (12) 根据每次失效的发生时间在序贯测试判决图上描点,进行接收/拒收判决:l 若该点落在“接收区”即接收软件;l 若该点落在“拒收区”即拒收软件;l 若

45、该点落在“继续测试区”即继续测试,直至失效点落在接收区或拒收区即停止测试。c) 参数估计。根据测试中收集的每个失效发生的时间,在给定的置信度下可估计MTTF的上下限。4.1.3 软件可靠性验证测试的注意事项软件可靠性验证测试的注意事项如下:a) 验证测试中,使用的测试数据必须基于操作剖面(如Musa操作剖面)随机抽取,否则验证的结果以及评估得出的结果是不正确的;b) 验证测试过程中,发现失效后不对软件进行修改,从而保证失效时间服从指数分布;c) 在进行可靠性验证测试前必须由测试方、开发方以及使用方(可能的话)明确失效的判据,并明确哪些失效需要统计在内。对于不同的可靠性要求其失效判据可能不同,比

46、如,如果只对影响任务的失效提出了可靠性定量要求,则失效应定义为影响软件系统任务完成的软件行为;d) 在接受/拒收判定及可靠性参数评估中,应计入每一次失效,无论其是否由相同的原因导致;如一次失效是由N个独立的缺陷引起,则应计为N次失效;e) 在验证测试中,就算产品被接收了,也应该排除可靠性测试中发现的软件缺陷,在条件允许的情况下,可以增加无失效方案进一步验证。4.2 实验软件本部分实验将使用TCS软件、ATM机软件。本部分实验需要根据4.1.2中的方法制定统计方案,并使用TCS生成的测试用例对ATM机软件进行可靠性测试,根据测试过程中收集到的失效数据数据进行接收或拒收判别。4.3 实验内容选取验

47、证统计测试方案进行可靠性验证测试。1) 按照Error! Reference source not found.开展软件可靠性验证测试2) 设计统计实验方案3) 使用TCS生成1000个测试用例4) 按照测试用例逐一测试ATM机软件5) 记录测试用例的执行时间和失效发生的时间6) 判定是否接收或拒收,同时进行区间和点估计7) 完成软件可靠性验证测试计划、说明、报告的编写5 软件可靠性增长测试实验部分(选做)5.1 概述及实验相关介绍5.1.1 软件可靠性增长测试流程软件可靠性增长测试通常采用如图9的流程。1) 测试策划阶段该阶段的主要工作是定义失效和可靠性目标。在测试前应该确定失效判据。专用的

48、失效判据通常由测试人员、开发人员和用户共同商定。首先需要定义什么是失效,如果软件可靠性要求是针对不同严重性等级的失效提出的,则应按照严重性等级将软件失效进行分类,以便基于不同严重性等级的失效数据评估相应的软件可靠性。定义软件可靠性增长的目标主要用于是否停止增长测试的参照。通常采用系统分配给软件的可靠性指标作为可靠性增长的目标值。该阶段的主要输出是软件可靠性增长测试计划,计划中包括对失效和可靠性目标的定义,以及时间进度、资源等安排。通常软件可靠性增长测试计划完成后需要组织评审。图 9软件可靠性增长测试的主要流程2) 测试设计与实现阶段该阶段的主要工作包括构造操作剖面与建立测试环境,以及在此基础上

49、生成软件可靠性测试用例。(1) 构造操作剖面如上一节实验内容(2) 搭建软件可靠性测试环境通常测试环境应与真实运行环境尽可能相同,在真实测试环境受限的情况下也可以在仿真测试环境下进行测试。本实验的测试环境已经由实验教师搭建完毕。(3) 生成测试用例根据构建的操作剖面,可以通过随机抽样生成测试数据。该阶段的主要输出是软件可靠性增长测试说明,包含测试用例集。对于较复杂的软件,随机抽样产生的测试数据通常不含测试预期结果,此时可以在抽样生成的测试数据的基础上,人工添加测试预期结果,从而生成完整的测试用例。由于操作剖面是软件可靠性测试的关键环节之一,通常在操作剖面构建完成之后要进行严格的评审,重点审核操

50、作剖面的合理性以及测试环境的可行性。3) 软件可靠性增长测试执行阶段测试执行阶段的主要工作是根据测试用例执行测试,同时收集失效数据用于可靠性评估。(1) 测试执行与收集失效数据收集软件失效数据是采用模型进行软件可靠性评估的基础,因此失效数据收集的完整、准确、及时与否对可靠性评估结果的可信程度至关重要。针对不同的可靠性要求,应该制定不同的数据收集程序和数据收集要求。通常认为,对于软件可靠性模型来说,执行时间比日历时间更好,如果不能得到执行时间,也可以使用一些近似的表示,诸如时钟时间、加权时钟时间或事务处理数等表示。常用的模型使用两类失效数据:失效计数数据和失效时间数据。失效计数数据是指单位时间内

51、发生的失效数,如每日、每周发生的失效次数;失效时间数据是指每次失效发生的累计执行时间或间隔执行时间,可以直接或间接地收集,最好收集程序的实际执行时间,而不是时钟时间。因为时钟时间往往会给出乐观的软件可靠性估计。可以用单位时钟时间的平均利用率因子来调整时钟时间得到实际执行时间的估计值。(2) 测试结果分析与处理对测试结果的分析与处理主要包含两部分的工作,一是针对发现的软件失效,分析失效带来的影响,从而排除缺陷,并进行回归测试;另一方面是分析失效数据的趋势,选择出软件可靠性模型进行评估分析。软件可靠性增长测试执行阶段的主要输出是可靠性测试执行记录、问题报告以及失效数据分析与处理的记录。4) 软件可

52、靠性测试总结阶段总结阶段主要对测试过程和数据进行总结,主要输出是软件可靠性增长测试报告。通常需要对测试报告进行正式评审。5.1.2 软件可靠性增长测试的注意事项软件可靠性增长测试注意事项为:a) 对于有可靠性定量要求的软件才进行软件可靠性增长测试;b) 软件可靠性增长测试使用的测试数据必须基于操作剖面生成;c) 对增长测试中发现的问题必须加以纠正;d) 可能的话,记录每一次软件的失效时间;e) 在软件可靠性评估中,由相同的软件缺陷导致的软件失效只计第一次;f) 回归测试时收集的信息,不作为软件可靠性评估的依据;g) 软件可靠性估计必须基于软件可靠性数据,即在基于操作剖面的软件测试中收集到的失效数据,或实际使用中收集到的失效数据。失效数据的收集必须完整、及时、准确;h) 在进行可靠性测试前必须由测试方、开发方以及使用方(可能的话)明确失效的判据,并明确哪些失效需要统计在内。对于不同的可靠性要求其失效定义可能不同,例如,如果只对影响任务的失效提出了可靠性定量要求,则失效应定义为影响软件系统任务完成的软件行为;i) 一个软件系统可以有多个操作剖面,主要取决于是否针对不同的操作模式有独立的可靠性要求。5.2 实验软件本部分实验将使用TCS软件、ATM机软件和SRET软件。TCS软件将用于测试数据的自动生成;ATM机软件作为被测软件支持测试工作的进行;SRET软

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论