软件测试左移理论分析及其拓展应用

来源 :科技信息·上旬刊 | 被引量 : 0次 | 上传用户:xutao6310794
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:广东省深圳市已经成为中国电子机械制造行业的中心,甚至也可以说是世界最重要的制造业中心之一。随着电子机械类产品的日趋复杂化、智能化,与电子机械类产品相关的软件规模以及需求也日趋扩大化。这一类软件和其他普通产品一样,都要经过严格的测试才可以最终大批量生产或者投入市场,本文的目的就是针对目前深圳大部分企业所采取的开发中后期大规模测试的现象,提出一种旨在开发前期就能发现产品缺陷,缩短产品开发周期以便应对多变的市场,减少大规模测试带来的高成本等目的而提出的一种新的测试理论。本文主要的内容包括对软件测试理论的介绍,软件测试左移的原因及目的,软件测试左移所需条件及具体操作案例,软件测试左移理论在其他行业的拓展应用。通过本文的介绍,我们可以看到电子机械类产品制造业测试方法的趋势,并可以引入其他领域应用的思考,进一步拓展出新的见解。
  关键词:瀑布开发模型(waterfall development model);敏捷开发模型(agile development mode);测试左移(shift left testing);測试右移(shift right testing);传统式软件测试左移(Traditional Shift Left Testing);迭代增量式软件测试左移(Incremental Shift Left Testing);敏捷式软件测试左移(Agile/DevOps Shift Left Testing);基于模型式软件测试左移(Model-Based Shift Left Testing)
  1 软件测试的背景
  在早期的软件开发设计中,软件功能和规模有限,通常都是开发设计人员独自完成软件构架、软件开发、软件测试和软件发布,并没有独立测试人员存在,也没有人系统的提出软件测试这个概念。但是随着近20年软件可以说深入了我们的生活当中,手机、电脑、汽车、甚至从电视机到洗衣机这种日常家电中软件都被广泛的应用,而且软件规模逐渐扩大、功能逐渐增多,随之而来的是软件开发设计中的缺陷也逐渐开始增多,应对缺陷开始占用开发设计人员大量的时间及预算,因此首先在很多大型电子和软件企业中提出了软件测试的概念,并逐渐形成了独立的软件设计检证和软件信赖性测试部门,并对软件测试这一领域进行持续深入的研究,正是在这一大背景下,测试左移的概念应运而生。
  2 软件测试左移理论的介绍
  在介绍软件测试左移之前,我们首先说明一下软件的常规开发设计测试流程,以便能更形象的介绍所谓左移的概念。现今软件开发工作主要有两种主要的开发模型。第一,瀑布式开发模型(waterfall development model),如图2-1所示,顾名思义,这种开发方式就像是瀑布一样,所有流程按照一定的顺序由上游向下游移动,并且整个过程是不可逆的。如图中所示的编码结束后就可以进入相应的测试阶段。
  第二,敏捷开发模型(agile development mode),也有很多时候被称作迭代或者螺旋测试方法,如图2-2所示,开发阶段被分为若干小的阶段,前一个小的阶段都经历设计、编码、测试、计划、分析后再进入下一个小的阶段,如此反复迭代从而达到最后预期的结果。
  通过介绍以上两种主要开发方式,我们可以看出无论是瀑布式开发方法还是敏捷开发方法,都有需求、设计、编码和测试的过程,下面我们就提出左移的概念。
  2.1 软件测试左移理论的基本内容
  如果我们把软件开发过程中除了测试以外的元素,需求、设计、编码放在如下图2-3所示的一条直线上以设计为原点就有了左和右的概念,我们把测试越靠近直线的左端称为测试左移(shift left testing),而把测试越靠近直线的右端称为测试右移(shift right testing)。顾名思义测试左移也就是尽量将测试工作向开发活动的初期阶段靠近,而不是被动的等待开发设计阶段完成后接受测试。
  2.2软件测试左移理论产生的原因
  导致软件测试左移这一理论产生的原因可以归纳为以下几点:
  第一、在早期的测试工作中,测试人员较少参与软件工程的初始计划,通常导致分配给测试的资源不足,致使测试工作不能顺利的进行。
  第二、许多需求、设计架构等前期工程本身就存在很多重大的缺陷,但是并没有被及早发现和修复,直到到了开发阶段的末期测试工作中才被发现,从而在需求分析、设计构架、编码工作上浪费了大量的时间和精力。
  第三、随着更多软件的产生和集成,后期调试(包括识别、本地化、固定和回归测试)变得越来越困难。
  第四,封装(面向对象的编程)使得在后期测试过程中执行白盒测试和实现高水平的代码覆盖测试变得更加困难。
  第五,修复缺陷的时间在后期被压缩的较短,从而增加了缺陷修复被推迟到下一个版本的可能性,从而产生了技术债务的冲击波,如此下去则可能导致整个项目陷入困境。
  通过合理地将测试工作左移可以很好解决或者缓解以上的五个问题。
  2.3 软件测试左移的类型
  在软件产品的开发设计生命周期中有四种测试左移的类型,包括传统式软件测试左移(Traditional Shift Left Testing)、迭代增量式软件测试左移(Incremental Shift Left Testing)、敏捷式软件测试左移(Agile/DevOps Shift Left Testing)、基于模型式软件测试左移(Model-Based Shift Left Testing)。
  2.3.1 传统式软件测试左移
  如图2-4是比较典型的软件开发的V型图,在V字的左端是开发设计的过程,其中包括了需求分析,具体设计以及编码的执行,而V字的右端是与开发设计过程对应的各个阶段的测试。所谓的传统式软件测试左移就是说我们将测试重点移向V字的底端,不再以传统的把系统测试和接收测试作为重点,取而代之,将测试重点放在软件的单体测试以及集合测试阶段。   2.3.2 迭代增量式軟件测试左移
  如图2-5所示,我们可以将迭代增量式软件测试左移理解成许多传统式测试左移的迭代。在很多大型复杂项目中对软件的可靠性要求很高,我们将开发周期分解为期间相对较短的少量工作包,而针对每一个包我们将测试重点放在单体及集合测试上,这样我们就通过各个块的传统式软件测试左移实现了整个项目的软件测试左移。这种方法通常应用于大型复杂的软件,尤其是与大型硬件系统相配套的软件。
  2.3.3 敏捷式软件测试左移
  如图2-6所示,敏捷式项目中有大量可以被称为短程的区间取代了上述两个测试模型中的单一区间和少数量相对敏捷式软件测试左移模型中较长的区间。当早期的一个或多个短程无法满足达到最基本的要求时,又或者采取测试驱动开发方式的时候,短程区间就有可能会被修正,每一个短程的测试左移都可以映射整个项目的左移。
  2.3.4 基于模型式软件测试左移
  上述的三种测试左移模型都集中在开发周期早期的软件测试上,直到软件存在以后才开始进行测试,然而极大地限制了测试发现代码错误的能力。这种软件存在之后开始测试的延迟极其令人不安,因为据权威机构统计在需求、架构和设计活动中就潜藏了45%到65%的缺陷。如图2-7所示,测试已经完全移到了V字的左端,对需求、构架、设计模型进行审查及测试。这种左移方式可以随时开始测试,而不会发生传统测试左移、迭代增量左移、敏捷测试左移的等待时间。
  3 软件测试左移所需条件
  第一个条件就是需要对整个项目的了解。我们在上一章中提到了四种不同的软件测试左移模型,具体我们使用哪一种左移模型并不是随意决定,而是要根据项目的实际情况,例如我们在做大型项目的时候就不适合采用敏捷式测试左移而要采用迭代增量式测试左移模型。
  第二个条件,就是需要从公司层面推进软件测试左移的实施。我们可以看到在测试左移的模型中,测试的重点已经由以前的系统和接收测试转换到了单体测试和集合测试,而基于模型式软件测试左移更涉及到了需求、架构和设计活动。如果没有整个开发周期中所有相关部门的参与,是无法实现测试左移。
  第三个条件,需要测试人员具有很大的知识面宽度。测试人员不仅要熟悉系统测试及接收测试的方法和内容,同时要能够熟悉开发设计人员进行的单体测试和集合测试的结果以便进行二次检查,另外对产品需求,软件构架等知识也要掌握才能开展基于模型式软件测试左移活动。
  表3-1,我们从项目、推进和人员三方面所需要具备的条件上,对传统测试和测试左移进行了比较。
  4 软件测试左移理论在其他行业的拓展应用
  以上我们简单的叙述了一下软件测试左移理论的背景、内容和类型,其实通过严谨的分析和思考我们可以将这一理论推广至其他领域和行业,比如硬件开发设计,如图4-1是一个比较典型的硬件开发的流程,其中包括分析阶段(需求调研分析),设计阶段(方案设计),实现阶段(原理图设计、PCB设计、结构设计),测试阶段(焊接调试、系统测试、小批量测试),从图中可以看出测试阶段主要集中在设计实现阶段之后,无法在设计阶段和实现阶段就排除掉可能隐藏的不良。我们可以将软件测试左移的思想引用到硬件设计当中,在分析阶段、设计阶段和实现阶段就进行审查及测试,在开发设计生命周期的早期阶段就发现不良现象,从而达到实现缩短开发设计时间,减少开发设计成本的目的。
  通过硬件开发的例子我们可以看出,其实这一思想可以应用于很多的领域。随着现在市场变化快,用户群体对产品的质量要求越来越高,人力成本的逐渐提高等外部环境的变化,我相信将来测试左移理论将会有更广的应用空间,也会带来意想不到的效果。
  参考文献:
  [1]Paul Bahrs(6 November 2014). “Shift Left:Approaches and Practices”. Retrieved 27 March 2015.
  [2]Dibbe Edwards(18 September 2014). “Enabling DevOps Success with Shift Left Continuous Testing”. Retrieved 27 March 2015.
  [3]Donald Firesmith(11 November 2013). “Using V Models for Testing”. Retrieved 27 March 2015.
  [4]Microsoft(2013). “Record and Playback Manual Tests”. Retrieved 27 March 2015.
  [5]P Mohan;A Udaya Shankar & K JayaSriDevi(2012). “Quality Flaws:Issues and Challenges in Software Development”. Retrieved 27 March 2015.
