




已阅读5页,还剩47页未读, 继续免费阅读
(信号与信息处理专业论文)环境控制系统的软件自动化测试平台设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 环境控制系统是对封闭环境进行环境调节的软硬件综合系统,主要用来调节 载人航天器封闭舱中的环境。目前,提供航天员太空生存环境的环境控制系统, 功能越来越强大,而结构也越来越复杂。那么,要保证环境控制系统的高安全性 和高可靠性,就必须对其进行科学地完备地测试,尤其是对它的功能性软件的测 试。 环境控制系统的功能性软件测试尚处于手工测试阶段,效率低下。本文有限 度地引入了自动化软件测试的方法,极大地提高测试的效率。环境控制系统软件 测试其实是嵌入式软件的测试,需要考虑主机环境和目标机环境的交叉测试,比 一般的应用软件多了软硬件交互的测试步骤。本文在对自动化软件测试和嵌入式 软件测试的特点进行了深入分析后,再结合环境控制系统的结构功能,给出了整 个测试平台的设计方案。 关键字:环境控制系统软件测试嵌入式测试自动化测试 a b s t r a c t a b s t r a c t e n v i r o n m e n t a lc o n t r o ls y s t e mi su s e dt oc o n 仃0 1ac l o s e de n v i r o n m e n t w h i c h m a i n l yb eu s e dt or e g u l a t et h ee n v i r o n m e n to fam a n n e da i r c r a f tc a b i n a tp r e s e n t , m a n n e ds p a c ef l i g h to fc h i n ai si nt h es t a g eo fr a p i dd e v e l o p m e n t t op r o v i d et h el i v i n g e n v i r o n m e n t f o ra s t r o n a u t si ns p a c e ,t h ee n v i r o n m e n tc o n t r o ls y s t e m ss h o u l db em o r e p o w e r f u l ,w h i l ei t s s t r u c t u r eh a sb e c o m ei n c r e a s i n g l ys o p h i s t i c a t e d e n v i r o n m e n t a l c o n t r o ls y s t e mm u s tb em o r es t r i c t l yt e s t e d ,e s p e c i a l l yi t se m b e d d e ds o f t w a r e t h ef u n c t i o n a ls o f t w a r et e s t i n go fe n v i r o n m e n t a lc o n t r o ls y s t e mi ss t i l lm a n u a la n d i n e f f i c i e n t am e t h o do fa u t o m a t e dt e s t i n gh a sb e e ni n t r o d u c e db yt h i sp a p e r , w h i c h g r e a t l yi m p r o v e dt h ee f f i c i e n c yo ft h es o f t w a r et e s t i n g e n v i r o n m e n t a lc o n t r o ls y s t e m s o f t w a r et e s t i n gi se m b e d d e ds o f t w a r et e s t i n g ,w h i c hn e e dt oc o n s i d e rt h eh o s t t a r g e to r c r o s s t e s tt e s t i n g t h ec h a r a c t e r i s t i c so nt h ee m b e d d e ds o f t w a r et e s t i n ga n da u t o m a t e d t e s t i n gh a v eb e e na ni n - d e p t ha n a l y s i s c o m b i n e d 、析也s t r u c t u r ea n df u n c t i o no ft h e e n v i r o n m e n t a lc o n t r o ls y s t e m ,t h et e s tp l a t f o r md e s i g nh a sb e e nc o m p l e t e d k e y w o r d :e n v i r o n m e n t a lc o n t r o ls y s t e m s o f t w a r et e s t i n g e m b e d d e d t e s t i n g a u t o m a t e dt e s t i n g 西安电子科技大学 学位论文独创性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果:尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:幺! = l ! 强日期:墅竖! 旦! 兰旦 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 本人签名:主达! 强 导师签名: 日期:望i 垒! 旦! 圣旦 日期:出竺全厶碰 第一章绪论 第一章绪论 1 1 环境控制系统基本原理及应用 环境控制系统是根据环境的变化,通过对相关阀门的打开或关闭操作来调节 环境的一套逻辑控制系统。首先,系统要周期性地采集周围环境的各项参数数据, 并对参数做相应的处理和判断。然后,若某一项或多项参数数据超出允许的阈值, 则打开相应的阀门进行调节,直到参数数据在合理的范围之内,然后关闭阀门。 如此循环往复运行,始终使环境处于正常状态。 环境控制系统的基本原理其实就是: 对阀门的操作来强制性地调节周围环境, 周期采集周围的环境参数数据,再通过 使之动态地保持在一个适宜的环境下。 由于环境有很多的参数指标,而且各项参数指标之间相互联系,因此环境控 制系统的逻辑结构就会非常复杂。那么,设计一个合理的环境模拟系统,来为环 境控制系统提供完备的外部环境变化情况,这是必不可少的。这样可以尽可能地 模拟各种环境的变化情况,达到对环境控制逻辑的充分检验。 环境控制系统主要是针对封闭环境进行调节的。当前主要应用于宇宙飞船, 空间站等封闭舱的环境调节系统。 1 2 环境控制系统的现状及发展 2 0 0 3 年1 0 月,“神舟五号”上天,把航天员杨利伟成功送上太空而后安全着 陆,使中国一举成为继苏联和美国后的第三个拥有载人航天能力的国家,开启了 中国航天新的篇章【l 】。2 0 0 5 年1 0 月,“神舟六号 成功发射,中国的两名航天员 费俊龙和聂海胜登上太空。2 0 0 7 年1 0 月,“嫦娥一号 卫星发射成功,并传回月 球照片。2 0 0 8 年9 月,“神舟七号”发射成功,航天员翟志刚成功出舱并实现中国 人的首次太空行走。往后,我们的航天人还有更远大的目标,要建立中国人自己 的空间站,以及伟大的“嫦娥工程”等等,中国航天人前进的脚步永不停止。 在所有的载人航天项目中,环境控制系统为航天员提供舒适的生存环境。在 早前的载人航天器里,环境控制系统相对简单,因为早期的“神舟五号 到“神 舟六号只是在太空短暂的停留。但是,以后中国的空间站和“嫦娥工程则需 要航天员长时间在航天器中生存。这就需要给航天员提供更加舒适的生存环境, 使航天员能够长期地在太空驻留,这同时也给环境控制系统提出了更高的要求。 也就是说,环境控制系统的功能将越来越强大,而环境控制系统本身将越来越复 2 环境控制系统的软件自动化测试平台设计 杂。环境控制系统同时要不断增进自动化程度,以减轻航天员的工作负担,因为 不可能让航天员经常亲自操作控制阀门来调节周围环境。 此时,又要保证环境控制系统的可靠性和安全性,那么,对环境控制系统的 测试,尤其是嵌入式软件的测试就显得越发重要,也成为一个重要的课题。例如: 美国执行探测金星任务的“水手1 号 飞船就是没有做好充分的软件测试,致使 控制飞行姿态的计算机程序发生故障,最终导致发射任务以失败而告终【2 】。 1 3 课题的研究背景和意义 本文的研究课题正是基于当前中国载人航天大发展的大背景下提出的。航天 工程需要设备和软件的高可靠性、高稳定性和高安全性,所以对嵌入式软件要进 行尽可能全面和充分地测试。现在,对嵌入式软件的黑盒测试,还主要停留在手 工测试的阶段。也就是测试人员根据需求文档,先用自然语言写出测试用例,再 手动输入测试用例数据,然后用肉眼观察用户界面,用耳朵倾听系统提示音。整 个测试过程非常缓慢且耗费大量精力,还可能因为人为的因素而导致错误。 解决上述问题最有效的办法是引入自动化测试,把计算机可以完成的任务让 计算机完成,从而给测试人员腾出更多的时间来开发好的测试用例。自动化测试 可以自动对结果进行分析并生成报表,同时对测试过程的异常情况进行记录。测 试人员可以根据报表来分析可能产生问题的原因,也可以根据报表手动操作来重 演异常过程,重新观察曾经出现的异常情况。所以说,采用自动化测试能够极大 地提高软件测试的效率和准确性。 随着环境控制系统的不断发展,开发一套完整的兼容的环境控制系统软件自 动化测试平台是非常必要的,它是环境控制系统的可靠性和安全性的重要保证。 1 4 论文的研究内容与组织结构 本课题研究并设计了对环境控制系统的软件自动化测试平台。首先对软件测 试和自动化的概念和方法进行了概要描述,包括自动化测试的对象和优缺点,还 有自动化测试的方法和流程,其中软件测试方法重点介绍了黑盒测试法。本课题 研究的主要内容是用黑盒测试法来设计并实现环境控制系统的自动化测试,对嵌 入式软件测试的特点也做了阐述并给出了解决办法。最后,对测试平台的整个框 架分别进行了总体地和详细地阐述。 论文一共分为六章,各章内容安排如下: 第一章,绪论。主要介绍了环境控制系统的原理、现状及发展情况,并阐明 了本课题研究的背景和意义,简要介绍了课题研究的主要内容。 第一章绪论 第二章,软件测试。该章先分类介绍了各种软件测试方法,把白盒测试法与 黑盒测试法进行比较分析,并对功能性测试进行了详尽地描述。同时,简要阐述 了测试用例的特点和重要性,对整个软件测试活动过程进行了比较详尽的阐述。 第三章,环境控制系统自动化软件测试。先介绍了环境控制系统的特点,一 是嵌入式软件测试,二是可以自动化的部分比较多。随后介绍了嵌入式软件测试 的特点和解决办法,对自动化测试的概念以及对象也进行了简要地阐述。 第四章,测试平台功能分析和总体设计。本章介绍了测试平台的开发环境和 工具,对环境控制系统的结构和功能进行了深入分析,并得出了对测试平台的总 体需求分析,进而提出了测试平台的总体设计方案。 第五章,测试平台模块设计和实现。对第四章的总体设计框架进行细化,将 之化分为接口设计、激励源设计、模拟阀门开关动作设计和关键数据注入模块设 计等四个模块,并各自做了详细描述。对设计中出现的一些关键问题,也提出了 比较合理的解决方案,对测试结果的分析也做了简要说明。 第六章,结束语。对整个论文工作做了总结,并提出了进一步的研究目标。 第二章软件测试 第二章软件测试 本章介绍了软件测试的定义和测试用例的基本概念。研究了软件测试的各种 方法,阐述了黑盒法和白盒法的概念与特点。重点介绍了功能性测试( 即黑盒法) 的方法。对测试方法的选择标准也做了分析说明,最终选择黑盒法作为本测试平 台的测试方法。最后,介绍了整个软件测试活动的工作流程,并明确了所有参与 人员在测试过程中的合作与分工。 2 1 1 软件测试定义 2 1 软件测试相关概念 i e e e ( i n s t i t u t ef o re l e c t r i c a la n de l e c t r o n i ce n g i n e e r s ) q b 对测试的定义:使用人工 或者自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的 需求或是弄清预期结果与实际结果之间的差别【3 】。 软件测试的目的:第一是确认软件的质量,其一方面是确认软件做了你所期 望的事情( d ot h er i g h tt h i n g ) ,另一方面是确认软件以正确的方式来做了这个事件 ( d oi ti i g h t ) 。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为 风险评估所准备的信息。第三,软件测试不仅是在测试软件产品的本身,而且还 包括软件开发的过程1 4 。如果一个软件产品开发完成之后发现了很多问题,这说明 此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件 开发过程是高质量的【5 1 。 软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性 能是否符合开发之前所提出的一些要求的。软件测试在软件生命周期中占据重要 的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产 品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新 的观点,即认为软件生命周期每一阶段中都应该包括测试【l l 】,从而检验本阶段的 结果是否接近预期的目标,尽可能早的发现错误并加以修改,如果不在早期阶段 进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。由于测试工作 的重要性和复杂度,测试慢慢地独立发展成为一个行业,并且在迅猛发展。在典 型的软件开发项目中,软件测试工作量往往占软件开发总工作量的4 0 以上。而 在软件开发的总成本中,用在测试上的开销要占3 0 到5 0 t 6 1 。 6 环境控制系统的软件自动化测试平台设计 2 1 2 测试用例 测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果, 测试用例是执行的最小实体。测试用例选取的好坏往往是衡量软件测试成功与否 的关键因素。 软件测试技术的关键部分是找到合适的测试用例,以便发现尽可能多的软件 缺陷。测试用例的好坏衡量有四个标准:第一个是有效性,是否能发现缺陷;第 二个是可仿效性:一个测试用例可否测试多项内容,从而减少测试用例的数量; 第三个是经济性:测试用例的执行、分析和调试是否经济;第四个是可修改性: 每次软件修改后对测试用例的维护成本。 测试用例有以下特征: ( 1 ) 最有可能抓住错误的; ( 2 ) 不是重复的、多余的; ( 3 ) 测试用例之间相互独立、不相关; ( 4 ) 一组相似测试用例中最有效的。 设计测试用例时要求的三个基本准则: ( 1 ) 测试用例的代表性,能够代表并覆盖各种合理的和不合理的、合法的和 非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。 ( 2 ) 测试结果的可判定性,即测试执行结果的正确性可以判定,每一个测试 用例都应有相应的期望结果。 ( 3 ) 测试结果的可再现性,即对同样的测试用例,系统的执行结果应当是相 同的。 测试用例要包括待测试的功能、应输入的数据和预期的输出结果。测试数据 应该选用少量、高效的测试数据进行尽可能完备地测试。基本目标是:设计一组 发现某个错误或某类错误的测试数据,测试用例应覆盖方面: ( 1 ) 正确性测试:输入用户实际的操作数据以验证系统是否满足需求规格说 明书的要求。测试点应该保证至少能够覆盖需求规格说明书中的所有功能,并且 还能正常运行。 ( 2 ) 容错性测试:程序在接收到正确数据输入时,能够产生正确( 预期) 的 输出;在接收到非法数据( 非法类型、不符合要求的数据、溢出数据等) 时,程 序应能够给用户提示并做相应处理。等同于把自己想象成一名对产品操作一点也 不懂的客户,在进行随意操作。 ( 3 ) 完整性测试:对未经授权的人使用软件系统或数据的企图,系统能够控 制的程度。 第二章软件测试 ( 4 ) 接口测试:对各个模块相互间的协调和通信情况进行测试,以及对数据 输入输出的一致性和正确性进行测试。 ( 5 ) 数据库测试:依据数据库设计规范对软件系统的数据库结构、数据表及 其之间的数据调用关系进行测试。 ( 6 ) 边界值分析法:在边界处的测试用例最容易检测出问题。因此,在系统 的测试过程中,输入一些合法数据或者非法数据,主要在边界值附近选取,这样 发现缺陷的几率往往比较高。 ( 7 压力测试:输入1 0 条记录运行各个功能,输入3 0 条记录运行,输入5 0 条记录运行依次类推,不断增加测试的强度,用这种方法来检测软件的承受 能力。 ( 8 ) 等价划分:把所有可能的数据输入( 有效的和无效的) 划分成多个等价 类。按等价类划分来编写测试用例,非常有利于进行测试结果的判断。 ( 9 ) 错误推测:主要是根据测试人员的测试经验,参照以往的测试工作中经 常出现错误的地方,来设计测试用例。 ( 1 0 ) 效率:完成一定的功能,系统要运行的时间。 ( 1 1 ) 可操作性:理解和使用该系统的难易程度,即界面友好性。 ( 1 2 ) 兼容性:在不同操作系统及硬件配置情况下的运行情况。 ( 1 3 ) 回归测试:按照测试用例将所有的测试点测试完以后,测试中发现的 问题让开发人员进行解决,而后进入下一轮测试。 ( 1 4 ) 比较测试:将已经发版的类似产品或原有的老产品与测试的产品同时 运行比较,或与已往的测试结果比较【6 】。 2 2 1 软件测试方法分类 2 2 软件测试方法 软件测试的方法和技术是多种多样的。对于软件测试技术,可从不同的角度 加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测 试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试、黑盒 测试和a l a c 测试,划分的框架图如下: 环境控制系统的软件自动化测试平台设计 图2 1 软件测试方法分类 1 黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能的 情况下,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一 个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者 在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使 用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息 ( 如数据库或文件) 的完整性。“黑盒 法着眼于程序外部结构、不考虑内部逻辑 结构,针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所 有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实 际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些非 法但是可能的输入进行测试。 黑盒测试的优点有: ( 1 ) 比较简单,不需要了解程序内部的代码及实现; ( 2 ) 与软件的内部实现无关; ( 3 ) 从用户角度出发,能很容易知道用户会用到哪些功能,会遇到哪些问题; ( 4 ) 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能; ( 5 ) 在做软件自动化测试时较为方便。 黑盒测试的缺点有: ( 1 ) 不可能覆盖所有的代码,覆盖率较低; ( 2 ) 自动化测试的复用性较低。 2 白盒测试 第二章软件测试 9 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程的,可 通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内 部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不 管它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 “自盒 法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。自盒” 法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检 查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数目是非常庞大的。但 即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违 反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程 序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错 误。 白盒测试的直接好处是:知道所设计的测试用例在代码级上哪些地方被忽略 掉。它的优点是:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现 代码中隐藏的问题。 白盒测试的缺点有: ( 1 ) 程序运行会有很多不同的路径,基本不可能测试所有的运行路径; ( 2 ) 测试基于代码,只能了解测试开发人员做的对不对,而不能知道设计的 正确与否,可能会漏掉一些功能需求; ( 3 ) 系统庞大时,测试开销会非常大。 3 a l a c ( a c t 1 i k e a - c u s t o m e r ) 测试 可能会有 多错误 而用户遇到的只 是很小一部分 改进测试的有效性,使测试针对 那些客户最容易遇到的问题 图2 2 刘l a c 测试 a l a c 测试是一种基于客户使用产品的经验开发出来的测试方法。a l a c 测 试是基于越复杂的软件产品越可能出现错误的原则。最大的受益者是用户,缺陷 l o 环境控制系统的软件自动化测试平台设计 查找和改正将针对那些客户最容易遇到的错误【7 】f 8 1 。 2 2 2 功能性测试方法 本测试平台主要是针对环境控制系统的各项功能测试而设计的,对该软件系 统的内部基本上无所知,所以主要进行功能性测试,即黑盒测试法。任何程序 都可以看作是将从输入定义域取值映射到输出值域的函数,将系统看成黑盒,又 称为黑盒测试,黑盒的实现是不需要了解的,只需要知道输入和预期输出。 功能性测试还有一些重要的特点: 1 功能性测试与软件如何实现无关,如果实现发生变化,功能性测试用例仍 然可用; 2 测试用例开发可以与软件开发同时进行,可节省软件开发时间,通过软件 的用例( u s ec a s e ) 就可以设计出大部分功能性测试用例。 黑盒测试法的模型如下: 磬一” 铲”“_ + 缵 输出 寥照譬模等。,惫 髦 ,毳 一,纂 尹, 璧内部实现不可见。麓 翰;。籀女纛域i 磊? 毋锨:。基 图2 3 黑盒法 黑盒测试方法的关键是选取合理科学的测试用例。测试用例的设计和编写无 疑是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试必须遵 守的准则,更是软件测试质量稳定的根本保障【5 】。测试用例的设计方法主要有等价 类划分、边界值分析、因果图、错误推测法等f 9 】。 1 等价类划分 等价类划分是将程序的输入域或输出域的不同区间划分为不同的数据类,以 便导出测试用例每个等价类所揭示的程序错误都是等价的,要求此方法的测试用 例能各自发现一类错误,从而减少必须开发的测试用例数。 等价类划分包括有效等价类和无效等价类两种。有效等价类,是对程序的需 求说明来说是合理的,有意义的输入数据所构成的集合,利用它可以检验程序是 否实现了预期的功能和性能。无效等价类,是对程序的需求说明来说是不合理的, 没有意义的输入数据所构成的集合。利用它可以检验程序对于无效数据的处理能 力。 第二章软件测试 如果输入条件规定了取值范围,或者值的个数,则可以确立一个有效等价类 和两个无效等价类。 例如:数据范围是1 5 0 ,有效等价类为“ = 1 & & _ 5 0 ”,两个无效等价类为 “ 5 0 ”。 2 边界值分析 。 边界值分析法是一种补充等价类划分的测试用例设计技术。因为缺陷往往遗 漏在角落里,聚集在边界上,所以选取输入条件的边界区域作为测试数据比中间 的数据更加容易发现错误。边界值分析法不是对某个等价类随便挑一个数据做测 试数据,而是选一个或多个边界数据,使得该等价类的每个边界都被测试到,不 仅考虑输入数据,而且考虑输出数据。 如果输入条件或输出条件规定了值的范围并且有效条件包括了值的边界,可 分别对边界和略超出边界取值,例如: 数据范围是1 - - - x = 5 0 的正整数; 边界值则取为:1 、5 0 、0 、5 1 ; 如果输入条件或输出条件规定了值的范围并且有效条件不包括值域的边界, 可分别对边界和略偏向边界内的地方取值,例如: 数据范围是l x 图2 7 测试设计流程 测试开发定义:根据当初的测试设计来进行测试用例的编写、测试数据的准 备等与测试设计相关的工作活动内容。传递给测试开发人员的是待测软件、基于 测试需求的测试设计,测试开发人员应该输出的是测试过程和测试用例。 测试开发的目标是: ( 1 ) 创建可以重用的自动测试过程和测试用例 ( 2 ) 维护测试过程、测试用例与相关测试需求的一一对应。 测试开发技术可以分为两种: ( 1 ) 编程的方法。优势是具有较大的灵活性,缺点是,编程过程复杂。可以 用c c + + 或者j a v a 编程,此两种编程语言功能强大,而且很完备,对于功能复杂 的软件系统能够完全实现。 ( 2 ) 录制的方法。优势是操作简单、快捷,缺点是灵活性较差。可以利用测 试开发语言,譬如s q a 等,自动生成脚本1 6 1 。 综合分析环境控制系统的特性和复杂度,应该采用编程的方法。主要是因为 该系统相当复杂,可能会加入很多新的功能,某些功能在新版本中还会不断修改 更新。用编程的方法,可以很灵活的处理这些变动。 2 3 4 测试执行 测试执行是测试人员用测试开发工程师开发的测试软件来进行测试的过程。 1 6 环境控制系统的软件自动化测试平台设计 测试系统开发的顺序是:系统工程、需求分析、设计测试、编码开发。而测试执 行的顺序正好相反,如:单元测试、集成测试、确认测试、系统测试。 1 单元测试( u n i t t e s t i n g ) ,由编程的开发人员自行计划与完成的,针对单个 或相关联的一组程序单元的测试。应该由程序员( 待测软件编写人员) 自己完成, 主要采用白盒测试法。可以这么说,程序员有责任编写功能代码,同时也就有责 任为自己的代码编写单元测试。 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活 动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。在一种 传统的结构化编程语言中,比如c ,要进行测试的单元一般是函数或子过程。在像 c + + 这样的面向对象的语言中,要进行测试的基本单元是类。 经常与单元测试联系起来的另外一些开发活动包括代码走读( c o d er e v i e w ) ,静 态分析( s t a t i ca n a l y s i s ) 和动态分析( d y n a m i ca n a l y s i s ) 。静态分析就是对软件的源代 码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和执行。 动态分析就是通过观察软件运行时的动作,来提供执行跟踪,时间分析,以及测 试覆盖度方面的信息。 单元测试进行的时机是越早进行越好。在实际的工作中,可不必过分强调先 什么后什么,重要的是高效和感觉舒适。 单元测试的执行者:单元测试与其他测试不同,单元测试可看作是编码工作 的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的 代码,提交产品代码时也要同时提交测试软件代码。 2 集成测试( i n t e g r a t i o nt e s t i n g ) ,也叫组装测试或联合测试。在单元测试的 基础上,将所有模块按照设计要求( 如根据结构图) 组装成为子系统或系统,进行集 成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能 正常地工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影 响功能的实现。也就是应该考虑以下问题: ( 1 ) 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; ( 2 ) 各个子功能组合起来,能否达到预期要求的模块功能; ( 3 ) 一个模块的功能是否会对另一个模块的功能产生不利的影响; ( 4 ) 全局数据结构是否有问题; ( 5 ) 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。 因此,单元测试后,有必要进行集成测试,发现并排除在模块连接中可能发 生的上述问题,最终构成符合要求的软件子系统或系统。对子系统,集成测试也 叫部件测试。如何合理地组织集成测试,即选择什么方式把模块组装起来形成一 个可运行的系统,直接影响到模块测试用例的形式、所用测试工具的类型、模块 编号和测试的次序、生成测试用例和调试的费用。通常,有两种不同的组装方式: 第二章软件测试 一次性组装方式和增值式组装方式。 一次性组装方式( b i gb a n g ) 是一种非增殖组装方式( n o n i n c r e m e n t a l i n t e g r a t i o n ) ,也叫整体拼装。按这种组装方式,首先对每个模块分别进行模块测试, 然后再把所有模块组装在一起进行测试,最终得到符合要求的软件系统。 增殖式组装方式( i n c r e m e n t a li n t e g r a t i o n ) 又称渐增式组装。首先是对一个个模 块进行模块单元测试,然后将这些模块组装成较大系统,在组装的过程中边连接 边测试,以发现连接过程中产生的问题。最后逐步组装成为符合要求的软件系统。 3 确认测试( v a l i d a t i o nt e s t i n g ) 又称有效性测试。任务是验证软件的功能和 性能及其它特性是否与用户的要求一致。对软件功能和性能的要求在软件需求规 格说明书中已经明确规定,它所包含的信息就是软件确认测试的基础。 有效性测试是在模拟的环境下,运用黑盒测试的方法,来验证被测软件是否 满足需求规格说明书列出的需求。首先制定测试计划,规定要做测试的种类。还 需要制定一组测试步骤,描述具体的测试用例。通过实施预定的测试计划和测试 步骤,确定软件的特性是否与需求相符;确定所有的文档是否正确且便于使用; 同时,对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等, 也都要进行测试。在全部软件测试的测试用例运行完后,所有的测试结果可以分 为两类: ( 1 ) 测试结果与预期结果相符。这说明软件的这部分功能或性能特征与需求 规格说明书相符合,从而这部分程序被接受。 ( 2 ) 测试结果与预期结果不符。这说明软件的这部分功能或性能特征与需求 规格说明书不一致,因此要为它提交一份问题报告。 4 系统测试是把通过确认测试的软件,整体地作为基于计算机系统的一个元 素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一 起,在实际运行环境下,对计算机系统进行的一系列组装测试和确认测试。 系统铡试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不 符合或与之矛盾的地方。系统测试的测试用例应根据需求分析说明书来设计,并 在实际使用环境下来运行。 由于软件只是计算机系统中的一个组成部分,软件开发完成以后,最终还要 与系统中其它部分配套运行。系统在投入运行以前各部分需完成组装和确认测试, 以保证各组成部分不仅能单独地受到检验,而且在系统各部分协调工作的环境下 也能正常工作。这里所说的系统组成部分,除去软件外,还可能包括计算机硬件 及其相关的外围设备、数据及其采集和传输设备、掌握计算机系统运行的人员及 其操作等,甚至还可能包括受计算机控制的执行机构。 显然,系统的确认测试已经完全超出了软件工作的范围。然而,软件在系统 中毕竟占有相当重要的位置,软件的质量如何,软件的测试工作进行得是否扎实, 1 8 环境控制系统的软件自动化测试平台设计 势必与能否顺利、成功地完成系统测试关系极大。另一方面,系统测试实际上是 针对系统中各个组成部分进行的综合性检验。尽管每一个检验有着特定的目标, 然而所有的检测工作都要验证系统中每个部分均已得到正确地集成,并能完成指 定的功能。以下分别简要说明几种系统测试: ( 1 ) 恢复测试是要采取各种人工干预方式使软件出错,而不能正常工作, 进而检验系统的恢复能力。如果系统本身能够自动地进行恢复,重新初始化,检 验点设置机构、数据恢复以及重新启动是否正确。如果这一次恢复需要人为干预, 则应考虑平均修复时间是否在限定的范围以内。 ( 2 ) 安全测试的目的在于:验证安装在系统内的保护机构是否能够对系统 进行保护,使之不受各种异常状况的干扰。系统的安全测试要设置一些测试用例 谋略来检验系统的安全保密措施,检验系统是否有安全保密的漏洞。 ( 3 ) 强度测试是检验系统运行能力的最高限度。进行强度测试时,让系统 的运行处于资源的异常数量、异常频率和异常批量的条件下。例如,如果正常的 中断平均频率为每秒一到二次,强度测试设计为每秒1 0 次中断。又如某系统正常 运行可支持1 0 个终端并行工作,强度测试则检验1 5 个终端并行工作的情况。 ( 4 ) 性能测试检验安装在系统内的软件运行时的性能。这种测试常常与强 度测试结合起来进行。为记录性能,需要在系统中安装必要的测量仪表或是为度 量性能而设置的软件( r 或程序n :) 1 4 j f 6 】【1 2 】。 2 4 本章小结 本章主要对软件测试的方法和过程进行了阐述。先介绍了测试用例的定义极 其重要性,因为所有的测试方法的目的就是选取合理科学的测试用例。然后介绍 了测试的各种方法,并对功能性测试进行了详细说明( 本测试平台主要是功能性 测试) 。最后对整个软件测试活动进行了详细描述。 第三章环境控制系统自动化软件测试 第三章环境控制系统自动化软件测试 环境控制系统软件测试有两大特点: 1 系统软件为嵌入式软件。嵌入式软件的测试和纯软件的测试是不一样的, 有一些特殊的要求,往往要借助于中间的硬件设备。 2 功能比较复杂,重复性测试比较多,工作量大,有些操作是手工很难完成 的。故此引入自动化测试的方法,可以极大地提高软件测试的工作效率和准确性。 本章针对此两大特点,给出详细的特点描述和最终的解决方案。 3 1 嵌入式软件测试 在介绍嵌入式软件测试之前,先介绍软件工程的一些观点。现在,被普遍接 受的软件的定义是:软件( s o f t w a r e ) 是计算机系统中与硬件( h a r d w a r e ) 相互依存的另 一部分,它包括程序( p r o g r a m ) 、相关数据( d a t a ) 及其说明文档( d o c u m e n t ) 。其中, 程序是按照事先设计的功能和性能要求执行的指令序列;数据是程序能正常操纵 信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料【1 3 】。 嵌入式软件测试有其自身的特点和测试困难。由于嵌入式系统的自身特点, 如实时性( r e a l - t i m i n g ) ,内存不丰富,y o 通道少,开发工具昂贵,并且与硬件紧 密相关,c p u 种类繁多等等。嵌入式软件的开发和测试也就与一般商用软件的开 发和测试策略有了很大不同,可以说嵌入式软件是最难测试的一种软件【1 4 】【巧j 。 使用有效的测试策略是嵌入式软件测试唯一的出路,它可以使测试开发效率 最优化,同时避免目标系统的瓶颈,比如可以使用在线仿真器来节省昂贵的目标 资源。自从出现高级语言,开发环境与最终运行环境通常都是存在差异的,嵌入 式系统更是如此。开发环境被认为是主机平台,软件的运行环境则为目标平台。 相应的测试为h o s t t a r g e t 测试或c r o s s - t e s t i n g 1 6 】。 说到嵌入式软件测试首先就会碰到一个奇怪的问题:为什么不把所有测试都 放在目标机上进行呢? 因为若所有测试都放在目标平台上会产生很多不利的因 素: 1 测试软件开发可能会造成与嵌入式软件开发者争夺时间的瓶颈,避免它的办法 只有提供更多的目标环境,而目标环境一般上都是很昂贵的。 2 比起主机平台环境,目标平台环境通常是不方便的和不精密的。 3 目标环境可能还不可行。一般上,嵌入式软件开发与测试同嵌入式硬件开发是 并行的,这样才能缩短开发周期。此时,在目标平台还没有成形之前,必须在主 2 0 环境控制系统的软件自动化测试平台设计 机环境下进行嵌入式软件开发和测试。 4 提供给开发者的目标环境和联合开发环境通常是很昂贵的。 从经济上和开发效率上考虑,软件开发周期中尽可能大的比例应该放在主机 系统环境中进行,其中包括软件测试。对于嵌入式软件测试或叫交叉测试 ( c r o s s t e s t ) ,在测试的各个阶段有着通用的策略: 1 单元测试: 所有单元级测试基本上都可以在主机环境上进行,除非少数情况,比如特别 具体指定了单元测试必须直接在目标环境进行的情况。应该把最大比例的软件测 试放在主机环境下进行。 在主机平台上运行,其测试速度比在目标平台上快得多。当在主机平台完成 测试之后,可以在目标环境上重复作一些简单的确认测试,检验测试结果在主机 和目标机上有没有因为运行环境的不同而受影响。在目标环境上进行确认测试将 确定一些未知的、未预料到的、未说明的问题,这些问题很可能由于主机与目标 机的环境差异所致。例如,目标编译器可能有b u g ,但在主机编译器上没有。 2 集成测试t 软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在 目标环境上重复测试也是必须的,在此级别上的确认测试将确定一些因为运行环 境差异而导致的问题,比如内存定位和分配上的一些错误。 在主机环境上做集成测试,依赖于目标系统的具体功能有多少。有些嵌入式 系统与目标环境耦合得非常紧密,若在主机环境做集成是不切实际的。一个大型 软件的开发可以分几个级别的集成。低级别的软件集成在主机平台上完成有很大 优势,越往后的集成越依赖于目标环境。 3 系统测试和确认测试 所有的系统测试和确认测试必须在目标环境下执行。当然在主机上开发和执 行系统测试,然后移植到目标环境重复执行是很方便的。对目标系统的依赖性会 妨碍将主机环境上的系统测试移植到目标系统上,况且只有少数开发者会参与系 统测试,所以有时放弃在主机环境上执行系统测试可能更方便。 确认测试最终的实施舞台必须在目标环境中,系统的确认测试必须在真实系 统之下进行,而不能在主机环境下进行。这关系到嵌入式软件的最终使用【1 7 】【1 8 】, 毕竟嵌入式软件最终还是要在目标机上运行的。 3 2 自动化软件测试 在i t 业迅猛发展的今天,软件的规模和复杂度都不断增加,上千万行的大型 系统软件和上百万行的应用软件也已经屡见不鲜。软件规模和复杂度的不断增加, 第三章环境控制系统自动化软件测试 2 1 给软件测试造成了巨大的负担,传统的手工测试速度太慢、效率太低。 目前,许多软件管理人员和开发人员都面临着这样一个非常现实的问题:缩 短开发和测试周期、减少软件项目资源。同时,有许多软件项目的交付期限超过 了要求的最后期限,严重影响了单位或公司的信誉和市场竞争力。尤其在一些国 家的大型项目中,如果某一块软件系统的开发占用时间太长或软件质量不能保证, 很可能影响其他系统不能正常运转,最终可能造成整个项目的时间拖延,甚至导 致整个国家计划的延迟。 这种情况下,自动化测试技术自然而然成了软件测试领域非常热门的研究课 题。让计算机代替测试人员去完成繁杂和重复的测试工作,让测试人员腾出时间 去作下一步更有意义的工作,不仅减少了测试人员的工作负担( 长时间的机械的 手工测试) ,而且还极大地提高了测试的效率。 3 2 1 自动化软件测试定义 所谓自动化软件测试就是运行自动化测试程序( 用来模拟手动测试的步骤) , 监测和控制被测试软件的运行,并比较预期结果和实际结果,最终完成全自动或 半自动测试。 一般的测试技术和自动化测试技术是有差异的。测试技术研究的主要问题是: 测试如何发现尽可能多的缺陷,测试应该是高效率的,占用时间尽可能少且开销 小| 7 1 。这就要求测试用例尽可能的完备,自动化的程度和成分尽量高,尽量减少冗 余的重复的手工测试。但是,自动化测试技术只对测试的经济性和修改性有影响。 无论自动化程度有多高,如果测试本身是失败的,那么测试结果就将会毫无价值 可言,最终既费钱又费力,得不偿失。如果自动化测试方法合理科学,就会大大 降低测试的成本和周期。而且其开销只是手工测试的一小部分。自动化测试的方 法越好、程度越高,长期使用带来的收益就会越大【1 9 1 1 2 0 1 。 3 2 2 自动化测试的对象 软件测试的工作量很大,据统计,会用到4 0 的开发时间;一些可靠性要求 非常高的软件,测试时间甚至占到总开发时间的6 0 。但测试却是在整个软件过 程中极有可能用计算机来进行自动化的工作部分,原因是测试的许多操作是重复 性的、非智力创造性的、需要细致注意力的工作【2 1 1 。计算机就最适合于代替人类 去完成这些任务的。企业在这方面的投资,会对整个开发工作的质量、成本和周 期带来非常明显的效果。 自动化测试适应的领域包括: 环境控制系统的软件自动化测试平台设计 1 执行回归测试【2 3 1 。这是最显而易见的可以使用自动化测试的工作,尤其是 在软件经常进行版本更新的环境中。当新版本测试时,只需要几分钟时间启动已 有的测试用例即可自动完成对新版本的回归测试。 2 执行手工测试很难达到或手工测试无法完成的测试。企图使用手工执行大 规模的多用户并发测试是很难实现的,但是使用自动测试工具模拟多用户就是很 容易的事情了,用户场景测试随时都可以运行,测试执行人员不需要了解应用程 序的复杂业务逻辑。手工测试时,期望的输出通常包含明显的标志,可以让测试 人员识别。但是,有很多属性是很难由人工来确认的。例如:图形界面测试中, 界面操作经常会触发一些事件,但是并没有立刻输出结果。在这种情况下,测试 工具可以检测到事件被触发,并执行相应的操作。性能测试和压力测试通常使用 自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园智能服务管理系统开发协议
- 人工智能医疗诊断合作协议
- 公司合作经营协议合同协议书
- 合作社农产品销售与品牌建设合同
- 浙江国企招聘2025绍兴市镜湖开发集团有限公司下属国企招聘11人笔试参考题库附带答案详解
- 浙江国企招聘2025丽水青田经济开发区投资发展有限公司招聘6人笔试参考题库附带答案详解
- 2025苏能(锡林郭勒)发电有限公司招聘12人笔试参考题库附带答案详解
- 2025浙江丽水市雷博劳动事务代理有限公司招聘派遣制员工4人笔试参考题库附带答案详解
- 2025江西格润新材料有限公司招聘操作工等岗位12人笔试参考题库附带答案详解
- 2025广西南宁威宁集团第一季度招聘27人笔试参考题库附带答案详解
- 小主持人社团教案
- 2023年贵州省初中学业水平考试物理中考试卷真题(答案详解)
- 2017版《水利水电工程单元工程施工质量验收评定表和填表说明》(下册)
- 城市水污染的现状及治理建议分析
- 电子CAD技能试题(4)555振荡器
- DBJ51T 189-2022 四川省建设工程施工现场安全资料管理标准
- 高中英语-A Journey of Discovery教学课件设计
- 开封废金属回收有限责任公司新建报废汽车拆解线项目环境影响报告
- 2023学年完整公开课版指数函数
- 哈尔滨市早市现状调研及分析
- 绘本故事 第一次上街买东西
评论
0/150
提交评论