软件开发试用期总结合集12篇

时间:2022-04-03 23:11:59

软件开发试用期总结

软件开发试用期总结篇1

1. 工作的主要内容

在这两个月的工作中,我的总体任务是协助苏薇做好武警黄金部队矿业权管理系统的后期测试,编码,修改,文档编写的工作,分解开来之后,我主要做了三件事:1.编写矿业权系统的各类文档;2.矿业权系统的编码及bug勘误工作;3.矿业权系统的测试工作。下面依照时间来对我的工作进行介绍。

初踏入职场,进入专业的软件制造公司,对我,一个没有接触过标准软件制作过程的新人来说,起步就是一个很大的难题。若直接做开发,则业务不熟练,代码不规范,弊大于利;若仅做学习,则不能跟上项目的步伐,不能以最快的速度融入工作中去。

在我还在忐忑自己到底要做什么工作的时候,任务已经下达了,首先进行矿业权系统的测试工作。这样的好处在于能够在测试的过程中,了解项目的整体布局,了解项目中的业务逻辑,了解项目中尚未完成的工作并以此作为下个阶段的工作目标。至此,入职工作顺利起步。

在对矿业权系统进行测试之后,暴露了系统的诸多问题,测试过程中发现矿权系统没有进行输入限定,为了解决这个问题需要对整个系统的数据进行整理,我的下一个任务就是编写矿业权系统的数据需求文档。在编写该文档的过程中,对矿权系统进行了更深入的了解,为之后的bug勘误工作奠定了一定的基础。

完成了矿业权系统的数据需求文档的编写之后,新的任务是对整个矿权的输入数据进行输入限定,在任务开始之处是极为困难的,幸而得到了同事们的帮助才得以顺利完成任务。任务虽然完成,但是对输入限定实现方法的一知半解以及任务完成过程中的不仔细,为之后发生的问题也埋下了苦果。

在对矿业权系统添加输入限定完成之后,进入了解决程序小问题的阶段,对矿权系统进行细微的缝补工作。这段时间是学习多于工作的,不同的问题督促我要每天和百度亲密接触数百次,又要劳烦诸位在百忙中的同事抽出时间来给我帮忙。虽然辛苦一点,但收获却是满满。

完成了系统的修补之后,我们的程序送到了四惠进行第一轮测试,在测试的一周里,我主要是补充网络编程的基础知识。

第一轮测试结果出来之后,我们项目组开始了紧张的第一轮矿业权系统bug勘误工作。拿到bug列表之后,发现有一小半错误皆是因我而起,输入限定问题很多,我也主动承担了输入限定部分的bug勘误工作。

第一轮bug勘误工作完成后,进行了第一轮了回归测试,测试结果已然不尽人意,仍然存在大量的问题需要修改,而且很多问题还是因我而起,输入限定仍然存在大量问题,再一次进行修改之后,我们的程序送到了十五所进行所检。

在进行所检之余,我又接到了新的任务,完成矿权系统的概要设计以及详细设计文档的编写。这两份文档已于9月2号编写完毕。

现阶段我的任务是根据所检的bug列表,对矿权系统进行回归测试。

2. 工作中失败的教训以及成功的经验

对于失败的教训要吸取,成功的经验要进行总结。我对成功的定义是:在保证质量的前提下完成既定的计划或目标就是成功。其他的所有结果都是失败。

成功的经验:

1) 敢于接受任务并想尽一切办法完成

入职两个月最大的收获就是敢于接受任务并想尽办法完成,每一个任务对于初入职场的我都是一个挑战,如何保质保量完成任务是最基本的要求。这两月最大的成功在于没有一次任务是拖沓的,每次都尽最大努力完成了任务。

2) 勇于承担错误,正视自身的问题

在这两个月的工作中可谓是错误不断,从文档的错别字这种小问题到矿权系统bug修改不正确导致崩溃这种大错误,暴露出来了很多的问题,我秉承着有错即改,下不为例的思想,正视自己的错误并积极改正,因此这也算是一个成功。

失败的教训:

1) 重视每一个细节,不要忽视小问题

在最初进行矿业权系统数据需求文档的编写的过程中,对某些页面的数据在数据库中没有存储的情况没有加以重视,在后期进行数据限定的时候,还要重新修改数据需求文档,造成了不必要的时间浪费。从这个事情上得到教训就是不要放过任何一个小问题,这个小问题可能导致之后的大问题。

2) 进行重复工作也不能大意

在对矿权系统进行输入限定的方法熟悉之后,都是重复性的工作,给每个页面,每个字段进行输入控制语句的添加,在进行了数个页面之后,出现了有的页面没有添加完整,或者提示语句不正确的情况,在后续的bug勘误中出现了大量此类问题,浪费了大量的时间和精力修改。从这个事情上得到的教训就是工作不能大意,重复性的工作更要完成好。一般重复性的工作第一次做不好,后续检查修改是非常浪费时间的。

3) 考虑问题要严谨

在对矿权系统bug勘误的过程中,对输入限定条件的判断出了问题,我想当然的按照我的主观思路对数据进行了限定,而在回归测试的时候出了问题,这些都是考虑不严谨的后果。这个事情的教训就是考虑不严谨直接导致问题推倒重来,影响了工作效率,而且很容易埋下隐患。

4) 注重用户体验

在矿权系统bug勘误的过程中,修改最多的在于坐标系统的提示语句,因为坐标系统不仅要求数据必须填入,而且每一个数据都有严格的格式限定,因此每一个错误提示的弹出都要本着如何让用户知道哪里错了为原则进行设置。在最初的限定里面,语句粗糙,弹出语句不明确,造成了用户使用的不方便,还得重新进行改造。这个问题的教训是一定要从用户的角度出发考虑问题,注重用户体验从简单的提示语句做起。

3. 展望下一阶段的工作

下一阶段短期内我们的工作主要针对矿权系统的使用的数据库变更来对我们的系统进行修改。我的工作任务主要是学习Oracle数据库和SQL数据库的使用上的区别,做好从SQL数据库向Ora

cel数据库的迁移工作。

这两个月的工作生活是充实且富有乐趣的,结识了很多同事和朋友,公司的氛围是非常轻松愉快的。感谢两个月来经理的关心,感谢部门同事的悉心指导,感谢公司各位同事的热心帮助,希望能在接下来的工作中能惩前毖后,总结经验,吸取教训,做到个人与公司共荣辱同进退,共同实现中地的辉煌。

【2】软件开发试用期工作总结

本人于20__年5月21日有幸成为我们上海互联网软件有限公司的一员,进入公司的电子政务实验室,担任软件工程师一职。按照公司制度,试用期于20__年8月21日结束。时光荏苒,转眼间我来到互联网已经三个月了。怀着激动的心情,我慎重写下这份转正申请,并且对我过去的这三个月做一个小小的总结。

初来乍到时,我被互联网融洽的工作氛围深深吸引了,我能够感受到这是一个朝气蓬勃,团结向上的团队。大家对我这位新面孔,也都报以热情的微笑,这让我很快适应了公司的工作环境。

进入公司后,首先在我们部门培训一周半,我的主要任务是尽快熟悉尚未深入学习的M领域。在XXX经理和同事们的帮助下,我很快就得以把全部精力投入到项目中来。在这个项目中,我用到了一些专业知识,与此同时让我更加欣喜的是,我也接触到了以前尚未真正接触的XXX(这里你自己改一下,或者加几句对这个技术的简单描述)知识,这在很大程度上满足了我学习新知识的渴求。专业和非专业上不懂的问题,我及时向同事学习请教,不断提高充实自己。虽然经验有限,难免遇到问题,但是我认为每一项工作都是一种锻炼,每一个困难都是一次机会,加上经理给我的指导,老员工的耐心帮助,使我在较短的时间内适应了新的工作环境下新技术的运用。在此,我要特别感谢我们的经理和同事对我的指引和帮助,感谢他们对我工作的提醒和指正。

在电子政务实验室的工作中,我一直用我们公司的“合作沟通主动一点”,“工作流程规范一点”的企业文化来严格要求自己,和共事同事默契配合,及时有效沟通;按照要求和规范及时完成手头的工作,同时注意拓展相关知识。这也是让我尽快融入我们互联网这个大集体的重要保证。

在过去的三个月里,除了技术上的进步,我最大的收获在于敬业精神和思想境界。我留意到同事们都是勤勉投入工作,认真完成任务,遇到问题及时互相帮助,彼此相处极为融洽,这些温暖的点滴让我这个新人对我们互联网极为有信心。

同时,在与大家的沟通过程中,我也学到了不少交际上的知识和处理方法,这对我非常受用;同时,对于记录待完成事件的办法,我也参考了同事的建议,因此在之后的工作中将会更加有效率。

此外,在这三个月的业余时间里,我也没有闲下来,继续保持我的求知习惯,经常阅读与我的岗位相关的技术书籍,同时也根据兴趣扩大阅读范围。因为我认为,书富如海,只有不断地有针对性地学习,才能让自己的头脑更加充实。

总之,在这三个月的工作中,我深深体会到有一个和谐、共进的团队是非常重要的,有一个积极向上、大气磅礴的公司和领导是员工前进的动力。感谢我们互联网给了我这样一个发挥的舞台,我要珍惜这次机会,为公司的发展竭尽全力。因此我也更加迫切的希望以一名正式员工的身份在这里工作,实现自己的奋斗目标,体现自己的人生价值,和公司一起成长。在此我郑重地提出转正申请,希望自己能成为公司的正式员工,恳请公司给我继续锻炼自己、实现理想的机会。我会用谦逊的态度和饱满的工作热情做好我的本职工作,为公司创造价值,同公司一起展望美好的未来!

【3】软件开发试用期工作总结

本人自20__年2月份参加工作至今,六个月的实习时间已经结束。在这段时间里,在领导和同事们的悉心关怀和指导下,通过自己的不懈努力,在各方面都取得了进步。

实践让我的技能不断增长,工作能力不断加强。刚开始工作的时候,发现自己以前在学校学习的知识很死,知识面很窄,以前做的练习项目的实用性也不是很好。在开始的几周公司给我们实习员工培训了XXXX平台的使用,通过这次培训使我认识到XXXX平台的优势,可以大大提高软件开发效率。随后我就加入到“XXXXX税源控管系统”项目的开发中,成为开发小组中的一员。在项目开发过程中一边是同事们的悉心指导,一边是自己反复琢磨与理解,几个月下来大大提高了自己业务和技术两方面的技能,已经能够比较熟练的掌握基本的工作方法和一些技巧,而且能够独立完成一些模块的开发。通过实践,我解决实际问题的能力得到了很好的锻炼。工作中也遇到了很多的以前没有遇到过的新技术,面对技术难题我总是直接面对,没有逃避,也因此自学了好多新的技术,大大提高了自己的自学能力,也加深了对自己工作要负责的信念。在项目开发过程中也遇到了一些自己确实无法解决的困难,在经理和同事的帮助下也顺利的解决了,在此表示感谢。在开发团队中,加强了自己的团结精神和集体感,对工作认真负责,对团队认真负责。通过这个项目不仅学习到了很多技术也了解了整个项目的大体流程,从需求分析、数据库设计、详细设计、代码编写、测试、项目维护等方面,使自己不仅从一个代码编写人员的角度还从一个整体的角度来看整个项目开发,加深了软件开发概念的理解。

不断学习使我对工作有了更进一步的认识和了解。不懂就学、就问,是一切进步取得的前提和基础。因为有大学专业课的底子和参加过专门的JAVA培训使我在工作过程中遇到的技术知识能更快的理解和掌握。工作中时常遇到新的问题,就需要查阅相关资料,请教同事和经理,一个问题一个问题的解决,一个困难一个困难的克服,不仅将原有知识温习巩固,产生新的理解,而且学到很多新知识,有了许多新的认识。但某些认识都还是肤浅的,还需要我在实践当中去不断深入地理解。

软件开发试用期总结篇2

中图分类号:TP311 文献标识码:A

0前言

自从IBM 360操作系统开发的失败以来,软件危机便进入人们的视野并备受关注。如今,在软件产业化发展的大趋势下,人们对软件的质量、成本和开发进度的要求也越来越高,质量控制的含义已经超越了传统意义上的软件测试的要求及规范。传统的软件测试大多是基于代码运行的,并且常常是在软件开发的后期才开始进行的。但大量研究表明,设计活动引入的错误占软件开发过程中出现的所有错误数量的50%~65%,因此,越来越多的声音呼吁,要求有一个贯穿于软件开发各个阶段的软件测试过程。

1软件测试的发展历程