其他文献
摘要:农业土地规模经营工作的开展,可以为农业经济的发展和农业科技水平提供有效的支持。然而,在实际管理工作中可以发现,还存在很多问题制约农业土地规模经营的管理水平,致使农业经济的发展水平也受到一定的限制。针对此类问题,我们可以引进现阶段的先进技术,实现对智慧农业信息化的有效建立。为了保证农村土地规模经营的信息化水平,我们针对智慧农业信息化建设的可行性展开分析,最后对智慧农业信息化建设的路径进行阐述,
期刊
摘要:在目前这个经济发展的大国里,国家工业的发展离不开石油企业的发展,但是由于石油企业的特殊性质,石油企业需要用到大面积的土地,并且占地具有不定向选择性,所以对石油企业用地及土地的管理是非常重要的,本文主要从石油用地及土地管理的问题出发,深入探讨其解决方案。  关键词:石油企业;土地管理;解决对策  人类的生存离不开土地,但是大自然的土地是有限的,所以合理的進行土地管理是非常有必要的,但是针对目前
期刊
摘要:班主任在班集体建设中具有重要的导向作用。学生在学校生活中,班集体是学习、生活的重要环境。这个环境的好坏,对学生的思想品德有着直接的影响。因此,建设一个奋发向上,团结友爱,互助互学,纪律严明的班集体非常重要。有了这样的班集体,就能激励全班同学共同前进。本文就班主任的作用谈谈我的看法。  关键词:班主任;作用;体会  中图分类号:G625 文献标识码:B 文章编号:1006-5962(2013)
期刊
摘要:本文从医学影像学科经历多次变革的角度入手,分析在历次变革过程中其他领域的技术是如何融入医学影像当中并促进医学影像发展的,并以此为前提,总结现如今医学影像发展规律,从摩尔定律、人工智能、大数据和物联网的角度分析医学影像的发展,这些技术不但没有让医学影像学科终止,反而让其更具有生命力,在医疗行业中的作用越来越大,发展前景越来越广阔。  关键词:医学影像学;医学影像技术;信息学;学科建设  1.医
期刊
摘要:随着市场环境的逐步开放与信息技术的飞速发展,侵犯知识产权、不正当竞争案件频繁发生,给知识产权保护带来了挑战,阻碍了创新成果产业化进程。因此在新的发展阶段进行下需要采取有效的措施加强知识产权保护,从而推动创新成果产业化。基于此本文分析了强化知识产权保护及其对策。  关键词:知识产权;保护;对策  1、知识产权的概念  英文“intellectual property”、德文“gestiges
期刊
摘要:传统燃油汽车在使用过程中产生了大量的有害气体,并加剧了对不可再生石油资源的依赖。在当前资源有限、环境污染非常严重的情况下,发展新能源汽车已经成为了解决能源及环境问题、实现可持续发展的重要措施。在发展新能源汽车的同时,新能源汽车空调技术也在逐渐的发展,本文分析了新能源汽车常见的热泵式空调系统技术、燃料电池余热利用空调系统技术,以及比较新能源汽车空调系统与传统汽车空调系统的不同之处。  关键词:
期刊
摘要:随着我国城市化建设的不断开展,我国内陆的资源日益紧缺、环境逐渐恶化,环境与资源问题已经成为制约我国发展的主要影响因素之一,因此,我国为了实现可持续发展的目标提出了绿色发展的概念。要想提升我国经济发展的速度,保障我国实现可持续发展的目标,大力的开通和扩展水路运输,成为我国发展的一大方向,高水准的航标管理与航标服务是我国未来发展的必然需求。本文将从航标管理的内容入手,探究如何加强航标管理提升航标
期刊
摘要:随着经济水平的不断提高,人们对于生活品质的要求也越来越高。食品作为生活必需品,其经历着从对食品本身安全性的关注,到食品包装的安全性关注。食品安全作为目前备受关注的话题,在食品本身得到质量保证之后,食品的包装及包装制品的质量问题又成为新的关注点。塑料包装在市场上广泛应用,然而塑料包装对食品本身产生的影响也不容忽视,本文通过对塑料包装制品的作用及对塑料包装制品的危害入手,探讨食品塑料制品的质量控
期刊
摘要:近几年来,船舶在海上航行中状况频出,通过对船舶事故的分析,发现主要是由船舶搁浅所引起的,分析船舶搁浅的原因,发现主要是由于结构极限强度的不足。为了加强海上船舶的安全,保障人们的生命安全,必须重视结构的极限强度。结构极限强度在设计环节中最终确定,在船舶和海洋工程结构的设计中,结构的极限强度是设计环节的最后一步。这也是设计要求中最复杂的一步,通常采用模型类型的方法来帮助计算,以简化计算难度,提高
期刊
摘要:为了保证炼油加工类仪表能在自动化方面有良好发展,应认识到炼油加工类仪表性优化的重要性,并能结合石油化工类企业的发展规划以及技术需要,制定更为科学的炼油加工类仪表自动化发展方案。本文就炼油加工类仪表设备自动化特点以及趋势进行了分析。  关键词:炼油化工;仪表;设备;自动化;特点;趋势  炼油加工是现代石油化工产业中关键的一环也是石油化工生产过程的源头,因此在石油化工产业寻求发展的阶段中,也需要
期刊