测试驱动开发在星载软件开发中的应用

来源 :中外企业文化 | 被引量 : 0次 | 上传用户:qq350645682
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【文章摘要】
  本文介绍了一种测试驱动开发的软件开发方法,在设计测试用例的基础上完成软件设计实现的过程,继而通过重构代码来优化软件,分析了这种方法的优缺点,结合星载软件开发的工程要求,在传统瀑布模型中加入测试驱动方法,用结对编程和完善测试环节的方法弥补测试驱动开发的缺点,在工程实践中取得了提高程序编写质量和减少开发时间的效果。
  【关键词】
  测试驱动开发;结对编程;星载软件
  1 概述
  自20世纪60年代以来,人们发现了“软件危机”带来的巨大危害,于是在软件工程领域做了大量研究工作,逐渐形成了一整套软件生命周期的开发理论,随着软件规模越来越大,项目周期缩短,而用户的需求快速变换,传统的开发方法已不能适应软件开发的需要,而测试驱动开发(简称TDD),是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
  2 测试驱动方法的优缺点分析
  2.1 测试驱动的优点
  测试驱动开发相对于传统的软件开发方式,具有以下特点:
  1)测试驱动开发根据客户需求编写测试用例,对功能的过程和接口都进行了设计,而且这种从使用者角度对代码进行的设计通常更符合后期开发的需求。因为关注用户反馈,可以及时响应需求变更,同时因为从使用者角度出发的简单设计,也可以更快地适应变化;
  2)出于易测试和测试独立性的要求,测试驱动开发促使开发者实现松耦合的设计,并更多地依赖于接口而非具体的类,提高系统的可扩展性和抗变性,从而明显地缩短了设计决策的反馈循环;
  3)测试驱动开发将测试工作提到编码之前,并频繁地运行所有测试,可以尽量地避免和尽早地发现错误,降低了后续测试及修复的成本,提高了代码的质量。在测试的保护下,不断重构代码,以消除重复设计,优化设计结构,提高了代码的重用性,从而提高了软件产品的质量;
  4)测试驱动开发提供了持续的回归测试,便于开发者对代码进行重构,因为代码的改动导致系统其他部分产生任何异常,测试都会立刻通知我们。完整的测试会帮助我们持续地跟踪整个系统的状态,因此可以避免一些软件潜通路问题;
  5)系统可以与详细的测试集一起发布,从而对程序将来版本的更改和扩展提供方便;
  6)由于编写测试用例和代码过程上统一,降低了测试人员理解代码所花费的成本。
  2.2 测试驱动存在的问题
  根据已采用测试驱动开发的人员评价,测试驱动方法也存在以下问题:
  1)开发者可能只完成满足了测试的代码,而忽略了对实际需求的实现;
  2)会放慢开发实际代码的速度,特别对于要求开发速度的原型开发造成不利;
  3)对于图形化用户界面(GUI)、资料库和Web应用而言。构造单元测试比较困难,如果强行构造单元测试,反而给维护带来额外的工作量;
  4)使得开发更为关注测试用例,而不是设计本身;
  5)单纯的测试驱动开发会导致单元测试的覆盖度不够,比如可能缺乏边界测试。
  3 某星载管理软件开发过程
  3.1 测试驱动思想的引入和改进
  针对测试驱动开发方法的优缺点,根据航天嵌入式软件开发的行业要求,在充分继承航天软件原有V型瀑布模型开发模式的基础上,不改变原来开发模式的主体结构,在软件需求分析阶段引入测试驱动开发的思想,提前到需求阶段就同步开展测试用例和测试计划的编制工作,由面向用户的系统分析员直接设计测试用例。由于星载嵌入式软件对于软件可靠性要求较高,因此在开发测试过程中,在代码完成后还是需要补充单元测试和组装测试,以保证测试的覆盖性,单元测试用例要覆盖详细设计中描述的每个子程序,语句覆盖率、分支覆盖率均要达到100%,加强对边界点的测试以及边界外的测试。
  软件开发组采用双人双岗制,用结对编程的方式弥补测试驱动开发可能忽略实际需求的不足之处,在两人结对编程中,一个人负责输入代码,称为“驾驶员”,另一个人负责审查代码,称为“观察员”,在同一个软件开发过程中,两者的角色可以经常互换,观察员主要考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理,而驾驶员专注于当前任务的“战术层面”,两人的协调工作则带来纪律和时间管理的提升。
  在操作层面上,观察者编写可能导致当前程序出错的测试用例,驾驶者修改代码以通过该用例,观察者编写新的测试用例,以此类推。这个循环持续到观察者不能写出失败的测试用例。显然,结对编程要花较多的时间,但航天软件研制周期相对较长,可靠性要求较高,因而采用这种方式进行补充是合理的。
  3.2 项目策划和需求分析
  在某试验卫星中,需要搭载一台国产SM1750计算机验证国产元器件及软件的工作情况,这类软件属于嵌入式实时软件,规模估计在4000行左右的小型软件,开发团队共4人,设置项目经理1人,开发人员2人(结对编程,互相测试),质量过程管理人员1人。
  3.3 测试用例设计
  项目经理在需求分析的同时,也针对性地设计出各个需求项对应的测试用例,用自然语言来描述。
  如CAN数据接收的功能,项目经理无需考虑软件如何实现,参考用户给出的协议,编制若干组数据,这些数据一部分是符合协议的,也包括一些杂乱无意义的数据。对应前述各功能项,项目经理设计测试用例,选取典型的测试用例,见表3:
  显然,项目经理是站在用户的角度设计出上述测试的,如果测试能够通过,也就能满足用户将来验收时的要求,至于三个性能需求,是用户提出的强制性的约束条件,但都是可以通过仪器或代码走查验证的,项目经理如果发现生成的目标代码有任何一条性能指标不满足要求,即要求开发人员通过优化设计来重构代码。
  4 采用測试驱动开发的效果
  以往航天型号软件的研制流程是基于体系结构驱动,先做设计,再做测试。设计是根据需求导出,有时会偏离用户需求,在实际工程中,用户也会经常改变已有需求,会新增需求,也会废弃已有的需求,每次更改代码都带来巨大的工作量和风险。而在这个项目中采用了测试驱动开发方式后,对照以前未采用测试驱动开发的同等软件,在缩短软件开发周期和减少软件潜在缺陷方面取得了一定进展
  【参考文献】
  [1]刘赟.测试驱动开发探讨[J].电脑开发与应用,2006年,第19卷第8期:P12-16
  【作者简介】
  朱琦,1978年生,男,汉族,浙江绍兴,上海航天技术研究院工作,工程师,主要研究为嵌入式软件开发。