按照时间划分可以把软件测试的发展史划分为5个阶段,这五个阶段分别是面向调试、面向证明、面向查错、面向评估以及面向预防的测试。1956年之前是面向调试的测试,是软件测试的第一个阶段。早期的开发过程中,由于软件规模小,软件测试是为了纠正软件的故障等同于软件调试。那时进行软件测试较晚,测试工作一般是由开发人员进行;面向证明的测试从1957年开始到1978年结束,是软件测试的第二个阶段。此时软件测试作为一种独立、客观地查找软件缺陷的活动,与调试区分开来。但是该阶段的软件测试虽然作为一门独立的学科,仍处于作为软件开发的辅助方法的萌芽阶段;软件测试的第三阶段是从1979年开始到1982年结束,称为面向查错的测试。在这一时期,软件人员设计和开发程序的逻辑越来越严密,不仅要考虑程序正常状态下的运行情况,也要考虑程序在各种错误操作和数据下的承受能力,软件测试促进了程序质量的提高。但是这一阶段对于软件测试的理解并不太成熟,往往过分强调找到软件中的错误;软件测试的第四阶段,即面向评估的测试,从1983年开始到1987年结束,该阶段的测试是面向评估的测试。在这一时期,软件测试不仅得到了蓬勃发展,而且软件测试的目的变得客观成熟;1988年至今,是软件测试的第五个阶段,即面向预防的测试。这一阶段测试是为了度量和提高软件的质量,对软件进行工程设计、实施和维护的整个生命周期过程。软件测试技术的研究取得了很大的突破,不仅出现了很多测试模型,而且也出现了很多商业化的测试工具。

2软件测试的理论基础

2.1软件测试的定义

软件测试是在软件生命周期内运用技术手段保证软件质量的一门学科。其主要内容包括软件验证技术、软件确认技术和软件测试管理技术这三大部分。软件测试是根据软件开发各阶段的规格说明和程序的内部结构精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。

2.2软件测试的目的

(1)测试是为了证明程序有错,而不是证明程序无错。

(2)一个好的测试用例在于它能发现至今未发现的错误。

(3)一个成功的测试是发现了至今未发现的错误的测试。

2.3软件测试的主要方法

随着软件测试技术的日臻成熟,软件测试方法与技术已经发展得较为完善,现今软件测试的方法很多,以下主要介绍几种常用的软件测试方法。

静态测试不对代码进行运行,而是借助专业的软件测试工具评审软件文档或程序,度量静态复杂度,通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性,借以发现程序的不足之处,降低程序出现错误的概率。静态测试包括代码审查、静态结构分析、代码质量度量等。

动态测试是通过人工或使用工具运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。该方法有三部分组成:构造测试实例、执行程序、分析程序的输出结果。

黑盒测试是在软件的功能知道的前提下,通过测试来检测每个功能是否正常使用,是一种验证性方法。测试的过程中程序的内部是不可见的,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。

白盒测试又称为结构测试,与黑盒测试不同,它是在知道产品的内部工作过程,检测产品内部动作是否按照规格说明书的规定正常运行、按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。

灰盒测试介于黑盒测试和白盒测试之间,主要用于测试各个组件之间的逻辑关系是否正确,重点在于测试程序的处理能力和健壮性,相对黑盒测试和白盒测试而言,投入的时间较少,维护量也较小。

3软件测试的评估

软件测试评估是在测试结束后对整个测试过程与产品进行评估的过程,主要包括对于测试工作的总结、缺陷数据的分析及测试过程的评估。

由图1可知,加入了测试评估的测试过程能形成一个完整的测试反馈系统,由此可见测试评估非常的重要。软件测试评估是对软件测试工作整体进展状况的监督和评价,是保证测试完整性和有效性的重要工作。软件测试评估贯穿于软件测试的整个过程,软件测试评估的方法主要包括覆盖评估和质量评估。

覆盖评估是对测试完全程度的评估,其建立在测试覆盖的基础之上,这通常与测试的定义相关,与完成计划的程度相关。在测试的过程中,一些关于发现测试缺陷本身状态的评估会展现出来,除此之外随着测试工作的推进,测试完成的量会越来越多,所有这些与缺陷相关的测试评估称为测试质量评估。质量评估是对测试软件的整体质量状况的评估,其建立在对测试的过程中发现的软件缺陷的分析和修复基础之上。它不断监控软件测试过程中总结出来的中间结果,然后通过对这些中间结果的分析又反过来对软件测试的过程进行指导。

4结语

虽然在近年来,中国的软件产业得到了飞速地发展,但国内很少开发出世界范围内通用的软件,且开发出的软件在性能和质量上也无法和国外大公司开发的产品相比较。软件测试作为软件开发过程中的一个重要环节,长期以来一直滞后于中国软件产业的发展。软件测试作为一种保障软件质量的一种技术,应该贯穿于软件生命周期的整个过程,通过严格的软件测试可以将软件中的错误减少到可以接受的程度,从而提高软件的质量。

参考文献

软件开发试用期总结篇3

软件测试贯穿于软件开发流程的各个角落,能够让工作人员及时在软件工程阶段中发现漏洞所在,确保最终交付的产品无论是功能还是性能,都能得到客户对品质的需求,软件测试需要在软件开发各个阶段进行,工作人员在进行软件测试的时候需要作出相应的软件测试文档。软件测试中质量管理尤为重要,产品需要满足验收交付要求,需要根据软件开发实际情况,从不同的角度进行度量,软件测试最主要的问题是软件质量问题,在保证质量的基础上从不同角度度量产品最终质量。有的人在软件测试时可以意识到重要性,但是却没有办法清晰地找到提升质量的有效方式,随着软件测试研究的深入,人们开始建立起软件质量度量模型。通过对模型的分析,得知软件质量从以下几方面衡量:(1)开发出来的软件是否符合用户的需求,软件整体结构是否良好,软件是否容易读取,修改是否容易;(2)软件系统有没有友好用户界面,用户在使用该软件的时候是否方便,需不需要进行其他操作;(3)软件生存周期内各个阶段文档是否齐全,存储是否得当,所有文档是否被规范配置管理,工作人员进行软件测试需要根据客户需求,以此作为参考,从对方的角度去看待产品,想象客户会如何使用产品,使用的时候可能会遇到什么问题。软件测试质量管理方面还需要进行软件质量保证,分阶段的对开发的软件进行科学评审,根据评审结果制定相应计划,将软件分成几个阶段,根据不同阶段呈现出来的特点制定评审要求。随后,工作人员在审查软件开发过程时,需要为每一个过程制定规范,不管是文档还是编程都要达到相应的规范需求,要求软件测试人员做好质量评估报告,内容丰富详细,评估软件测试的整个过程,对存在不足的地方提出有效改进建议。某测试工作人员在进行软件测试的时候,为了确保质量管理工作到位,特别完成了软件测试环境的科学搭建,由于不同的软件对测试环境有着不同角度的需求,如C/S及B/S架构相关的软件产品,测试人员会有不同操作系统,如Windows系列、Unix、Iinux甚至苹果OS等,这些测试环境都是必须的。对于一些嵌入式软件,如手机软件,如果测试人员想测试一下有关功能模块的耗电情况,手机待机时间等,可能需要搭建相应的电流测试环境。

2软件测试过程中的风险应对分析

2.1风险识别与风险量化

对软件进行项目风险管理,可以在最短时间内得到项目目标,项目风险管理以潜在风险最小化作为目标,软件测试项目风险管理中包含软件风险识别、软件风险量化、软件风险应对计划制定以及软件风险控制。其中,软件风险识别需要工作人员在软件测试项目风险管理开始之前进行,并在整个项目执行中不断完成,软件风险识别在项目整个生命周期以内属于连续过程。软件风险识别包含了风险来源确定、风险产生条件辨别,测试人员要详细表述风险特征,确定这些风险是否会影响到软件测试项目的正常运行,对于软件测试项目风险管理来说,风险识别不是一次就能完成的,而是应该在项目的全过程进行。

2.2风险应对计划与风险监控

软件开发试用期总结篇4

0引言

核电设计分析以及运行支持软件是开展核电工程设计以及维护核电厂运行的重要技术手段之一,对核电工程设计科研工作的质量、研发效率以及核电厂的运行安全起到了至关重要的作用。由于核电设计分析以及运行支持软件具有很强的核安全相关性,多年以来,国外核发达国家对核电软件设计研发以及运行管理都是高度重视的,相关软件研发的各个流程环节、软件适用性、可靠性、过程质量管理以及后续的应用均受到核安全监管机构的高度关注。与此同时,在国内,核电相关的安全也受到了核安全监管机构的高度关注。针对核安全相关软件,国家核安全监管机构也制定了相关的软件评价实施办法。根据相关实施办法,核安全相关软件的认证过程不仅重视软件的重要物理现象识别、物理模型建立、验证计算模型的合理性以及不确定性和敏感性等评价,对软件的研发过程、研发体系以及质量保证体系的建立也同样重视。在中核集团龙腾自主创新科研项目的支持下,由中国核动力研究设计院牵头,中国核电工程有限公司、中核武汉核电运行技术股份有限公司参与共同完成了成体系的核电设计与分析软件包NESTOR(NuclearPowerPlantEngineeringSoftwareTechnologyResearchProject))。NESTOR软件包包含了核电设计与分析所需要的相关专业软件,涉及核反应堆物理设计、屏蔽与源项设计、热工水力与安全分析、燃料元件相关设计、系统与设备设计、仪控设计、软件共性技术等相关领域。NESTOR软件项目自2011年立项以来便高度重视软件研发体系建设,并针对“软件开发过程质量保证体系与开发规范”成立单独的课题进行研究。该项目致力于将核电工程设计与软件工程化相结合,贯穿研发全生命周期,覆盖需求管理、模型研究、软件设计、VV流程等各个环节,建立健全核电软件工程化研发体系,并在NESTOR项目中的各个软件开展软件工程化实施流程。长期以来,建立适应核电工程特色的软件工程化研发体系,并将体系融入工程设计、科研及管理工作中,一直是NESTOR项目的重要研究方向之一。

1核电软件工程化体系建立

核电设计分析软件以及运行支持软件具有高可靠性、高安全性、高经济性的特殊要求。在国家核安全导则、GJB5000A、CMMI等软件工程化的总体指导要求下,遵循软件工程化思想,建立一套具有核电工程特点的完善的核电软件工程化研发管理体系,对确保研发团队开发出高质量、满足核电核动力工程需求的软件产品起到重要的保障作用。中国核动力研究设计院经过多年的研究及实践应用,制定了覆盖软件工程化研发中的重要过程域的指导性文件《软件工程化体系文件》。

2NESTOR软件工程化实施过程

软件工程化研发的实施主要覆盖软件开发过程和软件管理过程。针对NESTOR软件,主要分为工程化主机平台类软件以及嵌入式软件。软件的开发过程依据软件的类型以及规模等属性,选择适用的软件生存周期模型,并定义软件开发的阶段及阶段中的活动。软件管理过程主要包括需求管理、项目策划、项目监督与控制、过程和产品质量保证、配置管理、测量与分析等过程,软件项目的管理过程中的活动可根据软件的自身特点进行裁剪。

2.1核电软件的管理过程实施

2.1.1项目初始管理策划

在接受核电软件研制任务后,应落实项目组主要成员,并组织各阶段工作安排。项目负责人根据《软件研制能力等级要求》,组织对项目软件的重要性等级和规模等级进行确定。最终形成《项目软件工程化策划书》,作为开展核电软件工程化研发的输入。

2.1.2研发过程规范制定

NESTOR项目结合自身的特点,建立了一系列的研发过程规范,规范由项目部批准后应用于本项目所承担的所有核电软件研发中。

2.1.3项目监督与控制

核电软件项目的监督与控制是将软件项目的实际执行情况与相关计划要求进行对比分析,如超出偏差范围,则采取必要的纠正措施。如软件需求发生重大变化,则修订计划以满足相关要求,从而确保项目研发工作有序、正常的实施。

2.1.4核电软件项目过程和产品质量保证

开展质量管理的策划工作,主要目的是识别NESTOR项目及其最终交付成果的质量要求及规范标准。通过有计划地、定期地对NESTOR相关软件全生存周期的开发与管理活动进行符合性检查,对各阶段工作产品与活动进行审核来判断研发工作是否按照软件工程化体系的要求实施,从中发现不符合项并实施相应的纠正措施。

2.1.5项目配置管理

