您的位置 首页 动态

一种高可靠性软件测验计划

1引言高可靠性软件泛指一类软件:该类软件运行过程中若出现故障会引发重大灾难性事故或经济损失。通常航天型号软件、银行系统软…

  1 导言

  高牢靠性软件泛指一类软件:该类软件运转进程中若呈现毛病会引发严峻灾难性事端或经济损失。一般航天类型软件、银行体系软件、医疗职业软件、通讯职业软件等均属此范畴。现在,越来越多的软件企业触及高牢靠性软件项目,怎么保证软件质量成为许多企业面临的一个很重要的课题。这篇文章结合某航天项目地上运用体系模型(本文命名为CraftGS),要点评论怎么从软件测验的视点保证此类产品的软件质量。

  2 CraftGS项目简介

  CraftGS是一个很经典的卫星地上运用体系模仿项目。它分为5个子体系:数据接纳子体系(DAS)、数据预处理子体系(DPS)、运转办理子体系(OMS)、数据办理子体系(DMS)以及数据产品完结(DPRS)子体系。CraftGS的整体牢靠度要求是0.95。各分体系分配到的牢靠度方针是如下:

  分体系名 牢靠度方针

  DAS 0.99994

  DPS 0.99865

  OMS 0.99910

  DMS 0.99950

  DPRS 0.99502

  CraftGS的事务逻辑是Data Package从卫星传入DAS,DAS担任解包,将解包后数据传入OMS及DPS,OMS经过DAS传来的数据检测卫星是否正常运转并担任卫星飞翔姿势调整;DPS担任调制DAS传来的数据,转换成有含义的逻辑数据。DPS处理后的逻辑数据传入DMS以及DPRS。其间DMS担任数据备份、数据查询及数据链路保护等操作;DPRS担任将DPS处理过的逻辑数据分门别类地转换成数据产品,并封装发布。

  考虑到项目固有的牢靠性安全性要求,CraftGS体系选用Java+Unix技能架构完结。该架构从编程言语级和体系级对软件产品质量做了保证。为了操控软件产品开发进程中的质量,笔者引荐选用如下软件测验计划。

  3 测验计划:软件验证技能+软件承认技能+软件测验办理

  CraftGS体系的软件测验计划由三个部分组成,即软件验证技能、软件承认技能和软件测验办理技能。它们内在及彼此之间的联系如下图所示:YSR我国牢靠性资源网

  CraftGS测验计划

  测验技能层面 测验办理层面

  软件验证技能 需求规范阐明验证 软件测验团队组织办理

  规划规范阐明验证

  代码验证 软件测验计划办理

  交给验证

  软件承认技能 单元测验 软件缺点(过错)盯梢办理

  集成测验

  体系测验 软件测验件办理

  交给测验

  YSR我国牢靠性资源网

  其间,软件验证技能着眼于扫除软件开发文档中的过错。验证活动触及的文档按开发流程首要触及需求规范阐明、规划规范阐明(包含概要规划规范阐明、详细规划规范阐明、数据库规划规范阐明)、编码规范阐明、产品交给文档等一系列书面材料。现在验证技能的施行在很大程度上是依托测验人员手艺完结的。验证活动视实践需求有时还会触及到开发人员和方针客户,需求得到他们必要的理解和支撑。验证测验选用的首要测验手法有:面临面质询、文档查看、非正式会议、同行鉴定等等。

  相关于软件验证技能,软件承认技能则首要着眼于扫除程序代码中的过错。活动触及的方针首要是程序部件的代码或软件制品。在施行进程中,常常按被测代码的规划和测验所在的层次将软件承认测验分为四个阶段,即:单元测验(也叫类测验)、集成测验(也叫拼装测验)、体系测验和交给测验。承认测验基本上由软件测验人员对照相关开发文档运转程序独立完结的。必要时,也可让规划人员带领测验人员阅览程序代码一起发现其间的过错,(即所谓代码鉴定会)。有定见以为,在单元测验(或类测验)阶段,应该有软件编码人员参加,这样能减轻测验人员阅览代码妨碍。原则上,测验理论不发起程序作者担任把关自己编写的程序的质量。在实践施行进程中,可视实践情况灵活处理。(如成对编程或许会较好的处理单元测验这个难题,上面说到的代码鉴定会也是为应对这个难题而想出的一个好办法。),软件承认技能现在现已部分地完结了测验东西的自动化,市面上已有不少自动化东西能在测验人员的辅佐下完结相应的测验作业(例如用于Java代码单元测验的Junit东西,又如用于GUI测验的Rational Visual Test东西,等等)。

  软件验证技能和软件承认技能均归于测验技能层面的东西。但是关于工程质量的保证而言,光靠软件测验技能还远远不够,还需求技能办理层面上的东西。软件测验办理技能的诞生正是为补偿这个缺乏。依照办理的方针不同,测验办理技能大致包含软件测验团队组织办理、软件测验计划办理、软件缺点(过错)盯梢办理以及软件测验件办理四大部分。下面,笔者将结合CraftGS项目对该测验计划做一个详细的诠释。

  4 在CraftGS项目中详细运用上述测验计划

  CraftGS五个分体系的开发进程均在CraftGS测验团队的质量操控下有序进行,严格地施行了上述测验计划。经专家鉴定,各分体系及终究集成后的体系整体均到达了使命书中所分配的牢靠性方针。

  4.1 在CraftGS项目中运用软件验证技能

  CraftGS项目中运用的软件验证技能首要包含需求规范阐明验证、规划规范阐明验证、代码验证以及交给验证。以下逐个阐明。

  需求规范阐明验证的首要使命是保证用户的功用需求、事务需求、以及其他的一些需求(如非功用性需求、束缚性需求等等)都现已被分配到软件需求规范阐明的各需求项中。

  规划规范阐明验证相对需求规范阐明验证而言,略微杂乱些,它包含3个部分的内容:即概要规划规范阐明验证、详细规划规范阐明验证以及数据库规划规范阐明验证。其间概要规划规范阐明验证的首要使命是保证软件需求规范阐明中的需求项悉数现已分配到了概要规划规范阐明的各软件模块之中而且无剩余物,详细规划规范阐明验证的首要使命是保证概要规划规范阐明中的模块现已悉数分配到详细规划规范阐明的各软件单元之中而且无剩余物,数据库规划规范阐明虽然从范畴上讲应该归于详细规划规范阐明范畴,但笔者以为因改把它独立出来施行验证活动。(数据库规划和软件规划究竟有许多不同之处。)数据库规划规范阐明验证的要点使命是验证数据库与外部运用程序的接口是否正确、数据操作完结界面是否明晰、数据库整体规划是否合理、数据表规划是否契合3NF要求(如违背范式要阐明详细理由)以及数据表中的字段(键)和索引的规划是否高效合理等等。完结规划规范阐明今后,下一步要做代码验证。

  代码验证的内容包含:代码编写规范查看、代码查看和代码静态剖析三个部分。代码编写规范查看首要是审阅代码排版的格局以及注解的格局是否契合开发团队的相应规范;代码查看的使命首要是验证详细规划中的软件单元是否都已被代码掩盖并正确完结,而且代码中不含冗余物;代码静态剖析技能首要使命是查看变量或标号的界说与运用、表达式运算以及程序的流程规划上是否存在缺点或过错。

  做完代码验证今后,软件体系需求顺次做单元测验、集成测验和体系测验,这部分内容属软件承认技能范畴,下面有专门的论说。软件体系在做完体系测验后,就面临着交给运用的问题,在体系正式移交给用户之前,还需求做交给验证和交给测验。交给测验技能下文有专门的论说,不赘述,这儿首要谈交给验证技能。交给验证包含装置验证和运用验证两部分内容。其间,装置验证的首要使命是保证程序能依照用户手册的提示正确装置到方针机器上,运用验证的首要使命是保证程序能依照用户手册的提示的操作正确完结某项功用或事务处理。这两部分作业一般是由测验人员完结的,用以核实相关装置和运用手册是否正确无误。