其他文献
【文章摘要】  增值税是我国现行税制中的第一大税,但人们对增值税会计的研究并没有引起重视,认为增值税会计只是财务会计的一小部分,没有将其看成一套完整的会计核算体系。尽管我国的增值税会计一直在完善,但其核算方法与会计核算的一般原则仍存在很多的不足,所以有必要对增值税会计的核算方法加以改进。  【关键词】  增值税;差异  1 我国增值税会计的研究现状  增值税是以增值额为课税对象,以销售额或营业额为
期刊
【文章摘要】  本文分析了高校计算机实验室的应用范围和目前日常管理中存在的不足,总结出了高校目前使用的计算机实验室管理系统的模式,以“理论与实践一体化”教学理念为基础设计和实现了计算机实验室综合信息管理系统,使计算机实验室能高效和可靠运行。  【关键词】  计算机;实验室;管理系统  0 引言  目前,改革实验教学内容、方法和手段,建立适合素质教育的实验教学与管理模块,是进行实验室建设、提高高校人
期刊
【文章摘要】  文章针对构建一个大学生就业求职网站的基本功能进行研究和设计,目的为大学毕业生和用人单位架起一座桥梁,提供给企业和学生一个交流的平台,功能实现包括毕业生注册个人基本信息和求职意向,对个人信息的维护,可以向指定的企业投简历。用人单位注册企业概况和招聘条件,对企业信息的维护,可以通过电子邮件与满意的求职者联系。网站管理者负责信息的审核,对不符合网站要求的用户与信息进行后台清理。  【关键
期刊
【文章摘要】  煤炭行业会计信息披露的内容和方式一直都是煤炭企业会计工作者研究的重点,本文首先对煤炭行业会计信息披露的存在的问题进行分析,并针对存在的问题提出一些解决的措施。  【关键词】  煤炭行业;会计信息披露;会计  煤炭行业与其他的行业不同,煤炭资源在我国是储量最大的不可再生资源,对国家的经济增加、维持国家正常运转的重要保障之一,一旦缺煤很多的行业就会瘫痪,由此可见煤炭行业直接影响到我国经
期刊
【文章摘要】  近些年来,小微企业在增加国民收入方面,起着重要的作用和意义,同时它可以推动企业创新改革,帮助提高就业率从而维护社会的稳定。本文基于小微企业在经济发展中的重要地位和当前的中原经济崛起的经济背景,通过对其融资现状和融资难的原因分析,采用文献法、统计分析法等进行研究,探讨如何缓解小微企业融资难问题的方法与途径,并提出政府应进一步加大政策扶持等等的一些合理化建议。  【关键词】  小微企业
期刊
【文章摘要】  随着社会水平和经济的不断发展,人们对保险的要求也越来越高。社会多元化的格局正在逐渐形成,这对于保险公司来说,既是一种机遇,也是一种挑战,这种多元化的社会格局也给财产保险带来了一定的问题。可以看到,现今的财产保险行业,大多数仍然使用传统的经营模式,经济理论、产品更新频率和细节方面的工作已经基本无法跟上社会发展的脚部和人们的需求。所以说,财产保险行业应该进行制度上的改革,各种收入和费用
期刊
【文章摘要】  伴随着高科技会计电算化及网络会计的普及,会计系统的内部控制越来越受到人们的关注,会计核算和会计管理的环境都发生了很大的变化,由于电算化会计系统的特殊性,使得建立一整套适合电算化会计系统的内部控制制度就显得尤为重要。  【关键词】  电算化;会计;控制  随着计算机和现代信息技术在会计中的广泛运用,会计工作经历了从手工会计到电算化会计的发展过程。会计数据处理的工具也从算盘等发展到计算
期刊
【文章摘要】  利用虚拟专用网络VPN技术,将计算机远程终端通过Internet接入公司企业网,从而实现远程网络用户对企业内部信息资源的安全访问。  【关键词】  虚拟专用网;VPN;网络安全  1 VPN技术简介  VPN(Virtual Private Network)即虚拟专用网络,指的是依靠ISP(Internet服务提供商)和其他NSP(网络服务提供商)在公用网络中建立专用的数据通信网络
期刊
【文章摘要】  在现代企业管理模式下,合规管理与业务管理、财务管理并称企业管理的三大支柱。合规是指企业的经营活动必须符合法律法规、商业道德、社会伦理。合规是企业履行社会责任的基础,也是控制风险、构建和谐社会的必然要求。同时也是税务事业持续健康(科学)发展、履行经济管理活动的特殊使命的法定义务。合规管理是从法律和商业道德的角度出发告诉企业“怎么做”,“如何前瞻”以及以“建立企业的长期目标”为基础,达
期刊
【文章摘要】  本文利用Web挖掘的方法和技术对用户所访问的页面序列进行挖掘,构建路径优化的模型,实现对当前站点排序方式的优化,从而最大限度地优化用户访问体验,提高当前站点信息获取的整体效率。  【关键词】  路径优化;Web挖掘;访问序列  传统的Web网站以系统自身为中心,为了容纳大量的信息,以图结构组织网站,页面之间存在着比较复杂的层次关系。这些预先设计好的浏览路径(网站的结构)严格按照设计
期刊