配置管理是结合配置管理工具对开发的软件进行版本管理与变更控制,对软件开发过程的各阶段工作产品进行有效保护,维护阶段工作产品和软件产品的完整性和可追溯性的管理过程。NESTOR项目相关软件的配置管理贯穿于软件研发活动的全生命周期以及各个流程环节。NESTOR项目采用专门的软件配置管理工具,对程序源代码、版本、各阶段文档、工况数据及流程进行有效的配置,实现了研发过程的自动化配置和动态管理,增加了软件研发人员对设计流程的能见度。NESTOR项目在配置管理实施中建立了软件开发库、受控库以及产品库,并限定配置项在不同库之间的流转的权限及流程的控制。通过实施配置管理有效地保证了软件的正确性、完整性及可追溯性。

2.1.6测量与分析

测量与分析是NESTOR软件项目各软件设置有专门的测量分析工程师,该人员负责依据既定的测量目标、测量项、数据采集和存储规程、分析规程等相关要求采集和分析测量数据,在合适的控制点/项目结题时采集并汇总相关数据,形成测量分析信息。项目执行的过程中,相关的测量分析信息及时专递到项目组团队成员内以及利益相关方。通过测量与分析活动,有效的监督了项目绩效,并为后续活动做出有根据的管理和技术决策,以便在出现问题时及时采取相应的纠正措施,实现项目监督控制的可视性、及时性

2.1.7项目评审

在软件开发与管理过程中,针对重要节点或者里程碑组织软件项目组内部及外部人员对NESTOR软件产品、研发活动及工作进展情况的符合性、合理性和正确性进行验证。通过评审活动,可以高效率、尽早发现并消除问题,从而保证软件产品的最终质量。

2.1.8记录控制

为满足软件工程化体系要求,NESTOR项目实施工程化研发过程中所产生的记录、以及能够证明体系文件有效运行的记录、作为可追溯性依据的记录均进行了有效的控制。通过核电管理平台,对项目实施中产生的所有过程记录文档进行分发、流转等控制,过程记录包括技术传递单、技术联系单、备忘录、会议纪要、设计评审报告、项目周报、QA核查单、质量保证报告、配置管理报告等。同时,通过档案管理系统,对项目所产生的所有设计文件进行有效的归档及控制。

2.1.9软件的鉴定与应用

研发完成的软件,在未经过专业鉴定前仅可用于学习、科研,不能直接应用于工程设计。软件的鉴定是专业设计人员对入库归档的软件产品进行专业分类及筛选后,由软件鉴定专家委员会对筛选后的软件进行鉴定。鉴定软件的功能、性能、工程适用范围、可靠性等各方面能够满足相关工程使用需求。NESTOR所研发的软件只有通过鉴定才能够归入工程可用软件库。当工程项目产生软件应用需求时,即可从工程软件库中选择合适的软件。

2.2核电软件的开发过程实施

2.2.1核电软件研制策划

NESTOR软件研制策划工作是估计NESTOR软件包中每个软件的规模、开发工作量,并根据估计结果,结合进度要求来制定合理的开发计划,提出必要保障条件的管理过程。本项工作主要由项目软件负责人组织,对所负责软件的根据各项软件的开发和管理工作进行全面的策划,并安排相关角色依据既定的分工制定所需研制软件的各项计划,最终以书面的形式形成《软件开发计划》、《软件配置管理计划》、《软件质量保证计划》、《软件测量分析计划》、《软件验证和确认计划》、《文件清单》以及估计记录等相关文档,文档经过评审后生效执行。相关文档是软件开发过程中各项活动的重要依据文件,并将随着软件研发过程而细化或调整.

2.2.2核电软件需求分析

NESTOR项目结合核电工程软件特点,在需求阶段开展了详细的需求理解、需求确认、需求跟踪等需求分析活动,需求包括功能需求以及非功能的需求。需求分析是软件生存周期中最重要的一步。只有通过需求分析,才能准确地将软件的功能以及非功能的需求从概念描述转换为具体的可测量的规格说明形式。NESTOR项目的各个软件在需求分析阶段都依据软件的相关需求完成对应软件的需求分析活动,并以书面的形式形成《需求说明书》/《需求分析报告》,同时建立并维护需求跟踪矩阵。NESTOR项目在开发的过程中持续跟踪维护需求矩阵,确保了需求与项目策划的一致性,并在必要时进行变更。

2.2.3核电软件设计与实现

软件的设计是在需求的基础上,对软件开展计算部分的设计以及界面设计工作,计算部分包括系统结构设计、数据设计、接口设计、算法以及过程设计,界面部分的设计工作包括界面原型设计以及界面设计,软件设计即是把需求转换成表达的过程。在设计活动完成后,软件的设计工程师需要依据体系文件以及相关规范编制相关的《软件设计说明书》,设计说明书可依据软件规模或者复杂程度拆分成《概要设计说明书》以及分模块的《设计说明书》。在软件的实现阶段,按照对应的编码规范,依据设计结果实现软件编制、编译和调试,编制《软件编码报告》以及《用户手册》。《软件编码报告》主要对软件的数值计算及界面模块的目录结构、模块结构、全局数据、各模块的功能和数据,以及软件的编译运行方式、集成方式进行描述《用户手册》主要对软件的功能、性能、运行环境、安装以及操作说明进行描述,给最终软件使用对象对软件的使用有直观的了解。

2.2.4核电软件测试及验证

软件测试是由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规定的需求。测试活动由软件测试工程师负责,在测试的策划阶段形成《软件测试计划》并开展测试设计,包括测试用例说明等相关文档。NESTOR项目的测试计划以及测试说明文档均经过评审,以确保测试工作的有效性。测试工作严格按照计划及测试说明执行,对测试过程发现的缺陷应进行报告、确认、修正和验证,并形成缺陷记录单,通过多轮测试及回归,确保缺陷全部关闭或得到妥善处置。测试完成后编制《软件测试报告》。通过测试的软件,由独立于开发团队的验证工程师,通过确认用例对软件进行验证,确认用例包括基准题、实测数据(试验数据或电厂运行数据)等,通过验证确保软件的功能、性能以及计算精度满足预期。采用第三方验证的方式对所开发软件的正确性进行确认

2.2.5核电软件

VV验证和确认遵循GJB5000A要求以及软件工程化体系执行,从VV的过程、过程中包含的VV活动,再到具体的VV任务,多层次全方位地定义验证和确认流程。N开展VV活动是确保NESTOR软件的质量和可靠性的重要措施,通过VV活动确认各项需求以及设计要求正确实施,识别期望的结果和实际结果之间有无差别,有效地提高软件计算的精度并保证软件的正确性,确保NESTOR软件质量。除了项目团队内的VV团队,NESTOR项目还创新的采用软件研发合作模式,邀请了高校测试组、专业测试公司以及第三方验证团队,针对开发的核电软件根据相关行业内规范开展了第三方独立的测试和验证。通过有效利用外部资源,对软件的功能、性能进行全面的测试验证分析,有效地摒除了内部团队在相关工作中的“程式”思维、思路局限性而带来的漏洞,更多的发现软件运行中的问题,进一步提高所开发核电软件VV的全面性和客观性。

2.2.6核电软件结项

软件研制完成后,项目软件负责人组织对软件的测试验证情况进行分析,根据项目目标要求,组织总结分析工作。就软件的研发工作进行总结,组织编制《软件开发总结报告》,另外,还有软件开发过程中的相关配置管理情况、质量管理情况进行总结,编制《配置管理总结报告》以及《质量保证总结报告》。相关总结文档完成后,组织项目结项评审,软件具备结项条件后,提交验收申请并组织验收,形成验收报告。

3结语

NESTOR软件包通过结合广泛的工程经验,依托科学理论和软件工程化技术的进步,形成了重要的自主创新能力,成功应用于华龙一号工程设计与校核,并正在进一步应用于其他核电工程开发中。部分运行支持软件也已在国内多个核电厂推广应用,发挥了良好的经济效益。通过工程化管理体系的建立以及对软件工程化的过程管理实施,NESTOR软件包的研发工作以及运行管理实现了流程精细化管控以及监督可视化、可控化。确保了NESTOR软件在满足工程需求同时,提升了研发效率、缩短了研发周期,提高了软件的质量,大大减轻了运行管理成本,提升了软件研发精细化管理水平。

【参考文献】

[1]张晓龙.现代软件工程[M].清华大学出版社,2011.

[2]林锐,彭国明.CMMI和集成化软件研发管理[M].北京:电子工业出版社,2008.

软件开发试用期总结篇5

中图分类号: TN911?34; TP311.5 文献标识码: A 文章编号: 1004?373X(2013)10?0040?05

随着计算机技术飞速发展及飞机型号性能要求的不断提高,现代飞机几乎所有重要功能都与软件有关,机载软件的应用规模飞速扩大,包括软件功能、结构和数据都愈加复杂。由机经历的外部环境和内部运行状态千变万化,飞行安全和任务保障要求不断提高,使得机载软件具有实时性、高可靠性的特点,也因此对机载软件的管理提出了更高的要求[1]。软件管理是机载设备中的关键技术之一,对软件进行适航管理是一种解决飞机安全性问题的方式,也是最基本的安全性要求。

1 适航的概念与创新实践

1.1 适航的概念与内涵

适航(Airworthiness)是来自民用航空的概念,1980年,美国科学院在《改进航空安全性》的报告中给出了定义:适航是“在预期的使用环境中和在经申明并被批准的使用期限之内运行时,航空器(包括其部件和子系统、性能和操作特点)的安全性和物理完整性” [2]。

目前,对于民用飞机能否安全地完成各种客货运输业务,业界通常以其是否具有“适航性”来衡量,适航已经成为“安全性”一词在航空技术领域具有更深安全内涵的专用词语。

1.2 适航要求

我国的适航管理制度是参照美国的适航管理制度建立的,因此我国的机载设备适航管理技术要求也同样参照美国机载设备适航技术要求。美国机载设备适航技术要求是美国联邦航空局(FAA)颁发的“技术标准规定(Technology Standard Order,TSO)”,大部分TSO中的技术要求引用的是美国“美国机动车工程协会(SAE)”和美国“无线电技术委员会(RTCA)”的技术文件,例如计算机软件要求(RTCA DO?178B)、机载电子硬件设计的特别要求(RTCA DO?254)等。

我国的民用飞机机载设备适航技术文件要求是CTSO,但我国现在单独颁发的CTSO不是很多,进行机载设备适航合格审定时可以直接使用美国的TSO[3]。

1.3 适航在军机上的创新

安全性是军用飞机的固有属性,但在军机研制中,安全性工作的开展相对比较薄弱,可供借鉴的经验较少,目前仅有安全性标准GJB900?1990《系统安全性大纲》,但这一标准可操作性不强,缺乏针对军机特色的具体技术和方法[4]。在军机研制中引入适航理念,开展适航工作,是我国军机研制史上的一次大胆尝试和重大实践。适航条款的各项要求为军机的安全性设计提供了很好的借鉴。

2 软件适航管理

2.1 软件适航性

软件适航性标准采用的是RTCA DO?178B《机载系统和设备合格审定中对软件的要求》标准,该标准为机载设备嵌入式软件的研制提供指南,保证其按照适航要求的安全性实现其预期功能。

RTCA DO?178B为机载设备嵌入式软件的开发过程提出了一系列相关的过程控制方法,包括软件等级划分、软件生命周期过程及之间的关系、软件验证过程、软件配置管理、软件质量保证等。机载设备研制单位按照RTCA DO?178B的要求对软件开发和各项活动分别实施规范化的工程管理、协调、监督和控制,保证机载设备嵌入式软件的整个开发过程有标准化管理,对每个要完成的目标输入都有对应的目标输出,根据各阶段要求输出对应的符合性文件、代码和记录[2]。比如软件需求阶段,需要根据软件研制任务书和软件计划文档产生软件需求规格说明、软件评审报告及软件质量保证(SoftWare Quality Assurance,SQA)记录等。

2.2 软件工程化管理

软件工程化管理是软件适航管理中最重要的一项管理方法。机载设备嵌入式软件遵循适航工作管理规定及软件工程化大纲,对软件开发全过程和生命周期进行定义、规范、控制和管理,使软件的每一项活动都在受控状态下进行,保证了软件状态的一致性,并达到机载软件装机状态清晰、完整,确保飞行和维护保障的准确可靠[1]。

2.2.1 软件产品的分析和设计

机载设备分析和设计阶段是软件研制的起始阶段,设备承研单位根据系统研制总要求、技术协议书的要求合理分配软、硬件功能和性能指标,确定设备软硬件体系结构,进行初步危险性分析并提出对设备的安全性要求,同时根据系统提出的功能、性能和信息接口要求,确定设备软件运行环境,编制软件研制任务书。

软件研制任务书是软件工程化管理和研发工作的关键一步,主要描述软件开发的目的、目标、主要任务、功能及性能指标等要求,是后续开发阶段的必要输入文件,为软件开发提供了设计基础。