4.2 在CraftGS项目中运用软件承认技能

  CraftGS中运用的软件承认技能包含单元测验技能、集成测验技能、体系测验技能和交给测验技能。

  其间单元测验的首要使命是验证详细规划规范阐明中所区分出来的软件单元是否被程序编制人员用代码方式正确地完结了。这儿软件单元或许是某个函数(或称办法)也或许是某个抽象数据类型(如类、数据结构或许模板)。单元测验在实践测验傍边也常常被称为类测验(在面向方针的规划中)或白盒测验(白盒的意思是面向代码)。单元测验的作业原理是建构桩模块和驱动模块以驱动被测单元运转,然后,测验人员输入规划好的测验用例,测验被测单元能否依照规划要求处理这些测验用例,对呈现异常的测验用例,测验人员应做记载并反馈给软件开发团队。

  做完单元测验今后,下一步的作业是对照软件概要规划规范阐明,验证各软件单元拼装后构成模块能否到达概要规划规范阐明中模块的规划方针;在模块级集成作业完结之后,测验人员还应测验各模块拼装后构成的用户体系内部存在抵触,各模块能否正常作业。这儿,模块或许是指某个软件部件,也或许是指某个或某几个分体系。一般在做集成测验时先是从分体系内部的集成测验开端做起,做完今后再测验各分体系是否能集成为终究要完结的大体系。也有其他做法(如自顶向下集成测验办法、中心体系先做集成测验或每日集成测验等等)。总归,万变不离其宗。集成测验要保证模块的内部正确性以及保证模块能终究集成为大体系。集成测验有时也被称为拼装测验(在类型软件中)或灰盒测验(有人以为集成测验介于白盒与黑盒之间)。

  做完集成测验今后,下一步作业便是做体系测验。体系测验的首要使命是验证经集成测验后构成的软件体系是否满足软件需求规范阐明中的各需求项。这些需求项包含:事务需求、功用需求、非功用性需求(如:功用、牢靠性、安全性、体系保护等方面的要求)以及一些束缚性需求(如开发规范、编程言语、通讯协议)等等。因为需求项触及的范畴很广泛,这就导致了体系测验中对应的测验类别适当杂乱。如:功用测验、履行途径测验、牢靠性测验、压力测验、可恢复性测验、可移植性测验等等。这些测验最明显的特征是在必定环境条件下(如:模仿现场或极点条件),规划各种测验用例,输入并运转完好的软件体系,依据软件体系运转进程中的实践体现,点评软件体系是否契合软件需求项的各类要求。因为这类测验一般不触及内部代码,因而,也有人把体系测验称做是黑盒测验

  在做完体系测验今后,软件产品就到了交给用户运用这个阶段了。交给进程中的重要一环便是交给测验,交给测验的方针是保证用户对所交给的体系的满足。与前面所评论的测验不同,交给测验首要的参加者应该是方针客户。客户参加越多越好。交给测验的内容一般包含装置测验、可用性测验、alpha测验、beta测验等。其间装置测验的首要使命是测验软件体系能否在模仿环境下或实践现场由方针用户顺畅完结在方针机器上的装置;可用性测验的首要使命是测验软件体系在完结装置今后能否完结用户的模仿使命或现场使命;alpha测验选用的方式一般是由一个用户在开发环境下对软件体系进行类似于黑盒的测验,测验的意图是从用户的视点点评软件产品的功用、可运用性、牢靠性、功用和支撑,特别重视产品的界面和特征;beta测验选用的方式一般是先由软件的多个用户在实践运用环境下运用beta版软件体系一段时刻,然后把运用中呈现的各类毛病或缺点反馈给beta测验担任人员,再由测验担任人员移交给软件开发者,由开发人员担任批改并完善软件体系。Beta测验的意图是保证软件产品交给给整体用户之前能部分或全面地批改其在实践运用中或许呈现的各类BUG或缺乏。

  4.3 在CraftGS项目中运用软件测验办理技能

  一如前文所述,测验技能处理了测验选用的办法和技能问题,但是,关于一个工程而言,还需求相应的测验办理才干保证各项测验活动的有序展开。因而,在CraftGS项目中,软件测验办理技能要处理的问题是怎么保证软件测验技能(包含软件验证技能和软件承认技能)能在软件项目在软件生命内得到顺畅施行,并发生预期的作用。

  依照软件测验办理面临的办理方针的差异,软件测验办理技能大致分为软件测验团队组织办理、软件测验计划办理、软件缺点(过错)盯梢办理以及软件测验件办理四大部分。以下逐个诠释:

  软件测验团队组织办理浅显地讲便是测验团队应该怎么组成。在实践项目开发中,咱们常常看到有些单位忽视测验团队存在的含义,当要施行测验时,往往暂时找几个程序员充任测验人员;也有些单位虽然知道到了组成测验团队的重要性,但在详细执行的时分往往组织一些毫无开发经历的职业新手去做测验作业,这常常导致测验功率的低下,测验人员对测验作业索然寡味。CraftGS项意图测验团队首要聘有一名资深的测验范畴专家,他具有极为丰厚的航天项目软件测验经历,对软件开发进程中常见的缺点或过错了然于胸,此外,他还具有较好的亲和力和人格魅力。其次,CraftGS项目测验团队还具有许多具有才有所长的成员,如对某些自动化测验东西运用熟练或能垂手可得地编写自动化测验脚本。别的,测验团队还聘有兼职成员。如验证测验施行进程中,同行鉴定是最常运用的一种方式,这些同行专家就归于兼职测验团队成员的范畴。至于测验团队里里的测验新手,这部分人能够组织去从事交给验证或黑盒测验之类的作业。

  软件测验计划办理浅显地讲便是组织好测验流程。这部分内容详细包含软件测验策划、软件测验技能取舍、测验进展办理、本钱办理等几个部分。其间测验策划作业首要是指详细测验活动施行之前做好策划作业,如起草测验纲要以及测验计划;软件测验技能取舍作业首要是指测验团队应依据软件项意图详细实践取舍出所要施行的测验技能;测验进展办理作业首要是指排出各项测验的时刻进展及人员组织,如有变化时应做相应调整;测验本钱办理作业的内容即开列出测验活动中会触及到的资源需求。CraftGS项目测验团队较好地依照上述要求,完结了软件测验计划办理。

  软件缺点(过错)盯梢办理浅显地讲便是保证发现的缺点(过错)现已被开发团队纠正或处理过而且没有引进新的缺点(过错)。详细来讲,当测验团队经过各种途径发现了文档或代码中的缺点或过错今后,并不是交一份测验陈述就敷衍了事,而是在递送陈述今后持续催促开发团队及时封闭已知缺点或过错(当然,如有必要应对这些缺点、过错做严峻程度排序,以便开发团队能视轻重缓急组织处理次序)。当开发团队封闭了测验陈述中的缺点(过错)今后,测验团队还需验证开发团队在封闭进程中有没有引进新的过错。一般,这个进程称为回归测验。回归测验如发现问题,持续报开发团组,按上述流程循环,直至回归测验终究经过。这部分作业在CraftGS项目中是运用自动化的测验办理东西完结的,(市面上可选择的东西有华创缺点办理体系(BMS) 和Rational ClearQuest等等),这么做十分有功率。

  软件测验件办理浅显地讲便是指尽力建造好测验团队的财富库并对测验团队成员进行技能培训以协助他们能运用好这个财富库。这儿,财富库是指软件测验件。测验件(Testware,指测验作业构成的产品)是一个不常见到的词汇,它包含是测验团队在长期实践进程中逐渐堆集起来的经历教训、测验技巧、测验东西、规范文档以及一些经过少数修正能推行至通用的测验脚本程序。测验件办理作业做得越好,测验团队在实践测验进程中就能越少走弯路,测验团队内部的常识沟通和传递就越充沛,测验脚本或规范文档的重复开发作业也就能被有效地防止。软件测验件办理作业包含两部分,一是建造,另一个是培训。建造作业大略是搜集各类测验外文档、测验东西、测验脚本,也包含搜集整理测验人员的会议讲话、总结陈述、技能心得等等。培训作业大略是经过技能讲座、正式或非正式团队会议、印发学习材料等方式进行。CraftGS项目组考虑到测验团队的持久开展,较好地完结了测验件办理,测验团队成员的技能水平在较短的时刻内都有了十分敏捷的前进。

  5 结语:高牢靠性软件测试技能需求更多重视

  以上笔者结合CraftGS项目对从测验技能和测验办理的视点对高牢靠性软件测试计划一个略浅显的讨论。笔者期望此文的宣布能对相关软件企业和软件项目施行软件测验技能起必定的参阅和指导作用。需求阐明的是现在对高牢靠性软件怎么施行软件测验技能仍是一个颇不老练的范畴,短少一种体系化的办法。各个企业或许都有必定的经历堆集,无妨整理出来,彼此学习。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/222048.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部