2.2.2 明确软件生命周期过程和软件等级

(1)软件生命周期

机载设备嵌入式软件生命周期包括3个过程:软件计划过程、软件开发过程和软件综合管理过程。

为保证机载设备嵌入式软件的质量,保障飞机的安全,根据软件生命周期的3个过程继而细化为10个阶段进行控制,分别是:设备分析和设计阶段、软件计划阶段、软件需求阶段、软件设计阶段、软件编码阶段、软件集成阶段、软件验收与交付阶段、系统集成阶段、定型阶段、软件使用与维护阶段。各阶段之间是一个相互补充并不断重复的过程,阶段产品是一个反复迭代、持续改进过程的结果。

(2)软件等级

RTCA DO?178B根据软件所导致的失效状态类别,把软件等级划分为A、B、C、D、E五个等级,决定了设计保证活动的严格程度。软件等级划分如表1所示[5]。

表1 软件等级划分

若机载设备嵌入式软件根据软件失效状态分析决定了软件等级为C级,则软件研制工作就按照软件适航要求中C级在每一软件生命周期过程中的目标要求和符合性方法进行,形成相应的软件生命周期文档。

2.2.3 软件配置管理

软件配置管理(Software Configuration Management,SCM)非常重要,它关系到软件研制工作的有效性、软件产品的可用性和可信性。SCM是标识和确定系统或设备中软件配置项的过程,在整个软件生命周期内控制这些软件配置项的发放和更改,记录并报告配置的状态和更改要求,验证配置项的完整性和正确性[1]。其中,软件配置项即软件产品在不同时期的组合,包括在软件生命周期各阶段产生的各种形式和各种版本的文档、程序和数据等。软件配置项随着开发工作的进展而不断变化。

(1)制定软件配置管理计划

机载设备实施初期依据该设备的软件开发计划进行配置策划,明确配置管理内容,以便有计划地开展配置管理工作。同时根据软件开发计划等顶层文件确定配置管理的详细要求,由软件配置管理员制定软件配置管理计划初稿,包含配置管理组织、标识规定、软件配置项、基线定义、更改控制、状态报告和版本管理等。评审通过后,正式作为该设备配置管理活动的依据。

(2)基线

基线(baseline)是软件生命周期各阶段末尾的特定点,也称为里程碑。基线是经过正式审核与同意的规格说明或产品,可用作下一步开发的基础。基线确定后,只能通过正式的更改管理办法变更。

机载设备软件生命周期各阶段基线划分如图1所示。

图1 软件生命周期各阶段基线

(3)变更管理

满足RTCA DO?178B要求的软件研发过程中,所有基线变更都应在有效的控制下进行。

机载设备嵌入式软件因为其开发难度和开发周期,在软件生命周期的各阶段是很容易出问题的。一旦发现问题,不管是文档还是代码,均需要通过变更来满足系统需求和相应的适航要求。软件变更前应提出申请,经过严格审批后才能实施变更,防止随意修改造成的失控和混乱,导致软件工作的损伤。同时对软件更改还建立了问题报告单、更改申请、更改报告、问题归零、出/入库的可追踪管理制度。更改后的软件产品经过评审和审批后再纳入配置管理。

2.2.4 质量控制和监督

满足RTCA DO?178B要求的软件研发过程中,软件质量保证活动SQA是必不可少的。SQA通过保证研制过程中符合批准的软件计划及标准,确保软件生命周期中的产品符合软件需求提供的置信度。

机载设备依据软件研制任务书及软件需求开展SQA。在设备启动初期,软件质量师依据系统下发的软件质量保证大纲编制SQA计划,提出软件生命周期各阶段的质量管理要求,以持续监控整个软件生命周期过程并评审软件产品。

软件生命周期各阶段质量保证活动的输出产物为SQA记录,包括SQA评审或审核报告、软件符合性评审记录等,跟踪并确保评审问题或不符合项的解决和闭环。

同时,SQA还对各个阶段的软件配置管理活动进行监督和检查,形成配置审核记录;对系统集成阶段设备装入分系统或系统联试期间发现的软件问题的纠正情况进行监督和检查,保证问题归零。

2.2.5 软件文档资料

软件文档是软件的重要组成部分。文档内容是根据软件开发过程中各阶段的工作任务而产生的,主要记载各阶段的主要活动信息和要求。

规范、细致地编制、管理和维护文档,对软件工程化管理具有非常重要的意义。

机载设备根据软件文档编制要求进行软件文档的编写,保证交付的文档完全符合工程要求且准确、完整和规范。交付的文档同时作为软件配置项纳入配置管理,严格控制文档的更改。

2.3 软件设计和实现

2.3.1 软件设计遵循原则

机载设备嵌入式软件遵循以下设计原则:

(1)严格执行数字式电子类机械设备(软件部分)的研制通用要求;

(2)软件研制过程中,将可靠性和安全性放在首位;

(3)采取分层次、模块化设计,方便进行裁减和升级;

(4)减小应用软件与底层处理器硬件相关性,通过提供标准的接口规范,分离应用软件与特定硬件相关的代码。

2.3.2 软件设计和实现

(1)设计方法

软件采用多处理器的分布式结构,以实时分布式方式并行运行在各处理器上。软件主要采用适合嵌入式软件的结构化方法,自顶向下按功能划分成几个能独立工作的软件模块进行开发和管理。

(2)实现方案

各个功能模块软件驻留和运行于相对独立的CPU上。在各功能模块中设计接口控制管理层,使应用软件独立于硬件接口,既有利于隔离模块故障,又可以屏蔽硬件差异,将硬件选型对软件的影响降低到最小,灵活应对硬件变化,最大限度保护软件资源,有利于软件维护、升级、测试和系统可靠性的提高。

(3)编程语言

现阶段计算机软件编程采用的语言主要是汇编语言和高级语言。目前,在航电系统上采用的高级语言主要为C,C++。

鉴于高级语言在应用上的一系列问题还有待解决,故常将汇编语言与高级语言混合使用。比如,结合机载设备软件运行的CPU器件特性,在对中断及I/O口等寄存器进行初始化或者对CMD文件进行寄存器的配置时采用汇编语言,对设备功能处理方面采用C/C++。

2.4 软件验证

2.4.1 定义

RTCA DO?178B对验证(Verification)的定义是:验证是软件开发过程和软件验证过程两者结果的技术评估[5]。验证贯穿于软件开发过程中,包括了对需求的验证、对设计的验证、对代码的验证、对集成的验证及对验证过程的验证,目的就是检测和报告在开发过程中形成的错误。机载设备根据系统软件验证和确认要求及评审细则等首先形成软件验证计划,然后以软件验证计划、软件需求、源代码及可执行目标代码等作为输入/输出软件验证用例和规程、软件验证结果。

2.4.2 方法

不同于以往国军标如GJB2786?1996等,GJB2786认为测试的本身就是保障的手段,着重从测试的方法入手[7],而RTCA DO?178B是将测试定义为验证的一部分,验证的方法包括评审、分析和测试,偏重于对整个验证过程的本身与活动,且明确验证是保障的手段。

(1)软件评审

软件评审作为软件验证的一项重要活动,是软件质量保证的重要一环。

为保证嵌入式软件的研制质量,机载设备遵循系统制定的软件评审细则,规范软件评审活动。同时根据软件等级要求,对软件各阶段的工作成果进行符合该等级的评审要求和评审方式(外部评审或内部评审)。

为保证嵌入式软件的研制质量,在机载设备软件研制初期,在软件研制任务书、软件开发计划、软件验证计划中对各阶段生产的软件产品评审均进行了明确规划,按照质量要求,所有外部评审均有型号总师单位和军代表参加。

评审时,提交评审的所有文档必须已经通过逐级审签。每次评审后必须形成评审报告,评审通过后将其和相关软件产品纳入配置管理。阶段产品必须进行并通过评审。

机载设备在软件生命周期中设立了一系列阶段评审点:设备分析和设计阶段、软件计划阶段、软件需求分析阶段、软件设计阶段、软件实现(编码与单元测试)阶段、软件集成阶段(软件集成测试、系统测试)、软件验收与交付阶段。

评审针对各阶段的工作成果。在各阶段工作成果评审通过后才允许建立相应的基线,才能进行后续阶段的开发工作。

(2)软件测试

软件测试是保证软件质量的重要手段,完整的软件测试工作贯穿整个软件生命周期,它包括两方面的含义:一是软件开发的不同阶段都有软件测试工作;二是软件测试工作的各个步骤分布在整个软件生命周期中。

为保证研制质量,按照软件测试流程,机载设备嵌入式软件开展了软件测试活动。在设备分析和设计阶段,遵循系统制定的软件测试细则,依据软件研制任务书编写软件测试计划,确定软件测试范围、目的、测试指标、进度安排及最终形成产品等,根据软件等级明确要求测试类别和测试方法及测试技术要求。

软件测试计划通过评审后即刻开展测试活动,在计划阶段、需求阶段和设计阶段主要执行了测试策划、测试设计和实现;从编码阶段开始进入测试执行,直到软件集成阶段系统测试结束进行测试总结。在测试工作中,机载设备根据测试执行情况对上述四个过程反复迭代(包括软件回归测试),直至达到测试要求为止。

(3)一般测试要求

软件测试类别主要为单元测试、部件测试、配置项(集成)测试、系统测试。

软件测试方法主要分为白盒测试和黑盒测试。

软件单元测试时,采用代码审查、静态分析方法和白盒测试的方法完成;软件部件、软件配置项测试和系统测试测试时,均采用了黑盒测试方法辅助以白盒测试的方法完成。

(4)机载软件测试的特点

机载设备软件为机载嵌入式软件,机载嵌入式软件具有以下几个显著特点[6]:

①软件和硬件结合紧密,软件脱离特定运行环境是肯定无法运行的,软件失效与硬件故障有时难以区分,甚至互相干扰;

②开发环境和实际运行环境不同;

③机载软件实时性强;

④机载软件属于安全关键软件。

目前机载设备嵌入式软件的测试工作也仅限于对纯软件的测试,但是,嵌入式软件的前两个特性给软件测试提出了新问题,比如软硬件错误的界定、硬件特性对软件测试的影响等。

机载嵌入式软件的第三个特性说明了机载软件是实时多任务处理软件。如机载设备需要在同一时间段处理多个任务,为了不漏掉任一任务的处理,软件设计了中断握手管理。软件测试时就对中断握手管理执行的语句进行了验证。

机载嵌入式软件的第四个特性说明了机载软件若性能不可靠将带来灾难性后果,因此对其可靠性和安全性要求很高。在机载软件设计时均采用了一些提高可靠性、安全性的先进技术,比如容错技术、安全监控等,在软件测试中则充分考虑设计测试用例对这些软件语句进行了验证。

机载设备软件的最后一项测试即飞行测试,也就是我们常说的试飞阶段。试飞测试是在飞机飞行中进行的一些特殊测试,包括根据适航要求进行的适航试飞。通过上述方式的软件测试,将大大保证军用航电系统机载通信设备软件有较高的置信度。

(5)软件测试结果

软件测试过程中即软件生命周期各阶段的测试产物主要包括各级(单元级、部件级、配置项级、系统级)软件测试计划、测试说明、测试报告、测试问题报告、测试总结报告及评审结果等。软件测试结果在生命周期各阶段均进行了管理、跟踪和控制,并将其纳入了配置管理。

3 结 语

军机嵌入式软件适航工作以提高军机的安全水平为宗旨,不脱离现有军机研制管理模式,不改变军机研制流程,在技术上充分借鉴,在管理上大胆创新,在引入适航理念和方法的过程中不断积累经验,探索形成规范的、有中国特色的军机嵌入式软件研制适航工作途径,推动军机软件研制质量与安全水平的不断提高。

参考文献

[1] 白康明.飞机机载软件的工程化管理[J].航空制造技术,2006(12):95?97.

[2] 中国民用航空总局航空器适航司.中国民用航空器适航管理[M].北京:中国民航出版社,1994.

[3] 刘友丹.民用飞机机载设备的适航管理[J].航空标准化与质量,2007(4):19?21.

[4] 国防科学技术工业委员会.GJB900?1990 系统安全性通用大纲[S].北京:[出版者不详],1990.

软件开发试用期总结篇6

1引言

长期以来,软件项目高失败率的状况一直困扰着人们,研究表明,软件项目失败的原因主要有两个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明缺乏有效的项目管理是导致软件项目失控的直接原因。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术不能起到预期的作用。

流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程和效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。目前,流程管理技术的研究已越来越受到人重视。

运用流程管理方法和技术进行软件项日管理,可以有效地改变软件过程管理混乱的局面首先埘软件项目开发过程进行有效的、规范化的定义;其次,在软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。

2流程的概念及在软件项目管理中的作用

流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”,“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。

软件项目生命周期的一系列的开发过程是各种各样的流程活动:软件项目的计划编制、系统分析、慨要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动:制定软件项目管理流程,重点考虑以下几点:

1)制定的流程能引导项目逐步走向成功;

2)制定的流程能适用软件开发过程;

3)制定的流程能指导项目开发活动.有利于对项日开发活动的管理;

4)制定的流程能以苴观的流程图表示.能使项目组成员清楚的知道软件开发与管理的过程和相互之间关系;

5)流程中的起始活动条件、终止活动条件明确、规范便于控制:

6)流程中的工作产品定义明确、可度趟,评价标准和方法具体、可操作

3软件项目管理总体流程设计

在软件项目开发管理过程中,不仪要努力实现项目的范围、时间、成本和质量等目际,还必须协调整个项目过程,以满足项目参与者及其他利益柑关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难,纵观所有失败的软件项目.基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制管理不仅可以在每个阶段回顾和纠正项目的偏差.别软件项目的风险甚至果断中止项目。且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。

软件项目管理总体流程设计为项目搜寻、立项、售前合同生成和合同执行等5个主要阶段,分别以pl、p2、p3、p4、p5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以tm1、tm2、tm3、tm4、tm5表示,如图l所示。在这些流程中,合同执行流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护.

4软件项目管理总体流程分析

4.1项目搜寻

项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜存的项目进行分析和筛选。

4.2项目立项

立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。

4.3项目售前

售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。

4.4合同生成

合同生成阶段的主要工作有:项目方案的评估与确定技术合同、商务合同的商定、评估与签署。

4.5合同执行

合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。

4.5.1软件开发

软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理:

1)制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项日活动的基础,也是软件项目跟踪与监控的依据。

2)确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发

3)加强过程控制一过程控制主要包括过程管理、变更控制和配置管理,、

4.5.2测试与执行

项目测试的目的是俭查系统是否符合项目合同与任务书规定的要求、项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能一效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等测试过程在模拟运行环境中进行。

4.5.3内部验收

项目完成集成测试和系统测试后进行项目内部验收.主要有三个步骤:①文档准备。项目经删提交内部验收计划、项目开发总结报告、产品发布清单:财务主管提交项目财务预算报告。②内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同.但应站在用户验收的角度进行,因为它是试运行的基础。通过这一步。为用户验收作充分的准备。③内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告:

4,5,4项目试运行与验收

试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:①验收前的准备。项目经理负责检查产品的完整性。包括文卡当、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认。②用户进行验收测试和系统试运行,进行文档和系统的移交。③用户确认。项目经理负责与客户协测,协助用户进行项目验收,形成用户验收报告。

4 5.5项目维护

软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。

4.6软件项目管理的里程碑

项目的考核与评审是软件项目管理流程控制的基础,我们在整个流程中设定五个基线,即确定五个里程碑,它们分别是tm1:立项完成;tm2:合同签订;tm3:产品功能定义完成;tm4:软件开发完成;tm5:验收通过。

如图1所示。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。

软件开发试用期总结篇7

1引言

长期以来,软件项目高失败率的状况一直困扰着人们,研究表明,软件项目失败的原因主要有两个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明缺乏有效的项目管理是导致软件项目失控的直接原因。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术不能起到预期的作用。

流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程和效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。目前,流程管理技术的研究已越来越受到人重视。

运用流程管理方法和技术进行软件项日管理,可以有效地改变软件过程管理混乱的局面首先埘软件项目开发过程进行有效的、规范化的定义;其次,在软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。

2流程的概念及在软件项目管理中的作用

流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”,“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。

软件项目生命周期的一系列的开发过程是各种各样的流程活动:软件项目的计划编制、系统分析、慨要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动:制定软件项目管理流程,重点考虑以下几点:

1)制定的流程能引导项目逐步走向成功;

2)制定的流程能适用软件开发过程;

3)制定的流程能指导项目开发活动.有利于对项日开发活动的管理;

4)制定的流程能以苴观的流程图表示.能使项目组成员清楚的知道软件开发与管理的过程和相互之间关系;

5)流程中的起始活动条件、终止活动条件明确、规范便于控制:

6)流程中的工作产品定义明确、可度趟,评价标准和方法具体、可操作

3软件项目管理总体流程设计

在软件项目开发管理过程中,不仪要努力实现项目的范围、时间、成本和质量等目际,还必须协调整个项目过程,以满足项目参与者及其他利益柑关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难,纵观所有失败的软件项目.基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制管理不仅可以在每个阶段回顾和纠正项目的偏差.别软件项目的风险甚至果断中止项目。且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。

软件项目管理总体流程设计为项目搜寻、立项、售前合同生成和合同执行等5个主要阶段,分别以pl、p2、p3、p4、p5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以tm1、tm2、tm3、tm4、tm5表示,如图l所示。在这些流程中,合同执行流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护.

4软件项目管理总体流程分析

4.1项目搜寻

项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜存的项目进行分析和筛选。

4.2项目立项

立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。

4.3项目售前

售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。

4.4合同生成

合同生成阶段的主要工作有:项目方案的评估与确定技术合同、商务合同的商定、评估与签署。

4.5合同执行

合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。

4.5.1软件开发

软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理:

1)制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项日活动的基础,也是软件项目跟踪与监控的依据。

2)确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发

3)加强过程控制一过程控制主要包括过程管理、变更控制和配置管理,、

4.5.2测试与执行

项目测试的目的是俭查系统是否符合项目合同与任务书规定的要求、项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能一效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等测试过程在模拟运行环境中进行。

4.5.3内部验收

项目完成集成测试和系统测试后进行项目内部验收.主要有三个步骤:①文档准备。项目经删提交内部验收计划、项目开发总结报告、产品清单:财务主管提交项目财务预算报告。②内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同.但应站在用户验收的角度进行,因为它是试运行的基础。通过这一步。为用户验收作充分的准备。③内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告:

4,5,4项目试运行与验收

试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:①验收前的准备。项目经理负责检查产品的完整性。包括文卡当、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认。②用户进行验收测试和系统试运行,进行文档和系统的移交。③用户确认。项目经理负责与客户协测,协助用户进行项目验收,形成用户验收报告。

4 5.5项目维护

软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。

4.6软件项目管理的里程碑

项目的考核与评审是软件项目管理流程控制的基础,我们在整个流程中设定五个基线,即确定五个里程碑,它们分别是tm1:立项完成;tm2:合同签订;tm3:产品功能定义完成;tm4:软件开发完成;tm5:验收通过。

如图1所示。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。

软件开发试用期总结篇8

0引言

在软件技术快速发展和应用范围不断扩大的同时,软件复杂性也不断提升。在当前的很多软件开发企业中,软件质量管理问题开始成了关注的焦点。

1软件质量管理中存在的主要问题分析

1.1需求模糊问题

结合软件工程来说的话,软件产品的生产主要包括多个过程:第一是系统需求研究过程;第二是系统设计过程;第三是系统实现过程。但对于软件系统需求来说,往往描述不够完善,相应的软件需求调研以及研究也不够深入,没有加强对软件质量需求的管理,这样不仅会使得研发以及测试设计工作落实不到位,还会明显提升沟通成本,导致产品实现与用户需求不一致[1]。

1.2立项管理不到位问题

大量实践结果表明,通过加强立项管理,可以有效避免质量管理项目风险的产生,赋予软件项目开发深刻的意义。(1)软件项目开展。不加强深入的立项调查,以及加强项目可行性分析,落实好立项评审,则可能会导致产品需求获取不到位,软件开发产品规划出现很多问题,无法保证软件研发工作的有效开展,致使项目研发功能明显减弱,不但会导致资源浪费,还会阻碍新产品的正常[2]。(2)软件项目。如果没有加强立项管理,可能会导致成员行为涣散问题的出现。工作人员只顾自己,不顾团队利益,无法全面了解项目产品的实际开发要求与背景,也不能从根本上明确项目开发的最终目标,无法满足用户的实际软件开发需求,最终使得软件开发计划无法按期实施以及软件开发费用超支等问题出现。

1.3软件质量保证体系尚待完善

针对我国很多软件开发企业来说,往往都处于“软件质量管理”实施的最初阶段,甚至是试行阶段,很多科研制作部门对应的标准化软件质量管理体系还都不完善,甚至有一些科研部门对应的软件质量管理制度和体系还没有形成[3]。另外,一些企业虽然设立了软件质量管理的专有部门,但相应的体系文件却还不完善,需要经过大量的实践来完善。在软件开发项目研制部门质量管理普通较低的情况下,软件开发工作者的综合素质低下,也会影响软件产品的最终质量。

2软件质量管理的优化对策分析

2.1加强需求工程有效管理

在实际的软件开发当中,如果相应需求模糊,会出现需求随意变更的现象,导致时间被白白浪费。对于该问题来说,必须针对相关需求活动,加强统一化的需求管理。要在落实好软件需求开发工作的基础上加强需求管理,这样不但能够限制需求变更的实际次数,还能促进工程师对质量管理需求的深入理解。总之,软件需求开发与软件需求管理的重要性同等重要,必须实现两者的有效结合,才能保证最终产品的质量。

2.2加强软件测试流程有效管理

在软件测试的各个环节,都可能会出现一些问题,必须不断优化软件测试流程,加强对软件测试流程的有效管理。具体来说:(1)软件测试相关部门人员,必须加强需求知识学习,开展深入的需求探讨。(2)对有疑虑的需求者,研发设计工作者要做出及时而准确的解答。对于研发设计工作者也不能有效解答的问题,要让他们联系用户来有效解答。在明确需求的基础上,根据软件系统的作用以及性能,专门的测试工程师要科学合理地设计软件测试测用例,具体要结合两大方面的内容来设计:第一,针对测试工程师来说,必须结合实际需求,科学合理地编写测试用例;第二,针对测试工程师来说,要在结合实际用户反馈情况的基础上,做好分析汇总工作[4]。要大力引入和合理应用QC功能测试设备以及工具,加强对软件以及实际操作系统兼容性能的合理性测试,才能充分发挥软件测试工具使用的功能与作用,落实好软件兼容性测试工作。此外,要加强自由软件测试,适当补充软件测试用例,了解软件测试用例没有涉及的问题以及问题产生的原因;要采取定期研究和分析的方法,明确缺陷库里面存在的问题,并深入研究问题成因,进而利用测试用例来解决问题[5]。

2.3加强项目进度质量有效管理

要保证软件开发项目的顺利完成,首先必须保证软件项目质量足够好。在软件项目开始实施之前,必须保证项目开发计划足够科学、合理。如果软件开发项目计划设计人员相关工作经验足够丰富、设计能力足够强,往往可以有效保证软件开发计划的合理性与完善性,有效预见软件开发计划当中的问题,消除相关阻碍和影响因素。在软件开发项目计划设计的开始,相关人应及时组织软件质量管理人员,开展软件项目计划讨论会与评审会,并请相关技术专家、真实用户等,针对软件项目计划的科学性和合理性进行探讨,分享个人意见和看法,由专门的记录人员总结相关意见,最终形成系统化的质量记录,再以书面或者文档的形式传送给相关工作人员进行意见修改整合,确保软件项目计划的完善性。

2.4提升工作人员的综合素质

在软件开发和质量管理过程中,技术人员和管理人员是核心主体。因此,要想有效保证软件质量管理有效性,必须保证管理工作人员和技术人员的综合素质足够高。让员工全面地了解企业,正确理解自身的工作性质和要求,并不断增强自身的责任感。即使工作人员已经对工作内容很熟悉,也可能没有深入理解企业经营战略以及相应的发展规划。企业外部环境条件变化幅度比较大,企业工作人员必须及时掌握内部战略和规划变化情况,及时调整自己的工作计划和方法。对于软件质量管理人员来说,不但要主动参与到企业发展规划设计工作中,还必须及时将相关信息传达给各个部门。通常来说,企业应当定期或者不定期地开展例会,介绍企业近期情况和之后的发展规划。在掌握全体例会内容的基础上,各个部门负责人员应当再次开展部门会议,根据部门工作开展情况,做好后期工作规划调整工作,使得每位员工都掌握企业发展动态,进行自身科学合理的工作调整与规划。软件质量管理者还必须基于企业内部软件质量问题,增强创新意识,提出可以有效解决软件质量问题的措施。

3结语

综上所述,软件开发成本管理不到位、软件质量管理不到位等问题仍然存在,导致这些问题产生的主要原因是管理者管理不到位,如:软件质量管理制度不完善、随意性较强。要有效解决这些问题,必须以完善的软件质量管理体系为依据,加强软件开发的全过程监控[6]。

参考文献

[1]翁婕,丁铁,乔扬,等.软件质量管理的优化对策[J].电子制作,2015(6):98-99.

[2]周波,钟小咪.铁路运输行业的供应商软件质量管理[J].科学与财富,2016(5):750.

[3]张沐辰.基于软件全面质量管理的团队建设[J].科教导刊,2014(16):45,55.

[4]方俊钗.数字超声检测仪软件的质量管理和软件测试[J].科技风,2014(13):238.

软件开发试用期总结篇9

2研究目的和意义

质量,通常指产品的质量,对软件行业来说,软件质量会导致整个软件的成败,一个小小的质量问题可能会导致非常致命的结果。做好软件的质量管理不但能促进项目决策的合理化、科学化,还能在项目实施过程中实现高效化、准确化,保障项目目标的最终实现,切实提高项目成功率。目前,国际上逐渐开始重视软件工程的项目管理,一系列理论和方法的出台提高了软件开发的效率和客户的满意度,为软件开发企业带来了非常客观的经济效益和社会效益。为此,以国际上的先进经验为参考,制定适合我国的软件开发的项目管理是十分必要的。分析水利信息化项目中软件开发质量的影响因素,通过对企业组织结构的优化和软件项目过程的改进,获得项目实施质量的提升,从而减少软件开发中产生的问题对开发部门造成的损失,降低开发成本,提升整体开发水平。

3影响软件开发质量的因素

就软件质量而言,影响软件项目质量包括以下两大方面因素。

3.1人的因素

软件项目的管理要以用户的想法为根本目标。产品生产就是为了满足用户的需求。一个能够满足用户需求的软件,就是一个优质的软件。客户的需求会随着开发的进行而不断调整。只有在开发的各个阶段都能满足用户的需要,达到用户的要求,这个软件的质量才能得到保证,而在软件开发过程中树立质量第一的思想就是体现在更好地为用户服务的行动上。

3.2开发流程

软件开发流程是在软件开发模式框架的指导下实施软件开发的全过程描述和定义,包括软件开发生命周期各阶段的定义、开始前提条件、参与者描述、产出物描述、完成条件等。一个合理定义的软件流程能够将软件开发模型的优点充分发挥出来,同时减少软件开发过程中产生的负面影响。

4应用分析

4.1项目开发质量目标

首先,项目总负责人向项目组成员指出水文测报软件在整体水文监测项目中的重要性,并强调质量是最优先考虑的。其次,各成员从自己的角度提出几个目标,如质量经理的目标是保证合格率、开发人员的目标是保证测试通过率等。再次,团队在一起讨论制定的目标的可行性,是否能够实现以及需要的条件。其中,每百段程序BUG数按照模块统计,本次制定的目标为每百段程序BUG数小于10处;单元测试分模块进行,本次目标为每个模块的单元测试通过率大于90%;集成测试、系统测试、验收测试为模块的集合体测试,按照百分制原则分别制定质量目标为得分80分以上及75分以上;本次软件开发项目计划工期45d,本次制定目标为在计划工期内完工;本项目概算总投资100万元,取利润10%,故目标经费使用为90万元;客户满意度按照优良中差四级评定,本次质量目标为取得客户满意度优。

4.2软件开发质量管理影响关键因素分析

4.2.1质量计划对软件开发项目质量的影响

软件的开发一般分为4个过程,即定义需求过程、预开发过程、开发过程和维护过程,通过资金使用的情况反映质量计划的影响。参考以往软件编制过程中4个阶段开发的使用情况和对开发结果影响力进行统计分析,影响力按照百分制计算,由参与软件开发的各方进行评分取平均数,100分为影响最大,0分为最小。软件开发阶段,资金在早期使用的效率最高,可以对项目结果起到比较大的影响,而软件开发计划的编制能够在软件开发的定义阶段即对软件开发的目标、组织、资金安排进行较详细的定义和计划,能够在早期按照合适的比例安排软件开发的资金,从而对结果产生比较大的影响。

4.2.2质量控制对软件开发项目质量的影响

软件开发中,发生编制错误的次数直接影响软件开发的质量。影响软件开发项目质量的因素很多,这里选取质量控制中的5个关键因素即控制点的选取、组织领导的责任、测试的规范性、环境因素以及质量计划。在此基础上,调查统计由于关键因素的原因导致软件开发发生编制错误的次数,并绘制直方图。,质量控制能够对软件开发质量产生直接的影响,集中体现在编制发生错误次数方面。

4.2.3质量保证对软件开发项目质量的影响

软件开发质量保证主要体现在软件开发的模型选择和应用上。原始的软件开发使用的是传统的瀑布模型,将软件开发项目作为一个整体进行设计,方式如图2所示。采用质量保证措施后开发模型转化为图3的形式,由图3可以看出,使用质量保证措施将每个开发阶段再次细化,可以对各个环节的变化情况加深认识,做到每个开发阶段出现的问题能够在本阶段解决,不拖入下一阶段,这对软件开发质量起到了保证作用。

4.3保证软件开发质量的措施

根据软件开发中曾经发生过的问题和预计会发生的问题,结合项目质量管理理论,使用质量管理工具,在质量计划、质量控制、质量保证3个方面对本次软件开发进行质量管理。

4.3.1软件开发项目的质量计划

(1)制作因果分析图。在进行质量计划时,首先明确质量计划的目标,即开发质量合格、便于使用、用户满意的软件,根据水文自动测报预警软件开发项目的产品说明和水务信息化建设相关规范要求,运用头脑风暴法对软件开发中可能会导致质量不合格的情况进行整理并绘制因果分析。(3)成果输出。①将总结形成的计划管理成果汇总,形成各个阶段的人员、组织、资金、资源、权限等管理计划,指导质量管理的进行;②通过一系列质量计划的管理,最终以质量计划检查表的形式输出质量计划成果。(2)编制软件开发工作流程图。本次项目开发时,分别从质量计划、质量控制、质量保证3个方面进行质量管理,在软件的可靠性、硬件的可靠性以及软件硬件结合后的可靠性方面都做了大量的工作。一方面,在项目前期阶段,通过对规划计划的质量管理,在项目初期树立正确的开发方向,从而在项目前期工作进行质量管理。另一方面,在软件的开发阶段,通过对人员和开发流程等方面的管理,实现对项目开发阶段的质量管理。最后,在项目的实施阶段中,执行项目计划,严格进行项目测试,通过演练、试运行等方式对整体项目进行质量管理。3个阶段中,每个阶段的质量管理都非常重要。软件开发质量管理流程。

4.3.2软件开发项目的质量控制

(1)质量控制点设置与管理。质量控制点是实施质量控制的重要组成部分,软件开发的质量控制点是项目质量控制的重点对象。质量控制点应选择那些技术要求高、开发难度大、对工程质量影响大或是发生质量问题时危害大的对象进行设置。依照质量控制点的要求和特点,选择了本次软件开发中相应的质量控制点。设定了质量控制点,质量控制的目标和工作重点就更加明确。在软件开发中,首先要做好项目质量控制点的事前质量预控工作,包括明确质量控制的目标与控制参数、编制开发指导书和质量控制措施、确定质量检查方法及抽样的数量和方法、明确检查结果的判断标准及质量记录与信息反馈要求等。其次,还要做好软件开发质量控制点的动态设置,随着软件开发条件的变化,随时或定期进行控制点的调整和更新。应用动态控制原理,落实专人负责跟踪和记录控制点质量控制的状态和效果,并及时向项目负责人反馈质量控制信息,保持质量控制点的受控状态。

4.3.3软件开发项目的质量保证

运用PDCA循环法进行软件开发的质量保证,在预开发阶段、开发阶段、维护阶段3个阶段进行。预开发阶段指开发团队针对开发项目招标情况对软件开发项目做出的提前处理,工作体现在下列PDCA循环中:计划,提出软件开发的整体流程;实施,开发自己的技术提案,阐明将使用的技术及所拥有的技术工艺;检查,提出检查软件质量、纠正产品中缺陷的方法;总结,根据检查结果,提出改善质量控制的计划。开发阶段是指从软件产品开发开始,到移交产品且客户对软件性能予以肯定为止。这一阶段的PDCA循环活动有:计划,开发者根据需求和风险,提出详细的开发过程、要求使用的资源以及要得到的产品;实施,由开发组织执行开发计划;检查,开发组织和客户共同检查计划与预期得到的结果的一致性;总结,开发组织根据检查结果,审查并重新认识风险,作为下一个循环的基础。维护阶段是修复软件缺陷、提高软件性能的阶段。这一阶段的PDCA循环活动有:计划,制定处理缺陷的计划;实施,处理缺陷或根据需求变化提高软件性能;检查,判断开发维护目标是否已经达到;总结,根据检查结果审查并总结。

4.4成果数据分析

通过对本次水文自动测报预警软件开发项目的质量管理,大大提升了软件开发的质量,结合软件开发前期中制定的质量目标,与以往软件开发项目进行比对,分析进行软件开发质量管理对结果产生的影响。

4.4.1百段程序BUG数分析

根据质量控制点确定的各个模块统计各模块软件开发中每百段程序的BUG数量,结合以往类似软件开发中的统计数据进行比对。

4.4.2客户满意度比对

各模块软件开发完成后,分别对客户进行满意度调查,按照优良中差进行评价,经过与类似软件开发客户满意度比对。以往软件开发项目没有进行过模块化划分,整体项目一起进行开发,开发完成后统一进行评价,无法对内部存在的不足进行查找和梳理。本次划分了模块,根据各模块的用户满意度调查,可以在以后的软件开发中有针对性地进行改进,保证项目质量的良性发展。

软件开发试用期总结篇10

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)02-0320-02

近年来,信息技术的飞速发展,使得软件产品应用到社会的各各行业。随着人类对计算机应用的逐步深入,软件质量的要求也逐步提高,从而软件测试越来越重要。虽然国内软件测试起步叫较晚,但也越来越被人们重视,据有关资料显示,软件测试费用相当于软件开发总费用的45%左右, 对于一些较高要求的软件,其测试费用很有可能是整个软件项目开发所有费用的3.~5倍,当然随着软件规模的日益增大,测试问题也日益突出。软件最终是否为人所用,没有经过测试的软件产品,你就无法知晓它是否满足用户的需求,有缺陷的软件在极端情况下可能会导致用户财产生命安全。

1 软件测试的概述

软件测试是软件质量的保证,是使用自动化工具或人工来运行系统程序的过程,进而来发现现所运行得到的结果和产品要求的条件之间的差别,并以此来评价。通俗的讲,测试的目的是为了发现软件中存在的错误,同时对软件质量进行度量和评价,而不是证明该软件是成功的,没有错误的软件世间难求。软件测试要以用户需求至上为基本原则,通过用最少的人力、物力、财力和时间找出软件中的各种错误与缺陷,并且通过进一步改正这些错误和缺陷来提高软件的质量。既然软件测试是人为的,因此就不能至善至美,也不可能穷尽测试,软件测试不可能揭示所有的缺陷。其实换一种说法,我们可以把测试过程看作是对软件质量的“探索”过程,这个探索不是“盲人摸象”的过程,它有一个基线即所有的测试都应该追溯到用户需求。

2 基于测试技术的测试方法

传统的人为测试是在编码阶段,甚至是在编码后都是错误的。需求分析,概要设计,详细设计及程序编码实现等各阶段所得的文档都是软件测试的对象,所以说软件测试是贯穿于整个软件定义期和开发期间的,从技术上划分为黑盒测试,白盒测试及灰盒测试。

2.1白盒测试

它是基于源程序或代码内部逻辑结构来设计测试用例而进行的测试。它相当于一个打开的盒子,测试人员可以依据所看到了解的代码结构来设计测试用例。白盒测试分为两种,一种静态一种动态。静态的方法就是直接检查只要按一定步骤进行,包括桌面检查、代码审查等。这种方法一般是由有经验的测试人员做,只是初步大致的来检查系统中存在的错误。动态的方法就必须要生成测试用例来运行程序发现错误,包括有基本路径测试、条件测试数据流测试等。白盒测试一般由有经验的软件测试人员和开发人员进行,因为要需要了解产品的内部工作,关注程序的结构和内部逻辑。

2.2 黑盒测试

它是相对于白盒测试而言,它是基于产品的需求和功能性而不是基于系统的内部设计和代码的任何知识,通过软件的外部表现来发现其缺陷和错误。同样可以把黑盒测试的对象看作是一个封闭的黑盒子,测试人员要根据规格说明在不考虑其程序内部结构和和处理过程,以用户视角进行的测试。黑盒测试是配合白盒测试发现其他错误,它并不是白盒测试的替代品。黑盒测试试图发现的错误主要有:系统功能对不对或者有没有遗漏、界面错误、数据结构或外部数据访问是否错误、性能错误以及初始化和终止错误。所以说一般黑盒测试主要在测试后期执行,而白盒测试一般在早期执行。常用的黑盒技术有边界值分析、因果测试、等价划分等。

2.3灰盒测试

灰盒测试是介于白盒测试和黑盒测试间的一种有效的软件测试技术,结合了是两种测试的有点,它即关注与程序的内部高层逻辑结构,也关注与程序运行时的外部得表现,然而这种关注不需要像白盒那样详细、完整,仅是通过一些表面的现象、事件、标志来判断其内部的运行状态,有时候输出是正确的,但内部实际是错误的,这种情况很常见,如果每次都是通过白盒测试进行操作,结果效率会大大降低,因此采取灰盒测试是一种有效的补救方法。

3 软件测试现状

就国际而言,国际的软件测试领域已基本成熟,在软件业比较发达的国家,无论从投入的人力和时间上看,软件测试都受到了公司的极大重视,他们有严格的测试工作标准和范围规定,软件测试被公司认为不可或缺的。已美国为例,据说美国软件测试市场已作为软件产业中的一个独特市场,不仅是软件开发企业还是设有软件开发部门的公司,软件测试单位的设置都是必不可少的,其中软件测试人员的数量更是占软件开发工程师的75%左右。软,每一个开发人员都会配备一名测试人员,也就是说开发人员和测试人员的比例是1:1,并且这些测试人员的水平是很高的,往往负责软件测试质量的质量保证经理的职位和软件开发经理是平行的。美国几乎垄断了全球的软件市场,终其原因,当然是很多发面的综合因素,但更重要的一点的是当今美国的信息化水平非常高,人们对产品的质量更高,残酷的竞争更迫使各企业在产品质量方面加大投入,一定要在产品出厂前把质量把关好,美国 的软件工厂概念已经完全形成,已CMM为标志的适应大规模生产的软件流程管理体系已经非常完备,使得软件行业真正成为制造业。

就国内而言,国内的软件市场才刚刚起步,虽然国家对软件业给了很多的鼓励政策,软件业在国内也有很大的发展,但是多数软件公司还是注重代码开发,而忽略代码质量,忽视了测试在整个软件工程项目的重要性,认为测试只是开发的附属品,即使有公司认识到测试的重要性但也是停留在认识阶段,只是做做简单的黑盒测试,功能性测试等。为什么国内的软件市场的表现令人担忧呢?首先很多人认为国内的产品大多数是基于互联网的,软件大部分是在服务器端的,更新的成本大幅降低了,可以一味的借助网络更新,在使用中发现错误然后去弥补。即使有一些已经成规模、有一定的研发的大企业,也没有一套完整的测试流程体系,他们可能花费大量的人力、物力来通过CMM,ISO的认证,却不能踏实的做好测试,在他们眼里,认证才是公认的公司实力的体现,测试则只是一个可有可无的过程。说到底这是对测试重要性的理解还不够透彻。另一方面费用问题也较突出,开发方在支付软件开发费用后,就不愿意再为软件测试支付费用而增加新的成本,这其中也包含了测试工具的价格,有些软件公司即使他们有那个心也没那个力,昂贵的测试工具会立即扼杀他们抓测试的信心,即使有的项目有意委托第三方测试,可是开发方也会考虑到需要提供源代码,担心知识产权受到侵犯。软件公司较为缺乏专业测试力量也是重要原因之一,严格来说,专业的测试人员要懂的技术甚至比开发的要高的多,这又要追溯到对测试的态度观念问题。总的来说,价格,技术和企业愿望是目前测试发展缓慢的原因。

4 挑战

诚然,价格,技术和企业愿望是目前国内测试走的很难的原因,当今快速发展的企业信息化进程导致软件测试面临着诸多挑战,产品的多样性,复杂化使得软件测试在技术上面临着挑战。随着复杂的分布式应用技术的快速发展,电子商务应用的部署结构日益复杂,所涉及的协议和接口标准日益增多,对应用部署的性能评价要求也越来越严格,这就导致了测试的复杂性增加了,同时迫于市场的压力,产品开发周期变的越来越短,应用系统更新、升级越来越频繁,在这种情况下必须特别关注整个应用的完整性和可靠性。另一方面的挑战来自软件测试工程师的素质。测试团队核心人物的人数可能因为产品的的测试组织机构不同而有所不同,测试工程师的综合素质体现在:责任心、综合技术水平、学习和解决问题的能力,还有对软件业发展趋势的了解。

5 总结

虽然中国的测试领域才刚刚开始,我们还有很多东西要学,可是该如何推动我们的软件测试业,不是靠你和我,而是靠全名总动员,树立正确的软件测试观,大家要培养这个意识,并把这个意识贯穿在研发的全过程中,将软件项目管理和软件测试结合起来,使得软件测试业不断发展和成熟,总有一天中国的软件质量会在世界上有属于自己的一席之地的。

参考文献:

[1] Ron Patton .软件测试[M].北京:机械工业出版社,2001.

[2] 郑人杰.计算机软件测试技术[M].北京:清华大学出版社,1999.

[3] 郁莲.软件测试方法与实践[M].北京:清华大学出版社,2008.

[4] 刘浩.软件测试简述与展望[J].江苏现代计量,2008.

[5] 吴小红,杨海涛,王万良.基于Web 的远程控制实验系统的设计[J].浙江工业大学学报,2004,132(6):700-705.

[6] 毕波.嵌入式Web 服务器的远程监控系统的实现[J].重庆职业技术学院学报,2004,13(2):138-140.

软件开发试用期总结篇11

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)10-0113-03

Abstract: In view of the situation that the traditional model of software testing can not meet the health needs of the software development process, and traditional software testing model is not flexible enough and complete. So the article puts forward an improved TMAP software testing model. The structured software testing model improves the limitation and deficiency of the traditional test model, and it enables software testers on the state of the software system and the risks associated with a continued awareness.

Key words: TMap software test management method; V model; W model; X model; software testing life cycle

1 背景

近年来,以测试为驱动的软件质量保障技术在软件开发中得到广泛的应用。测试是保证软件产品正确性和提高软件可靠性的最基本和最重要的手段之一,它已不仅仅是软件产品开发成型之后的附加行为而是伴随在整个软件开发生命周期中的重要过程。软件的失效可能造成巨大的经济损失。例如,1996年Ariane5运载火箭的发射失败都是由软件故障引起的[1-2]。

在测试中,如何更早地发现缺陷,用最小的成本、彻底的、有效地完成测试任务,以减少软件后的成本支持,这就需要建立一个良好可靠的测试模型。于是各种软件测试模型被提出,主要有V模型、X模型和W模型,这些传统的测试模型都有自己的优点但也存着着一些限制和不足,还不能完全满足软件测试的需要,为了弥补传统测试模型的不足,TMap(Test Management Approach,软件测试管理方法)应运而生。目前,这个过程已被ISTQB(International Software Testing Qualification Board,国际软件测试资本认证委员会)所采用,成为了测试过程的标准。为了提供更加灵活的测试模型,本文对TMap软件测试管理方法进行归纳总结,抽象出适合当今软件开发需要的基于TMap的软件测试模型。

2 传统的软件测试模型缺陷分析

软件测试模型起到指导软件测试过程框架的作用[3]。著名的V模型是20世纪80年代后期Paul Rook提出的著名的软件测试模型,旨在改进软件开发的效率和效果[4]。它在传统的瀑布模型软件开发过程中增加了测试活动,并把它作为编码之后的一个阶段,但对测试的过程没有进一步描述。其主要针对瀑布模型对测试过程进行了补充,它的价值就在于它非常明确的阐明了测试过程中所存在的不同级别,并且很清楚地描述了这些级别和开发过程中各个阶段的一一对应关系。但V模型也存在许多不足之处:容易导致在需求阶段就存在的错误一直到最后测试时才被发现,无形中增加了软件开发的成本;V模型没有明确的指出测试的时机和规划,越来越多的开发案例说明越早的进行测试设计,就越能避免软件开发初期的问题扩散到整个系统当中,V模型违背了越早发现错误越有利的原则[5]。

W模型是Evolutif公司针对V模型的缺陷提出的一种改进的测试模型。它强调测试过程和开发过程同时开始同时结束,并且开发和测试相互依赖。前期,测试过程更多的依赖开发过程,后期,开发过程更多的依赖测试过程。W模型,尽管已经改善了V模型存在的一些不足,但不论是W模型还是V模型,都只适用于那些需求非常明确且已经文档化了的项目,测试人员需要根据严格定义好的需求和设计来进行工作。但是在实际开发过程中,开发中因为需求变化等原因,开发人员实际上并没有按照文档的要求来工作,也就是说文档没有根据需求的变化及时更新,更或者有时候在一些开发流程不规范的公司,根本就没有文档。在上述情况下,V模型和W模型在实施起来都是很困难的。此外,这两种模型都把软件的开发过程看作计划、设计、编码、测试等一系列的串行活动。但事实上,大部分时间这些活动是互相独立的,也就是说这些活动是可以并发进行的。虽然软件开发流程期望有清晰的设计和编码等阶段,但实际的软件开发经验告诉我们,清晰的阶段之分只是一种理想的状况。

X模型也是一种对V模型的改进方法,其缺陷在于:没有明确指出在软件测试的每个阶段都应该进行测试;没有像V模型那样有明确的需求角色确认;X模型并不要对每一段程序都进行单元测试,也不像V模型那样有很明确的固定的边界,但是X模型没能提供不进行单元测试的判断准则;X模型过于关注低级别的即程序级别的行为,而没有形成一个系统的模型。

3 TMap测试管理模型的提出及应用

TMap测试管理模型,改善了传统软件测试模型的弊端,提出了一个完整的、一致的、灵活的方法。可以根据特定环境创建量身定制的测试方法,以及在不同的特定环境中可以采用的通用方法,从而适合于各种行业以及各种规模的组织。

3.1 TMap的测试生命周期

TMap描述的软件测试生命周期共分为五个阶段:计划和控制阶段、准备阶段、说明阶段、执行阶段和完成阶段。其生命周期模型如图1所示。

图1 TMap描述的生命周期模型

3.1.1 计划和控制阶段

计划和控制阶段涉及测试计划的创建,定义了测试活动的相关内容。计划阶段中的活动是建立易于管理和高质量的测试过程的基础。这是一个非常重要的测试阶段,然而在实际测试过程中它的重要性却总是被低估。在这个阶段,需要根据风险分析过程来制定测试策略、测试估算和策划。接下来需要确定所使用的测试技术,以便选择适当的测试覆盖率并尽量使其达到最优。然后,可以对测试组织人员和测试基础设施进行初始规划。

通常一些测试过程很少能够按照计划被执行。因此,必要时必须对测试计划的执行进行监控和调整。这就是控制阶段的工作。在控制阶段所有测试活动的目的是以最优的方式控制和报告测试过程,以测试人员能够对测试过程的进度和质量以及测试对象的质量有深入的了解和良好的控制。

软件测试过程中测试人员需要对测试过程、基础设施和测试产品进行管理,并使用测试过程中收集到的数据进行趋势分析。同时,也要确保能够及时获得与测试相关的开发过程信息,如开发中的延迟、将要进行的较大规模变更以及项目调整等。

3.1.2 准备阶段

测试依据的可测试性评审是在准备阶段中完成的。这一阶段的目标是使测试依据的质量能够满足测试设计的要求。此外,在项目早期对测试依据进行可测性评审能够提高质量,并减少后期发现缺陷而付出的高额代价。因为,开发人员要基于系统文档(测试依据的一部分)进行系统开发,而这些系统文档可能会存在一些错误,如果这些错误没有被及时发现的话,将会导致大量修正工作(通常需要付出高额代价)。在开发过程中,错误越早被发现,修复的工作越容易(代价越小)。

3.1.3 说明阶段

说明阶段涉及定义测试用例和构建基础设施。这样做的目的是尽可能的多做准备,从而当开发团队提供测试对象后,可以尽可能快地执行测试。一旦测试依据的可测试性评审结束后,这阶段的活动便可以开始进行。测试说明活动可以与软件的实现同时进行或者在差不多的时间段内进行。

3.1.4 执行阶段

执行阶段的目的是通过执行已商定的测试用例来深入了解测试对象的质量。真正的测试执行是在测试对象交付到测试团队的时间点开始的。首先要对测试对象的完整性进行检查。然后,将测试对象安装在测试环境中来评估其功能是否满足需求。

上述的活动通常可以由第一轮测试进行确认,即所谓的预测试。预测试是结合测试基础架构,对被测对象进行的一个整体检查,以确认被测对象的质量是否达到进行深入测试的要求。进行预测试之前要满足主测试前置条件,接下来可以依据在设计阶段建立的测试脚本来执行测试,并且本测试活动执行之前需要满足执行测试脚本所需的前置条件。测试执行阶段还包括对测试结果的验证,通常以缺陷报告的形式记录预期结果和实际结果之间的差异。

3.1.5 结束阶段

在重复进行的过程中应用TMap结构化测试方法可以带来许多好处。它可以促进测试成果物在后续测试过程中的复用以及加速一些测试活动。测试产品可以是有形的东西――测试件,如测试用例或测试环境,也可以无形的东西――过程评估,如对经验的总结。

当保存测试件时,需要从大量测试件中选择适合的内容进行保存。测试件主要包括测试用例、 测试脚本和测试基础架构说明等。在测试过程中,要保证测试用例与测试依据、测试对象保持一致。如果不能做到上述的要求,可规划测试件的保存优先顺序,通常测试用例的优先级最高。

测试过程的评估也是在这一阶段中进行。这样做的目的是学习经验,并将这些经验教训应用在新的测试中。测试过程的评估还可以作为测试主管编制最终报告的输入项(最终报告的编制属于控制阶段的活动)。

3.2 TMap生命周期模型的好处

3.2.1 结构化测试方法

在传统的非结构化的软件测试过程中,可能会经常出现一些问题:两个及以上的数据集单独评估时会产生一个结果,而联合起来进行评估时会产生一个相反的结果[6]。当测试人员使用测试生命周期模型对测试过程保持整体认识时,这种现象就很少会发生。而作为一个好的结构化测试方法,TMap可以带来如下好处:

1)能够针对被测软件的质量风险提供深入认知和建议;

2)能够在早期发现缺陷;

3)能够预防缺陷;

4)能够使测试过程尽量短的占据整个开发过程的关键路径,从而缩短了软件开发的交付时间;

5)能够对测试产品(如测试脚本和测试用例)进行复用建立清晰的测试过程,能够使时间、成本和质量的管理保持一致性和标准化,所有参与测试的人员将使用同样的测试语言。

3.2.2 不必严格按照时序方式执行各个测试阶段

TMap软件测试模型只有执行阶段占据项目的关键路径,其他阶段的所有活动都可以避开关键路径执行。并且当计划、准备和设计阶段的工作越充分时,测试执行阶段所需要的时间越少。生命周期模型的形状(平行四边形)意味着测试的各个阶段不必以严格的时序方式执行,不同测试阶段可以出现时间重叠或同步进行的情况。

3.2.3 TMap测试模型可以与开发生命周期配合使用

软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程是软件的生命周期[7]。TMap测试生命周期与软件开发生命周期之间的关系取决于所应用的软件开发方法和相关测试级别。然而,有两个“固定”时间点有助于确定测试生命周期和开发生命周期的关系。一个是准备阶段的开始时间点与获得测试依据的时间点的对应关系;另一个是执行阶段的开始时间点与获得测试对象的时间点的关系。因此,TMap测试模型可以与软件的开发生命周期配合使用,使测试更加灵活。

4 结束语

基于模型的软件测试在学术界和软件工业界都得到了重视,并得到越来越广泛的应用。软件测试模型是对软件行为和软件结构的抽象描述,可以用于生成测试用例,进行测试失效辨识,从而有效提高测试效率,并有利于测试结果评价。基于TMap的软件测试模型还需要要在以下几个方面进行深入研究:

1)对基于TMap的软件测试模型本身的研究一方面要针对专用TMap测试模型进行抽象获取通用模型,另一方面也要对不同类型软件开发专用的TMap测试模型。模型的研究包括理论和应用两方面,在理论方面要加强形式化描述的准确性和统一性,在应用方面应该寻找能建立更加完备的基于TMap的测试用例的方法,提高测试的准确性。

2)测试的自动化,基于TMap的软件测试模型不能自动生成测试用例。这与TMap软件测试生命周期的灵活性相关,在未来要完善这种软件测试模型的结构性从而可以自动生成测试用例。

参考文献:

[1] 齐志昌, 谭庆平, 宁洪. 软件工程[M]. 北京: 高等教育出版社, 2001.

[2] 周涛. 航天型号软件测试[M]. 北京: 宇航出版社, 1999.

[3] 余久久, 张佑生. 软件测试改进模型研究进展[J]. 计算机应用与软件, 2012(11).

[4] 朱少民. 软件测试方法和技术[M]. 2版.北京: 清华大学出版社, 2010: 66-70.

[5] Roger S Presma. 软件工程实践者的研究方法[M]. 4版. 北京:机械工业出版社,2000:312-356.

软件开发试用期总结篇12

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)24-0169-02

一、软件测试行业现状

近年来,我国IT软件产业呈现迅猛发展的态势,但是由于许多国内软件企业存在着“重开发,轻测试”的倾向和认识的误区,往往导致在软件开发工程师开发出一个软件后,却没有一个好的软件测试工程师对软件项目进行测试,从而导致所开发的产品出现质量问题,这也从侧面突显了我国软件测试人才的极度匮乏。国外IT企业中的软件测试与软件开发人员的比例一般维持在1∶1左右,而在国内的一些IT企业中,这一比例却仅在1∶4~1∶5之间。因此,高校如何培养符合社会需求的大批高质量软件测试人才,如何尽快建立软件测试人才的系统培养机制,进而保障软件业的健康化发展,已成为现阶段应用型本科院校人才培养极为艰巨和紧迫的任务。

二、软件测试课程的现状

当前,《软件测试》课程已从隶属于《软件工程》课程单独一章的内容发展成为软件工程专业中一门独立、必修、核心的课程,甚至有些学校已经单独开设了“软件测试”这一专业。笔者结合近几年的教学情况,总结了该课程中尚存在的若干问题。

1.授课内容陈旧,理论知识多、枯燥。随着软件开发技术的发展和进步,当前软件测试领域不断涌现出新的测试理论、测试技术、测试方法及测试工具,如:敏捷开发所引起的敏捷测试技术、探索式测试技术及快速迭代测试技术,不断普及的自动化测试催生了大量自动化测试工具的产生及应用,等等。而反观当下大多数与软件测试有关的教材及参考书,绝大部分仍以传统而深奥的理论知识为主,同时辅以传统的测试模型及测试方法的介绍,缺乏案例教学及项目驱动教学的实例,授课内容多,一个学期的课时往往不够安排,教与学的过程都显得极为枯燥乏力。

2.缺乏良好的实训平台,实验内容与理论知识难以结合。软件测试按不同的标准可分为不同的类型,如图1所示。这些不同类型的测试在理论课上往往都会涉及到,但在实验课上却难以一一展开,尽管安排了“2+2”的周课时(即每周2节理论课+每周2节实验课),但由于受限于实验案例的选择、机房上机环境的配置、缺乏良好的实训平台及学生基础参差不齐等原因,实验内容与理论知识始终难以结合。

3.“重开发,轻测试”的思想普遍存在,学生疲于应付考试,死记硬背多,考完即忘。软件测试是一门综合性强、涉及学科领域多的课程,学生普遍缺乏具体认识,大多存在“重开发、轻测试”的心理,认为只要能把系统开发出来,做不做测试都无关紧要。这也导致学生对这门课的学习不够重视,期末考试也是疲于应付,对一些基础知识甚至是软件测试领域中的常识问题,不注重理解,死记硬背,其结果必然是背得快、忘得也快。基本考核结束之后,所有的知识点也都还给授课教师了。

三、分层次概念的提出

“分层次教学”的思想源于孔子提出的“因材施教”。目前“分层次教学”的思想在高等教育领域尚处于探索与研究阶段,为适应社会和经济发展对工程创新型人才的需求,龙岩学院信息工程学院积极推行“应用型本科人才培养模式改革与实践”的人才培养方案,不断在专业培养方案、教学模式、课程体系及教学方法和手段等方面进行创新和变革,以期提高教学效果和人才培养质量。软件工程专业在上述大环境下,根据自身特点和社会市场对软件人才的需求,对课程体系进行重新调整,并按照专业能力分阶段、分层次的培养目标,运用宏观调配的方法对课程体系各知识模块进行整合与优化。

四、拟采取的措施

《软件测试》课程是软件工程专业的一门专业核心课,是培养学生软件测试理论、技术、方法和能力的重要课程,同时,软件测试也是当前IT行业最热门和紧俏的职业之一,是保证软件产品质量、提高软件可靠性、降低软件成本和风险的重要手段。基于此,《软件测试》课程必须在教学内容和教学方法上及时调整和更新,使课程建设与学科建设紧密结合,既要满足软件业对软件测试人才的需求,又要保证软件工程专业中各知识模块之间的系统性和完整性。本节以下内容将详细描述此次分层次教学改革中所采取的措施。

1.对学生分组。笔者所在学院软件工程专业,一直采用“3+1”的教学模式,软件测试课程开设在大三上学期(相比其他院校,开设时间提早了一个学期),学生经过大一、大二两学年专业基础课及部分专业课的学习,基本能找到自己的学习兴趣并定位自己的学习方向,如:有学生对某门程序设计语言,即编程感兴趣,有学生对嵌入式开发、物联网感兴趣,当然也有学生对软件测试行业感兴趣,等等。结合学生自己的兴趣及学习情况,对学生进行分组,主要分为三类,其中:I类――基础了解类;II类――一般测试类;III类――测试开发类。

2.实施不同的措施。根据课前对学生的上述分组,对不同层次要求的学生,实施以下分层。

(1)理论教学内容。结合前文第2节所述软件测试课程教学中存在的问题,将理论授课内容进行调整后主要分为以下四个部分:①软件测试基本概念篇;②软件测试技术篇;③软件测试过程篇;④软件测试项目实践应用篇。其中①中主要介绍软件测试的概念、分类及软件缺陷等内容,②中主要包含黑盒测试技术及白盒测试技术,③中主要是对单元测试、集成测试、系统测试及验收测试等进行描述,④则主要按测试模型中的不同步骤进行介绍,包括:测试需求分析与测试计划、设计与维护测试用例、部署测试环境、测试执行与跟踪、缺陷报告与质量分析报告等。

对理论教学内容所采取的策略是:I类、II类、III类不同分组的学生,都需要对①、②、③中的内容进行学习;II类、III类学生还需要对④中涉及的内容进行学习;此外,III类学生还需利用课外时间,学习与测试自动化及测试框架相关的知识。

(2)实验教学内容。结合理论教学内容及实验室配置环境等因素,在软件测试课程中所开设的实验教学内容主要有:①测试之初体验(在没有任何测试基础的情况下如何进行测试);②黑盒测试;③白盒测试;④单元测试;⑤功能测试;⑥性能测试;⑦系统测试。

对实验教学内容所采取的策略是:I类、II类、III类不同分组的学生,都需要实验的内容是:①、②、③、④;II类、III类学生还需要对⑤、⑥部分进行学习和实践;此外,III类学生还需利用课外时间,学习并实践⑦的内容。

(3)考核方式。为避免学生应对考试死记硬背的现象,将期末总评的成绩按以下标准进行:总评成绩=考勤×10%+期中×20%+实验×20%+期末×50%,即适当降低期末卷面分数的比例,提高期中及实验成绩比例。鉴于学校教务处要求,期末考试依然采用统一的试卷,但期中考试则根据不同层次的学生采用不同的试卷进行考核,实验部分的成绩也依据不同层次学生的不同表现进行评定,且要充分利用分层的优势进行考核。

3.成效。此次教学改革的受益对象主要是我校2012级软件工程共计109位学生及2013级软件工程共计106名学生。对于I类层次的学生,除了学习了软件测试基础知识之外,他们还能将学习的重心放在自己感兴趣的其他科目上;对于II类、III类层次的学生则对课本及课外知识都进行了学习,这为他们毕业之后的职业发展奠定了良好的基础。

五、结语

教学改革任重而道远,非一朝一夕能成。未来还需努力的方向在于:①引入更多的案例进行教学,丰富实验课堂;②进一步完善针对本校不同层次学生的《软件测试》课程实验指导书;③给学生加以更多职业规划方面的辅导,为当今社会IT行业中培养“全面软件测试工程师”而努力。

参考文献:

[1]余久久,张佑生,傅廷亮.软件测试课程教学思考[J].安庆师范学院学报(自然科学版),2013,19(4):121-126.

友情链接