首页 优秀范文 软件开发试用期工作

软件开发试用期工作赏析八篇

时间:2023-03-08 15:25:36

软件开发试用期工作

软件开发试用期工作第1篇

【关键词】软件测试 质量 策略

1 软件测试现状分析

随着计算机软、硬件技术的发展,计算机技术已经渗透到社会各行各业中,什么都离不开计算机,而且计算机软件的功能非常强大,无处不在,无所不能,计算机软件也变得多样化、复杂化,软件运行出现的错误和缺陷的几率越来越大,为了保证软件的质量,需要测试人员反复测试论证,软件测试工作在软件项目生命周期中的重要性日益突出。当前,我国的软件开发能力比欧美发达国家差不了多少,主要差距就是软件质量。国外的大型软件开发公司中软件测试人员和软件工程师一般是1:1的比例,我国目前还不是很规范,但也正在向这方面靠拢。软件测试在我国越来越趋于标准化科学化,是一个很有发展前途的职业。

2 软件开发与软件测试

通常我们理解的软件开发可能只是程序员通过一定的专业技术,如编程语言、数据库技术创造出一个新的应用程序。其实软件开发是一个系统的工程,包括需求分析、设计、编码、测试、维护等等几个环节。软件测试是整个软件开发流程中的一个重要的环节,主要包括白盒测试、灰盒测试和黑盒测试。白盒测试一般用于单元测试,需要测试人员对于代码结构有很好的理解,黑盒测试也就是我们通常说的功能测试,主要检测软件功能是否满足用户的功能需求。灰盒测试则是界于白盒和黑盒测试之间的一种测试方法。在现代软件开发流程中,测试工作是贯穿于整个开发流程,并不是在程序员编码完成以后才开始的。在软件开发前期,测试人员需要根据用户的需求,编写测试计划,准备测试方案,编写测试用例,甚至根据业务需要编写不同的测试工具,为后续的测试工作做好准备。在软件开发中后期,测试人员需要利用测试工具按照测试方案、测试用例和流程对软件产品进行功能和性能测试。在执行完测试方案、测试用例和流程后,需要跟踪软件缺陷,以确保最后开发出来的成果能够真正满足用户的需求,尽量以最小的代价来发现尽可能多的错误。

在整个软件开发过程中,软件测试要尽可能早的参与到项目活动中,最好是项目初期就要界入其中,这样就可以尽可能早的并且多的发现软件缺陷。如果在软件研发后期发现框架问题,可能会导致很多功能模块需要返工,越晚开始,测试人员对软件的了解就会越少,就无法深入测试,可能漏测掉很多重要的功能,可能会在短时间内发现大量的软件缺陷,不利于软件的版本稳定。

软件测试不象编程技术那样发展那么迅速,可参考借鉴的东西非常少,软件中每一个功能模块的测试方案都需要测试人员多方面的考虑,所以这意味着测试更需要人的创新能力。验证程序的正确性,远不象普通人想象的机械重复性的操作那样简单。验证程序的正确性更是需要人们大量的创造性劳动。

3 软件测试策略

要做好软件测试工作,会遇到很多挑战和困难。这就需要我们软件测试人员通过自己专业的知识和想法不断提高自己。通常认为软件测试人员具备的基本素质按重要等级依次是:技术、沟通能力、自信心、责任心、耐心和细心等。

首先技术是基础,作为测试人员,测试人员应该比开发人员掌握更多的知识,在测试过程中,你必须了解软件的生命周期,知道什么阶段进行什么类型的测试。

其次是沟通能力,沟通能力是测试工作顺利进行的保障。在技术基础的保障下,测试人员必须充分了解用户的需求,知道哪些问题是软件问题,能够清楚描述软件出现问题的场景,最好是知道为什么会出现问题,最最好是知道如何修复这个问题,这样的话,就会更好的与开发人员进行沟通,测试工作也就会进行的更加顺利。

再次,测试人员必须有自信,软件测试是一项技术要求很高的工作,测试虽然基本不实现编码(当然,也会写测试脚本或测试代码),但特别要求对系统的整体把握能力。测试其实是很有内容的,只是目前没有受到足够的重视,没有被提高到它应有的地位。在技术基础的保障下,你应该非常自信地进行自己的测试工作,理直气壮地向开发人员提出软件问题,并坚持自己的观点,明确各方责任。最后,测试工作非常重要,你担负着软件质量验收责任,你必须有责任心,耐心和细心地工作,争取不放过任何一丝一毫的软件错误和缺陷。

在整个软件测试过程中,是否能够准确充分的发现足够多的软件错误和缺陷,软件的测试管理工作非常重要。

第一,严格遵行测试过程。首先进行需求分析,了解用户的需求,并且充分了解软件的测试范围和测试内容,准备好测试所需要的数据,然后经过评审,这一个过程可以避免测试人员对测试需求的理解错误,遗漏测试内容。其次进行软件测试用例的设计,明确对每一项功能应该怎样进行测试,包括选择什么样的测试工具、操作流程、输入数据和输出结果等,再次评审。这一过程可以避免测试人员选择工具错误,操作流程或输入数据错误,遗漏测试内容等。第三个阶段是执行测试用例,在执行过程中最好详细记录测试结果,在什么样的输入情况下产生什么样的输出结果,仔细比对软件原始需求,确定软件是否发现问题。测试用例执行完毕后,也需要进行评审,主要检测测试是否进行充分,记录是否准确,软件问题提出是否正确。

第二,真实模拟客户环境。随着开发技术的不断进步,诸如多线程,虚拟化,大数据量的并发,安全性,软件间、不同系统平台间的交互响应这类环境的搭建,对测试人员来讲都很有挑战。在执行测试前,我们得尽可能真实的模拟客户的使用环境。这样才能真正的发现软件的缺陷。

第三,有效验证程序正确性。测试人员要比开发人员考虑更多的东西,在设计测试用例的时候,要充分考虑到其他功能以及本功能的关联关系,要有大局观。需要扎实的软件测试理论,尽量自己分析问题,多涉猎一些项目之外的知识.

第四,积极跟踪软件缺陷。测试不仅仅是发现程序中的缺陷,更重要的是跟踪解决这些缺陷,因为只有缺陷被解决了,软件质量才有可能提高,我们的成绩才能得以真正的体现。事实确实是这样,测试人员提交了软件缺陷,如何说服开发人员修复这个缺陷,才是关键。只有缺陷被修复,软件的质量才会提高,这样才能体现测试人员的工作价值。

4 总结

总之,软件测试是整个软件开发流程中重要并且不可缺少的环节,做好了软件测试工作,才能保障软件的质量。

参考文献

[1]朱少民.全程软件测试[M].北京:电子工业出版社,2007(09).

[2](美)佩腾(Patton,R.)著.张小松等译.软件测试[M].北京:机械工业出版社,2006(10).

软件开发试用期工作第2篇

关键词:高职院校;软件测试;教学改革

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

软件企业已经逐步从“手工作坊”式的运作模式发展为工程化开发,企业的规模和管理水平不断提高。截至2014年9月底,累计信息产业部认定软件企业达到9968家,登记的软件产品达到20192个。目前,通过CMM2级以上的企业超过了100家。其中,通过3级的有50多家,通过4到5级的有9家[1]。基于面向产业化、规模化和标准化方向的转变,软件企业需要大量软件工作者从事基础工作。软件生产如同传统产业的流水线作业,需要大量软件测试人员按照规范测试整个工程。一名合格的软件测试工程师,不仅仅要有扎实的测试基础,更需要具备进行自动化测试的能力。针对这些第一线从事软件测试的应用型人才的培养,主要通过高职计算机专业教育。

在我国,大部分的高职院校都开设了计算机科学与技术专业,在这些高校的专业培养计划与方案中,基本都设置了《软件测试》课程[2]。通过《软件测试》课程的学习,使学生了解软件测试领域的基本职业活动,掌握软件测试的技能以及相应知识,培养学生较强的逻辑思维能力以及动手能力。对高职学生而言,这样的课程设置无疑明确定向未来的职业角色。然而目前,在软件测试教学开展中仍然面临大量实际问题需要相关教师来关注和解决。笔者结合近年来的教学实际,就高职院校《软件测试》课程的教学中存在的问题进行一些研究与探讨,提出了教改思路,并给出了一些实际的改革方案,以期提高软件测试的教学水平。

1 课程教学中存在的主要问题

对高职《软件测试》课程培养侧重,主要在于尽快让学生接触软件测试的基本职业活动,缩短了学生进入职业角色的适应期。然而,事与愿违,目前大学软件测试教学中存在很多问题:

1.1教材

目前市面上涉及软件测试方面的教材质量良莠不齐,种类繁多。大部分教材知识结构不够合理,偏重理论,测试工具方面实验指导内容普遍偏少,可操作性差。测试实例设计存在不规范性,测试项目多为简易应用程序,距离实际项目差距很大。

1.2重开发轻测试

软件测试课程多为计算机专业必修课,但是学生普遍存在重开发轻测试的偏见。很多学生认为软件测试就是简单的找茬,一项纯粹辅助软件开发的工作,技术要求低,内容简单重复,效率低。

1.3重理论轻实践

软件测试课程需要将理论和实践两个部分紧密结合起来,而且实践性较强。然而,教学过程中知识结构往往不够合理,对实践的重视程度不够,缺乏具体的实践操作指导。高校计算机教师通常侧重基础理论知识,忽视测试自动化和测试管理等相关高级层面知识,很少为学生提供较完整的测试项目实操方面的知识。

另外,课程最后的考核方式往往采用闭卷考试形式,考核内容侧重零散的基础理论知识点,而无法体现综合的测试实操能力。这样无疑导致学生对软件测试课程形成“重理论轻实践”的错误看法。

1.4测试案例单一,重功能测试轻其他种类测试

在实际课程教学过程中,测试系统简易单一,不是图书馆管理系统,就是学生作业难度的电子商务网站。学校往往缺乏时下的测试项目实例。测试项目大多属于公司内部资料,获取不易,不像通用应用程序一样可以随意搜索。

通常的软件系统测试不仅仅需要功能方面的测试,而且还需要很多其他种类的测试工作,比如性能测试、安全测试等,这类测试难度往往高于功能测试。然而,教学过程中的软件测试实验,往往集中在QTP等软件测试工具的简单录制层面,缺少系统的性能等其他种类测试的实操和分析能力,导致学生产生“软件测试等于功能测试”的错误认识。

1.5自动化程度低

一名合格的软件测试工程师,不仅需要掌握基本的软件测试技能,而且必须熟悉主流的自动化软件测试工具。然而在教学过程中,自动化测试工具往往作为锦上添花的教学内容,只教授简单的使用知识。学生对各类测试自动化工具明显掌握不够,测试脚本编写能力不足,测试自动化程度低,进而测试效率也必然很低。这样不具有分析能力和创新意识的学生,必然不具有职业竞争力。

由以上分析可见,我们必须对测试课程加以改进。只有这样,才能使得软件测试课程更加符合满足现实职业需求的发展需求,促进学校计算机相关专业的快速发展。

2 教学改革方案

多年来高职学生的软件测试课程现状不容乐观,各式各样的教学问题需要引起重视。针对我院学生的软件技术水平及现有教学存在的弊端,笔者根据多年教学实践和思考,就教学改革提出以下措施。

2.1 开课阶段选择

就原则而言,C语言、面向对象程序设计等编程课程是软件测试课程的先修课程。高职院校通常选择在第二学年开设该课程,这是因为学生已经经历过了相关程序设计课程,编程能力和专业理解能力已经有了一定的基础。建议根据学生的情况,提前对学生进行软件测试理念的灌输。例如在相关程序设计课程中,要求学生对教材程序示例和习题进行测试,并且对测试用例进行点评。同时即可挑选一些综合素质程度较好的学生提前学习。面向这些低年级学生,学习兴趣较浓厚,重点介绍软件测试入门知识,可以适当降低软件测试理论难度,引导进行自动化测试。

2.2教材选择

就高职学生而言,他们的计算机专业基础相对薄弱,很多同学对软件测试课程存在偏见。在教学过程中,建议选择使相对直观且简单、理论性略弱,操作性较强的教材,以便教学难度适中,提高教学的质量。另外,教材不要单纯是枯燥的理论阐述,最好搭配丰富的图表和多样的例题,激发学生的学习兴趣。

另外,建议不要恪守教材,应该尽量量体裁衣。根据专业培养方向的不同,选择不同的教材内容和授课方式。例如就软件方向学生而言,补充实用性的技术,例如强调一些针对某种具体语言的专业测试工具。

2.3引导学生正确认识软件测试

如前面所述,学生对软件测试职业存在很多偏见,需要教师对具体问题具体分析,给予学生正确引导。例如针对很多学生反映“软件测试不如软件开发”的问题。教师应将软件测试和软件开发职业现状进行对比分析。从事软件开发职位的人员往往需要某种具体编程技术,而且不轻易改变。发展趋势是要求人员技术逐步深而精。于此对照,软件测试职位则要求人员技术广而泛。测试人员往往需要完成产品线上多个子产品的测试工作,测试范围涉及文档、代码、平台环境等多个对象。后期,功能测试工作一般要求自动化,而且需要开展性能、安全等多种测试项目,工作挑战性和难度并不逊色于软件开发。

另外,教师可以授课过程中,适度介绍就业前景,引导学生多关注软件测试行业的发展动态,建议学生访问例如CSDN、51Testing技术论坛,使学生了解与国际前沿同步的知识。总之,让学生摒除偏见,明晰软件测试行业的职业要求和个人发展空间,进而激发学习主动性,提高职业认知程度。

2.4适度选择理论教学内容,合理安排实践教学进程

在软件测试课程授课过程中,我们探索应用型课程结构,使软件测试实现“理实一体化”课程。在教学内容上加以调整,适度选择理论教学内容,以软件测试基本理论为基础;与此同时,合理安排实践教学进程,重视培养学生实操能力。整个教学过程分为理论讲授、上机实验、实训三个部分。全课平时课时64学时,每周4课时,前两个课时授课,后两个课时上机,理论授课与上机实验穿插同步进行,两者相辅相成;学期期末设置为时一周的实训,以期达到理论与实践紧密结合的教学效果。

首先,课堂教学打好理论基础,主要介绍软件测试基本概念、各种测试技术和方法、测试用例的设计、软件测试项目的组织和管理等相关知识。讲授过程中,向学生案例教学,组织学生讨论测试方案;其他类型的测试,与功能测试并重。根据时下软件测试发展趋势,选择主流工具进行讲解,掌握软件的使用,简要介绍其他工具。整个软件测试课程分为10个学习单元,授课安排详见表1。

通过上机实践,重视实际操作能力的培养。首先,安排一些基础实验,仅限简单操作性范围,设计与教学相配套的上机实验内容,包括白盒测试、黑盒测试等。这样帮助学生掌握测试的基本方法,加深对相关基本概念的理解。之后,遵循尽量接近行业使用的原则,适度选择主流的自动化测试工具实验。另外,安排性能测试工具上机实验,引导学生分析测试结果,提高其解决性能问题高含金量技能。相关自动化测试工具和重点知识点的使用详见表2:

2.QTP检查点

3.QTP数据驱动\&2\&性能测试工具\&1.LoadRunner的使用

2.负载数据分析\&3\&C#程序单元测试\&1.VS2010环境下单元测试\&4\&Java程序单元测试\&1.Junit的使用\&5\&C程序单元测试\&1.Cunit的使用\&6\&Selenium的使用\&1.Selenium测试脚本的录制回放

2.Selenium+Junit的使用\&]

实习在学期末集中进行,为时一整周,培训学生对各知识点的综合应用。将学生编为几个小组,按行业实际将他们分配角色,选择一个实际的软件测试项目来开展测试工作。该过程中,强调学生的测试专业技能,让学生掌握各种测试方法的实施,熟悉测试项目的工作流程。另外,现在我国软件测试业务已经扩展到各个行业的软件系统,学生在校期间只能接触通用软件系统。未来能够通过校企合作,扩展测试对象,希望能够引进结合地方经济、具有行业特色的软件系统,让学生实操测试技术。

2.5作业和考核方式

软件测试课程实践性较强,为了更加明确学习目标,激发学生学习热情,建议采用更加灵活的作业,比如在课后设置思考题。课程考试方式可以改革为报告形式,要求学生对某项流行软件产品提供测评报告。

2.6 积极开发校外实习实训基地

为了增加学生的工作经验,我校积极开发与软件测试相关的校外实习实训基地。近些年来,高校计算机专业就业情势不容乐观,计算机相关校企合作工作难度不小。但是出于深化软件测试课程改革、切实提高学生就业率和测试行业相关率,在院系领导的努力下,与酷派、丝路等软件公司建立实习实训基地。学生通过进入工学交替的实习实训岗位,参与到企业项目测试实践过程中,切实提升学生实操能力,逐步成为技能型人才。

3 结束语

软件测试行业的发展,给软件测试课程带来了机遇和挑战。针对软件测试课程的现状进行了分析,提出了教改思路并给出了一些实际的改革方案,力求切实提高学生软件测试实操能力,以期提高软件测试的教学水平。

参考文献:

[1] 20年中国软件大盘点万家企业60万从业人员[EB/OL]. .

[2] 杨鹏. 高职软件测试课程的教学探索与实践[J]. 番禺职业技术学院学报,2005(2).

[3] 杨鹏,贺平. 高职软件测试专业的构件与探索[J]. 教育与教学研究,2008(2).

[4] 王利娥,朱新华,李智. 项目驱动下的《软件测试》课程立体教学模式的研究与实践[J]. 中国科教创新导刊,2013(1).

软件开发试用期工作第3篇

关键词:彩超软件 质量控制 计划 实现过程 测试

1 概述

彩超研发是一项涉及生物学、医学、物理学和计算机等多学科交叉的工作,对该领域的研究需要投入巨大的人力、物力和财力,而且一些基础研究的投入需要一定周期。在一些发达国家,许多科研机构和跨国企业做了大量前瞻性的基础研究工作,为彩超技术不断的深化与完善,奠定了一定的理论和实践基础。随着整个超声行业技术的发展和企业自身研发能力的提高,海鹰医电实现了从黑白超声到彩色超声的跨越,成为国内能够完全自主完成彩超研发、生产为数不多的企业之一。彩超软件与以往的黑白超软件相比具有更多的软件功能、提供更复杂的用户操作,如何保证规模庞大的彩超软件的质量成为一大挑战性问题。保证软件的质量的重要途径就是制定和实施贯穿于开发全过程的技术与管理规范,实施工程化管理,运用软件工程的原理、思想和标准,通过技术规范与管理规范的有效实施来提高软件产品的可靠性及开发效率[1][2]。

2 软件生命周期分析

软件生命周期是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少[1][3]。常用瀑布模型来描述软件生存周期的各项内容,如下图1:

图1 软件瀑布模型

结合软件生存周期和企业实际研发、生产水平,彩超软件质量控制可以在软件计划、软件实现、软件测试三个过程着重把关,控制软件质量。

3 在软件计划过程中控制软件质量

软件计划以软件需求分析为母体分解实施。软件产品以满足用户需求为软件开发的主要任务,而需求分析正是用户需求的提炼。在项目初期及开发过程中,经常会碰到不能很好理解用户需求及用户需求频繁变更的情况,正确地对待这些变更并在计划中灵活安排可以保证软件产品在预计的进度内完成,可以保证计划工作的严肃性,可以维护软件计划、产品和活动与需求的一致性,从而从制度上控制软件质量。

4 在软件实现过程中控制软件质量

软件的实现过程对于软件产品的质量有着重要影响。统一软件过程(RUP)框架和面向对象(OO)程序方法在软件开发中的运用能明显提高软件开发效率,降低整个项目风险,从而提高软件质量。

4.1 RUP框架。RUP框架由Ratinnal公司在吸取多种软件过程和模型的长处的提出,利用用例驱动、以系统架构为中心、迭代增量的开发模型,能全面支持面向对象的开发方法,所以一经推出市场,就迅速得到业界广泛的认同[4]。

传统的软件开发模型瀑布式模型是一个单维的模型(如图1所示),在RUP框架中,软件开发生命周期根据时间和RUP的核心工作流,划分为二维空间,可以用二维坐标来描述。横轴通过时间组织,体现开发过程的动态结构,用“周期”、“阶段”、“迭代”、“里程碑”等术语描述;纵轴以内容来组织,体现开发过程的静态结构,即在某一时刻软件开发所要进行的工作,可以用“活动”,“工作流”,“产品”,“工作者”等概念来表示[3][4]。

RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。每个阶段结束于一个主要的里程碑,在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

在彩超软件中,初始阶段的目标是根据医生对彩超的软件需求建立模型并确定模型的边界条件。本阶段具有非常重要的意义,在这个阶段中关注的是整个超声软件中总体需求的风险。细化阶段的目标是分析超声软件各模型领域,建立健全的体系结构基础,编制超声软件计划。在构造阶段,实现所有模块并集成为产品,所有的软件功能被详细测试。交付阶段的重点是确保软件对最终用户是可用、易用、好用。交付阶段可以跨越几次迭代,包括为做准备的产品测试,基于用户反馈的少量的调整。

4.2 OO程序方法。OO程序方法一个重要的优点是支持信息隐蔽、数据抽象与封装,使得软件的开发、修改和维护易于进行;OO程序方法的另一个重要优点是,它可以在整个软件生命周期达到概念、原则、术语及表示法的高度一致,这种一致性使得各个系统成分尽管在不同的开发与演化阶段有不同的形态,但可具有贯穿整个软件生命周期的良好映射[3]。

在彩超软件制作过程中,采用这两种开发过程和开发方法可以使整个超声软件开发、维护、升级更为容易,提高软件生产效率、降低软件生产成本,控制软件质量从而提高软件的整体质量。

5 在软件测试过程中控制软件质量

软件测试是保证软件质量和可靠性的重要手段。在西方软件发达国家,软件测试受到普遍重视。在国际著名软件企业中,软件测试的费用占到了整个开发过程费用的40%以上。特殊情况下,对于性命枚关的软件,如飞行控制、核反应堆监控软件等,其测试费用甚至高达所有其他软件工程阶段费用总和的3-5倍[3][5]。

5.1 彩超软件的测试项目。针对彩超软件,需要制定和不断修订严格的测试项目,其主要包括性能测试和功能测试两大部分。每个测试项目由可定量描述的测试项组成。

超声软件的性能测试包括每个探头的黑白分辨率,选取标准模块两个不同深度对横向分辨率和纵向分辨率进行定量检测;性能测试还包括每个探头的频谱分辨率,选择人体两个不同器官进行血流定性检测。

超声软件的功能测试包括每个探头的功能调节的测试,有声功率、发射频率、扫描密度、动态范围、平滑处理、帧平均、二次谐波、焦点数、扫描范围、图像优化、边缘增强、灰阶曲线、深度、扫描范围、2B切换、4B切换、黑白翻转、图像旋转等测试项目;探头的预设值测试;测量功能测试,有2D常规测量、M常规测量、Doppler测量、产科测量、男科测量、妇科测量、泌尿科测量、外周血管测量、多胞胎测量、小器官测量、矫形外科测量、心脏测量等测试项目;内置工作站测试,有妇科、男科、泌尿科、小器官、血管、心室、二尖瓣、主动脉、左心室、常规报告、检索、诊断模板、等测试项目;其他功能测试,有回放功能(自动\手工,速度调节)、语言调节、日期、时间设置、图像存储格式选择、图像存储模式、体标目录、患者信息输入、iTouch(预设值)保存/回调、穿刺功能、体标选择、Dicom传输、3D/4D、宽景成像、注释功能、字符输入、输入法切换等测试项目。

5.2 彩超软件的测试主体。彩超软件的测试主体包含软件开发人员内部自测、研发团队总体测试、生产检验二次把关三级。不同的测试主体使用同样的测试标准,但合理的测试结果是,不同的测试主体发现的问题应该不尽相同。软件开发人员内部测试的工作重点是软件功能错误的检测,在内部自测将绝大多数功能错误解决的基础上提交研发团队总体测试;研发团队总体测试的工作重点是软件性能指标的检测,在将绝大多数性能误差解决的基础上提交生产检验进行二次测试;而二次测试的工作重点是绝对软件在批量生产过程中的问题。

6 总结

随着彩超的发展,功能越来越复杂,彩超软件的总体规模越来越大。通过在计划、实现过程、测试三个环节的科学管理,可以有效控制彩超软件的质量,提高产品的可靠性。

参考文献:

[1]张海藩.软件工程导论[M].北京:清华大学出版社,2012.

[2]赵爱静.软件质量评价在航天测控软件中的应用[J].无线电工程,2009,39(8).

[3]熊策.软件质量控制技术的研究与应用[D].长沙:中南大学,2004.

[4]丁峰,等.RUP软件工程过程研究及应用[J].计算机工程,2000,

26(10).

[5]李虎,史晓华,杨海燕,高仲仪.软件质量评价技术[J].计算机研究与发展,2002(39).

软件开发试用期工作第4篇

本文简要分析了将软件工程项目应用到商业银行中的相关背景,结合软件工程项目开发的基本流程,主要阐述的是商业银行中软件工程项目开发的七个重要阶段的主要内容、操作要点和注意事项,最后总结了软件工程项目管理对于商业银行正常运行和健康发展的重要意义,旨在提高软件工程项目在商业银行运用中的管理质量,从而提高商业银行的市场竞争力和促进商业银行健康发展。

【关键词】商业银行 软件工程 质量控制

1 将软件工程项目运用到商业银行中的相关背景

随着我国改革开放的不断深入和市场经济的持续发展,全球市场经济正逐步的向一体化方向发展,特别是在加入世贸组织之后,我国商业银行的运行模式与发展模式都较大程度上受到了外资银行融入所带来的影响,传统的商业银行运营模式面临着巨大的挑战,也由此一定程度上促进了软件工程项目管理和质量控制体系的发展。软件工程项目的管理和质量控制作为一个新兴的学科,在商业银行对其应用过程中充满着许多未知性,也因此充满着实践性。商业银行中的系统性软件以及其它各类业务范围的不断增加与更迭很大程度上推动了软件工程项目的质量控制与管理模式的发展。所以软件工程项目的有关工作人员,包括软件设计者、程序员、测试维护以及软件的后期管理人员要不断学习软件工程质量控制方面的新知识和新理论,注重实践,严格遵照相应的程序设计来提供软件项目的管理质量,促进软件项目的健康发展,从而大幅提升商业银行的运行效率和市场竞争力。

2 软件工程项目开发的主要步骤和操作要点

软件工程项目的开发是一个持续时间较长、内容较复杂的过程,通常将软件工程项目的开发过程分为以下七个阶段:

2.1 分析开发需求阶段

软件工程项目开发需求分析的首要工作是对用户的需求进行准确的市场分析与定位。有效的需求分析工作,可以一方面节约软件开发时的资金成本和时间投入,另一方面可以保证软件开发完成之后的实际利用率。软件项目按使用范围通常可以分为专用软件和通用软件两类,一般商业银行所使用的就是一种专业软件。根据经验,软件的用户在软件开发开始进行之前应该已经掌握了一些该软件的相关信息,软件的开发者要在开发之前对用户的需求进行具体的分析,并积极与用户进行交流讨论,从而最大程度的避免软件开发过程中一些低级错误和漏洞,减少不必要的成本投入。对于通用软件来说,在开始开发之前要对产品进行仔细、严格的市场调查,这样做不但是为了了解产品可以带来的经济效益和潜在市场价值,也是为了了解软件的潜在用户对软件的各种需求。

通过对软件开发的需求进行合理的分析,可以依据客户的具体需求,对该软件的具体功能、性能及运行环境进行充分的理解和掌握,从而大幅提升软件开发成功之后的使用效率。

2.2 概要设计阶段

概要设计阶段的主要任务就是确定开发软件工程项目具体需要用到的程序语言、操作系统以及运行平台等因素,并对这些因素进行概要设计,此外,还要根据实际情况选择恰当的瀑布式开发方式,从而通过特定的市场需求进行潜在编程和模型的选择。与此同时,还要具体分析特定编程项目的设计编码等数据,并建立科学的分析文档。除此之外,目标系统结构中的模块和接口、软件和硬件配置、数据具体结构等设计工作也需要在概要设计阶段完成。

2.3 详细设计阶段

在此阶段,需要根据实际情况对分析模型做一些必要的修改,促使修改的原因有很多,比如编程环境的需求、详细定义界面部分或数据库部分等等。目前很多编程语言都以及实现了界面的可视化设计,所以界面的设计工作通常在编码阶段进行。具体来说,软件开发的详细设计阶段就是要在概要设计的基础上对软件的体系结构进行细化至软件单元,然后对每个软件单元及其外部接口、输出和输入、流程逻辑、算法应用、性能描述、资源占用以及调试和测试计划等内容进行细致的数据库设计。

2.4 编码与软件单元测试阶段

在软件开发人员的分工工作中,要根据项目开发所使用的工具和方法,结合开发人员的技术特长及技术掌握熟练度来进行合理的分工。软件单元和数据库的开发一定要严格遵照相关技术的操作规范和操作步骤进行,同时为每个软件单元和数据库的测试设计特定的测试流程和参数。编码过程要应用已经确定的程序语言和工具,并严格依照系统的详细设计进行。最后要按照软件单元的测试计划依次对每个单元进行测试,并撰写测试结果报告。编码过程中可能会发现之前分析和设计阶段中存在的一些问题,这时要及时返回到之前的A段对问题进行解决。

2.5 集成及联合测试阶段

在确定每个软件单元的测试结果都符合要求之后,就可以将各软件单元、硬件和模块、网络及其它系统必需的资源一起整合集成到系统中去,然后就按照测试计划对系统进行集成测试,对测试结果中不符合预期和使用要求的地方要及时进行修改,直至所有指标都满足系统试运行的要求。

2.6 系统试运行阶段

在系统试运行开始之前,要根据实际情况选择合适的试点,开发人员要与试点用户共同合作做好系统的试运行工作,为试点用户提供软件运行所需的安装和操作条件并协助他们进行软件安装,同时对他们进行必要的软件操作培训。在系统进行试运行的时候,开发者要随时关注系统的使用情况及相关技术指标,并做好相关数据的记录,最后根据试点用户反馈及记录情况对系统的试运行效果进行分析和评估。

2.7 后期维护阶段

新开发软件程序投入到实际运用中之后,要做好软件的后期维护工作,并根据实际情况对软件程序进行必要的修改。软件工程的后期维护工作主要分为三个步骤:首先分析和理解软件工程程序,其次是修改程序,最后是对程序进行重新验证。

3 总结

总而言之,软件工程项目管理与质量控制工作对于推动商业银行的发展具有重要的意义。所以商业银行要不断提高其软件工程项目的管理水平,严格按照有关规范进行软件的开发与设计,保证软件运行的准确性和应用率,从而提高商业银行的市场竞争力。

参考文献

软件开发试用期工作第5篇

【关键词】敏捷测试 Scrum 研究

21世纪是信息化技术全面高速发展的时代,企业之间的竞争日趋激烈,产品质量对于企业的发展重要性得以凸显,并成为企业核心竞争力的突出表现之一。软件行业也面临类似的问题,软件系统变得越来越复杂,传统的软件工程理论下软件开发周期过长、无法保证软件质量、开发过程冗长、笨重,加之频繁的人员流动、迅速变化的市场,都让传统的软件开发方法无法适应新的市场竞争环境,软件的失败率变高。软件测试越来越受到重视,敏捷测试是软件测试的重要组成部分,本文尝试基于Scrum开展敏捷测试应用进行概述。

1 敏捷测试概述

敏捷开发模式正处于逐步推广阶段,具有较大的发展潜力。现代经济生活中,很难甚至无法预测基于计算的系统如何随着时间的推移而进行演化,市场情况瞬息万变,最终用户的需求也在不断变化,新的竞争危险也毫无征兆的出现,故对于轻量级的软件开发而言,需要不断变化,以应对以上软件开发问题。敏捷开发以人为核心,迭代,循序渐进,拥抱变化是其基本动力。

敏捷过程有以下要点:

(1)通过频繁迭代与客户形成早期良好合作,及时反馈提高产品质量;

(2)客户、需求人员、开发人员进行有意义频繁的交互,以及早发现问题;

(3)衡量功能实现的唯一标准是该功能的开发测试已完成,并测试通过。

敏捷测试以沟通、简单、反馈、勇气、尊重为核心价值观,在敏捷软件开发过程中开展的测试便可称为敏捷软件测试,测试人员适应变化,与技术人员、业务人员进行良好的协作,立即测试记录需求、驱动开发思想。敏捷测试法继承了敏捷软件开发原则,作为一个优秀的敏捷测试人员,需要遵守以下原则:提供持续的反馈,为客户创造价值,进行面对面的沟通,勇气,简单化,持续改进,相应变化,自我组织,关注人,享受乐趣。敏捷测试不仅仅是测试软件本身,而是包括软件测试的过程与模式,敏捷测试的目的是为了尽可能使功能与客户预期一致,确保开发、管理过程正确。敏捷测试人员需要参与所有的团队讨论与决策,测试人员需要开展更多的与测试无关,但与团队目标直接相关的工作。

相较于传统的测试,敏捷测试与开发并行,甚至优先于开发,测试团队也是开发团队的一部分,除却绝对的必要,工作软件即是文档,及时应对变化参与所有的团队会议、团队决策,极力促进团队沟通、团队与客户沟通。

2 基于Scrum的敏捷测试

Scrum是当前应用最广泛的敏捷开发方法,过程清晰有效,适合敏捷经验不足的团队使用,以下就此进行概述。

2.1 Scrum过程

Scrum过程包含三个过程:

(1)设计计划与体系结构,即将产品功能需求、缺陷、更新用户需求等待开发项,作为优先级排成等待开发项目,然后根据列表,进行风险评估,制定产品交付规则。其次,需建立体系结构,将待开发的项目分解为一系列的“问题包”,每个问题包包含一组对象集合,再将问题包按照同样的原则划分为迭代小组,在此基础上,团队建立独立的开发测试运行环境。

(2)迭代过程,包含多个迭代,每个迭代都对应相应的时间段,通常而言,一个迭代周期为2-4周,每个周期结束后开始下一个周期,每个迭代周期都需要相应的设计、测试、编码活动,每个迭代结束后,都需要完成计划内的待开发项目。

(3)交付过程:当开发产品经风险评估后,边可以进行验收测试,进入交付阶段,组装项目组,系统测试、回归测试,完成最终文档等步骤。在基于Scrum过程开发过程之中,需要达到风险评估标准才能停止开发,交付过程的最终目的在于是否在迭代过程中出现被忽视问题,为下一阶段的开发做准备。每次迭代,订单订单项不允许修改。

2.2 Scrum测试管理

(1)需要做好人员的配置,按照与项目的关系,将人员分为实际参与人员以及项目组外人员,包括经理以及最终用户等,前者主要包括管理者、产品负责人与团队,Scrum管理者不是项目经理,由能力较强熟悉Scrum成员承担。产品负责人是指一个角色,来自于用户、客户、销售部或开发部门的需求分析者,易于协作、沟通,具有代表性,有一定的授权,熟悉需求。

(2)需明确测试角色,软件开发工程师复杂编写代码,完成白盒、黑盒测试、单元测试。自动化测试工程师需要负责测试脚本、工具代码。测试工程师需要了解产品需求、编写测试案例、追踪产品,客户负责验收。

2.3 Scrum测试模型

Scrum测试过程中,做好需求分析、分解测试的需求,及时与研发产品人员沟通的是关键。测试的一阶段,需要根据软件设计、需求,完成确认对所需要使用的测试工具,包括需求管理工具、测试案例、缺陷管理工具等,大规模公司可开发适应本公司的管理工具。在迭代阶段,每个迭代周期结束前,都需要提交方针,测试该周期或上个周期完成功能,以评价开发功能是否达到预期。

2.4 Scrum测试过程管理

首选,需要编制Scrum下的测试计划,以文档形式呈现,对整个测试过程都需要有相应的测试计划书,每个迭代阶段计划书都有相应的功能性文档修改。

计划书需要突出以下几点:

(1)产品的基本信息,记录Sprint各个阶段测试情况与结果,开发测试所有角色任务列表;

(2)确认测试计划包含的测试范围,根据新开发的功能及其相关的原有功能,需要定义划入测试产品功能,进行冒烟测试;

(3)划分测试阶段、明确方法与任务。在每个测试过程中,都需要有计划书、案例,测试过程中需要提交缺陷至相应的管理系统,在测试过程中需要明_监控测试的方法,搭建测试环境,评估进度计划风险,安排测试时间。

3 小结

基于Scrum的敏捷测试非常适合小型软件开发企业,容易上手,但作为一种科学管理方法,想要完整的掌握也有一定的难度。软件开发企业需要与时俱进,掌握该方法的精髓,即重视迭代管理、团队协作,勇于创新。

参考文献

[1]杨娜,严振亚.基于Scrum方法的敏捷测试探讨[J].数字技术与应用,2017(01):51-53.

[2]张晓静.敏捷测试在移动App开发中的研究与应用[J].电子科学技术,2015(02):211-213.

[3]孙笑,张小晶.Scrum敏捷测试――从敏捷测试中寻找发展机遇[J].科技创新导报,2014(25):255.

[4]曹栋.敏捷测试在银行IT领域中的研究与分析[J].电子技术与软件工程,2014(16):98-99.

软件开发试用期工作第6篇

【关键词】NESTOR;软件工程化;过程管理

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.

[3]姜霄雪,严建平,蒋剑伟.基于CMMI的过程和产品质量保证过程研究与应用[J].广东通信技术,2017,37(04):77-79.

软件开发试用期工作第7篇

【关键词】软件 自动化 应用研究 测试

一款软件从开发到,除了软件设计编程之外,软件测试也是不可或缺的一项中心环节。软件测试在以往都是软件开发人员自己检测,但程序员却无法将充足的时间用来测试,所以后来发展为软件开发与测试两者独立,测试部分由测试部门负责。但这个过程人力物力消耗大,时间长,所以软件自动化检测技术也就应运而生。

1 软件自动化测试

1.1 软件自动化测试的概念

软件的自动化测试是一种新的软件测试技术,根据需要,可以将测试系统的运行环境进行调整,然后按照测试要求与目的设置相关程序功能,然后由系统按照设置好的程序对需要进行测试的软件测试。其运用主要地方为:软件开发完成后的测试以及维护测试。

1.2 软件自动化测试的目标

通过软件自动化测试技术进行新软件测试,可以达到:用最少的经费,取得更完整彻底的测试结果,从而根据测试结果进行软件的再修改,以此来提高软件的质量。

1.3 软件自动化测试的特点

较传统的人工测试而言,软件自动化测试具有如下特点:

1.3.1 在软件版本升级后,进行再测试

其实这一点是这项检测技术最基本也是最核心的任务。当一个软件需要进行版本升级时,为了测试新版本软件的性能,那么人工软件测试与自动化软件测试就无可比拟。版本更新周期短,不具有开发阶段周期长这一特质。所以,利用软件自动化测试技术,在省却大量测试时间的同时,还可以加快新版本测试进度,降低版本升级的费用。

1.3.2 可持续测试

软件自动化测试技术的另一大特点就是其可持续测试性,自动化测试只要机器运行,就可以一直测试下去,而手工测试却无法具备测试持续性。这是人力测试无法解决的劣势。

1.3.3 多任务性

人力有穷时,对于简单软件系统,人工测试还能胜任,但遇到诸如多元网络传输系统,依靠人力对系统测试,是行不通的。但自动化软件测试技术却可以胜任,其可以同时对这些网元进行仿真模拟测试。所以,自动化测试具有多任务性。

1.3.4 人力资源利用率高

通过自动化软件检测技术,可以将更多地人力资源解放出来,让有限的人力资源不再陷入繁琐的测试当中。利用自动化检测软件可以让工作人员只需要思考测试的目的,设计更好地测试方案,控制好测试软件即可。

1.3.5 测试进程具有稳定性

利用软件自动化测试技术,可以将测试的环境保持稳定一致,可以规避人力测试因外界因素影响测试过程,导致测试结果不准确这一问题。

1.3.6 测试过程与结果可做范例

软件经过自动化测试之后,测试软件就会将测试信息记录下来,作为范例,当遇到相似测试项目时,这些信息也可以作参考或直接使用。这也是人力测试所不具备的。

1.4 软件自动化测试所需技术

一款自动化测试软件,其需要具备这几样必须条件:被测软件信息输入部、测试结果输出部分以及多次测试结果对比部分。具备这三大部分,测试软件才能实现自动化测试。

1.5 软件自动化测试的不足

软件自动化测试,其优点甚多,但并非万能。自动化测试任然存在一些不足之处,这些都是自动化测试技术所无法具备的:

1.5.1 无法完全替代人工测试与测试工程师

有许多测试任务是自动化测试软件无法完成的。这时候就需要用到人力测试以及测试工程师了。对于简单的软件测试,依靠人力测试即可解决,而不需要检测软件参与,检测软件每次测试,都需进行系统调试,对于简单的测试,其调试时间与人力测试时间相当,这类情况检测软件的使用就不合时宜。还有一些类型也是软件测试所无法替代的,例如:被测软件运行不稳定,这时就需要人力进行测试,这样方便调节。还有有一些需要人机交互的测试,测试软件是一种设定好的程序,对于需要实时进行人机交互的测试来说,其自动化测试无法做到随机应变。所以,自动化软件测试是不能完全替代人工测试的。

1.5.2 软件新版本的再测试没人工发现bug多

自动化测试软件的一大好处就是可重复测试,但当使用以往测试数据来测试同软件的新版本之时,自动化软件检测所发现的bug往往会低于人工测试所发现的bug。

1.5.3 自动化软件检测对软件开发存在一定制约

由于自动化软件测试程序相对固定,当一些被测软件有重大更新时,往往由于测试程序无法与新版本做到兼容,从而导致测试软件崩溃。而自动化测试软件的再设计与维护成本会比人工测试高,且自动化测试比人工测试影响要高,所以会对开发人员造成影响,综合以上因素,会对一些被测软件的重大更新部分造成修改限制。

所以,合理安排软件自动化测试与人工软件测试,将会更利于开发人员降低开发成本,减少测试时间,获取高效益。

2 适合软件自动化测试技术的领域与辅助测试工具

2.1 适用范围

目前的软件自动化测试适用于:单元/组件测试、BVT(版本测试)、集成测试、系统测试、回归测试以及性能测试。

2.2 软件自动化测试与人工测试使用环境总结

软件自动化测试:该被测软件项目无严格时间限制,有良好测试计划与测试目的,测试内容涉及多平台,涉及被测软件运行所需硬件,被测软件可以使用自动化软件进行测试等这些情况下都可以使用软件自动化测试。

人工软件测试:没有严格测试时间限制,没有明确的测试目的与计划,开发人员或软件测试人员当中不会操作软件自动化测试的,刚加入开发的新成员,没有相关硬件等等这些情况就不是自动化软件测试所能达到的。

2.3 软件自动化测试所需工具

在软件自动化测试进程中,还需要一些工具辅助软件测试,目前按照使用环境可以分为:

2.3.1 管理型工具

管理型测试工具主要是对软件测试的计划、用到的测试用例、测试所需以及测试进程进行综合管理,同时还能通过这些管理型工具发现自动化测试所存在的漏洞,并就这些测试漏洞进行管理跟踪。而软件的开发者和软件测试人员能够通过管理工具对被测软件信息进行交流。

2.3.2 沙盒工具

所谓沙盒测试工具,就是在独立环境下,对被测软件内部代码进行逻辑流程测试;而在测试中可以发现被测软件的漏洞,并且能够将这些缺陷定位,最高可定位至代码级。

2.3.3 用来分析被测软件在静态环境下的工具

静态软件分析工具可以对被测软件代码直接扫描,在不需编译的情况下进行测试分析。静态软件测试分析工具主要使用在:(1)代码;对被测软件进行语法扫描分析,找出代码编写错误的地方。(2)对被测软件静态情况下分析其结构,静态测试工具会根据被测软件代码结构复杂程度,对软件代码的设计与模块调用生成记录图表。

2.3.4 被测软件动态环境运行分析工具

相对静态软件分析测试工具而言,动态分析工具的工作方式是利用钉钉子的方法,在被测软件代码中插入一段检测代码,这段代码会在被测软件运行时,对软件数据与资源调用率进行统计分析。

2.3.5 功能测试分析工具

功能测试分析工具也可以称之为黑盒工具,其工作流程是通过自动记录被测软件数据、检测以及回溯客户操作。通过对被测软件测试前所预测结果进行对比,从而帮助开发人员与测试人员对不同版本的软件进行功能测试分析,提高工作人员工作效率。黑盒工具其主要目的是:通过测试分析被测软件程序能否达到预期设计目标以及稳定运行。

2.3.6 软件性能测试分析工具

性能测试分析工具的目标是:分析测试被测应用软件的可扩展性能。在测试过程中,通过性能测试分析工具可以帮助测试人员检测软件运行性能以及查找运行时所出问题。并且就检测出的问题进行自动性能优化,保证应用软件能够正常进行测试运行。

2.3.7 辅助工具

这一类的测试工具其本身并不具备测试所需条件,辅助工具存在的目的就是将软件测试过程中所搜集的数据信息生成记录,为测试人员提供参考依据。

根据软件测试过程所需工具,正确使用这些测试分析工具可以帮助测试人员更快,更高效完成软件测试任务,缩短软件周期。

3 合理设计软件自动化的测试

3.1 设计中应当规避的情况

合理的自动化测试设计,可以提高工作效率,所以,在设计自动化测试时,应注意规避以下几种情况:时间限制,没有明确的测试目标,测试经验不够多,测试人员流动性高,对测试失去耐心和太偏重技术等。

3.2 测试软件设计注意事项

在设计自动化测试软件时,有几点需要重点设计:

3.2.1 测试软件的可维护性

过高的设备维护成本将会大大降低自动化测试软件的实际应用性,所以,在设计自动化测试软件的时候,软件的可维护性是其中一大重点考虑对象。目前的自动测试软件领域竞争激烈,而要想获得高的市场占有率,那么具有低维护成本的测试软件将占有极大优势。维护包括测试软件的日常维护以及测试软件的版本更新,其中版本更新维护是维护重点。随着软件开发的深入,软件自动化测试需要紧跟开发者的步伐,当测试软件无法满足测试需要时,那么自动化软件将会逐渐丢弃淘汰。所以,保持更新步伐是需要重点考虑的。

3.2.2 可测性

可测性就是自动化测试对被测软件的测试是否有效。所以,为了保证软件的可测性,设计时应当使用拥有:CLI、API与GUI接口的测试软件。

4 自动化测试与人工测试对比

自动化测试与人工软件测试,其区别只是测试方式不同而已。从以上文章分析可以知晓自动化软件测试其优点突出,但不足之处也是显而易见。

自动化测试其根本性目的是将以往人工测试的过程精简化、程序化和标准化。在一定程度上可以代替人工进行软件测试。自动化测试的优点在于:自动化软件测试可以按照软件测试需要进行相应程序修改,然后利用符合测试需求的测试程序进行测试,在这过程中,相对简单的测试部分可以依靠人工测试,对于那些有重复性,测试过程严谨的测试部分则可以利用自动化测试,达到测试目的。综上,可以对软件自动化测试与人工测试进行一个对比,首先是人工测试:

人工测试是一开始就使用的测试方式,人工测试需要测试人员有丰富的测试经验。对于相对简单的测试目标具有速度快,效率高的特点。尤其是在相关的人机交互测试这类灵活度较高,测试过程不可控的测试目标,人工测试具有快速反应,测试灵活等特点。相应的,人工测试也存在很大的弊端,人工测试人员受精力与时间限制,对于那些时间短、测试过程程序化与复杂化的测试目标,人工测试就需要耗费大量时间与人力资源来完成。这也导致了测试成本提高,效率低下。

软件自动化测试与人工测试相比,自动化测试是按照测试程序对被测目标进行测试。所以对于那些重复性测试具有高效,测试过程严谨的特点。其所具备的强大数据处理能力对于那些测试过程中需要进行大量数据处理运算的测试任务具有高效的完成性。但其缺点也是明显的,对于那些需要进行实时交互的测试目标来说,自动化测试的固定测试程序是无法胜任的。

综上分析可以看出,人工测试与自动化测试之间有着明显优缺点,但两者也具有良好的互补性,所以合理搭配这两种测试方式,将会极大提高测试任务的完成效率,有效降低测试成本与人工测试资源。

5 结束语

本文从软件自动化测试的意义到应用进行了简单讨论分析,从各方面对比来看,软件自动化测试在软件测试行业中占有重要地位,在未来的发展中,应当加大对自动化测试的研究力度。让自动化测试继续发挥更大的作用。

参考文献

[1]应杭.软件自动化测试技术及应用研究[D]

[2]刘艳霞.软件自动化测试技术应用研究[J]软件导刊.2007,5:36-38

[3]蔡志贤.软件自动化测试的研究与实践[D]

[4]陈晓.软件自动化测试的分析与实践[J]计算机科学.2008.35(4):282-322

[5]季淑引.软件自动化测试工具的应用研究[J]科技向导.2012.20:59

[6]陈哲.软件自动化测试系统的研究与实现[D]

作者简介

张维利(1978-),男,山东省人。硕士学历。主要研究方向为信息系统软件测试、软件可靠性等。

软件开发试用期工作第8篇

关键词:软件测试;测试工具;质量改进

中图分类号:TP311.53

软件测试是一项深奥的工作,为了保证软件测试能够正常进行,需要有效管理软件测试。在软件测试项目中,要求软件测试管理人员对各类软件的功能及技术方法深入透彻的了解,这样才能提高工作质量和效率。企业构建完善的软件测试管理系统,对软件测试及质量改进具有重要意义。

1 软件测试工具分析

1.1 功能测试软件

功能测试软件主要包括以下七种:第一,QTP软件测试工具。这款软件测试工具可以进行自动化工作,强调功能回归的重要性,主要针对GUI这一应用系统而进行功能测试,是Windows与网络应用系统的统一;第二,Win Runners软件测试工具。这是企业级软件测试工具,功能是对应用程序进行检测,了解其工作状况与预期功能的实现;第三,Rational Robot软件测试工具。这一工具主要在测试者桌面上加以集成,从而使工作人员可以对各项测试工作进展情况加以组织计划、管理执行和与报告;第四,Advent Net QEngine软件测试工具。这一自动化工具具有广阔的应用范围,并且能够脱离平台而独立运行,其测试对象包括网络功能与性能测试,Java应用功能与性能测试及Java API、回归、SOAP测试等;第五,Silk Test软件测试工具。这款工具在行业内部处于领先地位,可以对企业应用功能系统进行测试,既包括网络与Java测试,又包括C/S结构测试;第六,QA Run软件测试工具。这一工具主要通过键盘与鼠标操作而实现,获得测试脚本后,对其进行调试与编码;第七,Test Partner软件测试工具。该自动化测试工具的主要测试对象是复杂的微软、网络与Java技术[1]。

1.2 性能自动化软件测试工具

1.2.1 负载性能软件测试工具

负载性能软件测试工具包括QA Load、Silk Performer、Load Runner与Web Runner四种:QA Load主要包括服务器系统、客户系统、电商应用和资源配置等测试工具;Silk Performer主要应用于工情况下工作;Load Runner是适应性较高,而且规模较大的负载测试工具,具有优化系统性能的作用;Web Runner工具具有良好的软件测试性能和测试分析能力,能够使其自动进行压力测试。

1.2.2 资源监控工具

资源监控是软件压力测试的一个关键步骤,多数软件测试工具是集成的,例如,Load runner工具主要由反应时间、执行状况、图表分析、场景情况、Load、TPS、CPU等集成。Nmon这种资源监控工具在测试性能时,其信息记录较为全面,可以广泛应用于Linux和AIX操作系统之中,能够在操作过程中对系统资源的具体分布与使用情况进行定位、捕捉,还能将结果输入到文件之中,最终形成图形与数据文件[2]。

1.3 白盒测试工具

这一测试工具主要应用于代码测试,能够定位测试缺陷的代码级,同时可以把工具按照原理差异划分为静态与动态两种。现阶段,开发语言支持的测试工具包括标准 C、C++、Visual C++、Java、Visual J+等。白盒测试工具主要包括如下九种:第一,J test测试工具。作为动态组件与代码分析的工具,该集成的Java测试工具具有自动化、便于应用的特点,能够减少软件错误,强化代码稳定性;第二,J contract测试工具。该工具可以独立检测系统部件或系统级验证类的正确操作和使用,是上一测试工具的功能补充;第三,C++ Test测试工具。该工具能够对组件、函数、C及C++类进行自动测试,省去了测试案例、桩调用与流程编写的麻烦;第四,Code Wizard测试工具。这是一款静态的测试分析工具,可以分析C及C++源代码,同时能够对500个以上的自动化编码规范编码代码结构,而且编译器无法察觉;第五,J check测试工具。该工具主要用于分析与监视线程的全部运行情况,挖掘错误根源,定位具体出错程序及其行列;第六,TEST测试工具。这一工具具有便捷的使用性能,可以进行单元级测试并参与静态分析;第七,Bounds Checker测试工具。该工具主要对运行错误进行调试与检测;第八,Code Review测试工具。这款工具是分析自动源代码的最佳工具;第九,Fail Safe测试工具。该工具能够自动处理语言环境错误[3]。

2 软件测试质量的改进方法

2.1 强化测试人员的培训

软件测试工作者首先需要熟练掌握各类软件测试过程,了解软件的特点和应用范围、对象,熟悉软件缺陷及测试的故障多发位置,对高风险部位重点审核。其次,软件测试工作人员需要及时沟通交流技能,了解各类软件测试工具操作的注意事项。为了提高测试质量,测试人员必须接受相应的培训,深入了解检测过程、工具、方法,通过互相协调配合与有效交流而促进测试工作的顺利开展[4]。

2.2 提供自动化管理效果

测试质量的保证需要花费大量的资金与人力,特别是对系统复杂、信息量较大、分布地域广、平台异构的多组织协调进行测试时,保证质量较为困难,而跟踪测试流程的工具开发将大大提高软件测试质量。

自动化软件测试工具进行检测时,需要制定各阶段工作计划和测试的量化标准,并在各部分匹配适合的软件测试工具,严格依据制度表执行,定期评审与测试。若软件未在预期时间内得到工作的审计与测试报告,就会向对应的实体部门传输消息提醒,并可以提醒工作人员检查延迟的原因。对于延迟时间较长的,软件就会自动发送警告信号,让测试工作人员具体分析产生延迟现象的原因。其原因可能是工作人员有限、经验缺乏、进度表设置不合理等,需要对员工及时加以培训。对于评审、测试过程存在的软件密度大或密度不一致问题,一般出错于开发过程之中,软件需要重新进行设计,当软件密度偏小时,说明缺陷测试效力较弱,同时加强员工培训工作。当模块或测试过程存在缺陷密度比平均值高的情况时,软件会自动发送警告,要求软件测试工作人员查找出错原因。在软件测试时间明显超过进度安排的情况下,系统也会发出警告信息,要求操作人员及时处理和调整,从而避免项目工程和延迟[5]。

3 结束语

综上所述,本文主要对软件测试工具进行了细化分类与分析,提出了改进质量的方法、策略,促进了软件测试工作的高效有序开展。软件质量差会增加客户经济损失,严重时还会带来更可怕的后果,因而工作人员应该充分掌握各类软件测试工具性能和特点,及时查找并发现质量低的原因,逐渐改善和提高软件测试质量,推动软件测试技术的健康高速发展。

参考文献:

[1]尹晋.基于Testbed和Polyspace的装备软件静态测试研究[D].哈尔滨工程大学,2012.

[2]全君林.基于Windows平台GUI功能测试工具的研究与设计[D].华南理工大学,2010.

[3]刘寅杰.智能卡COS操作系统软件单元测试研究与应用[D].西安电子科技大学,2014.

[4]周虹伯.应用数据类型抽象建模提高软件静态测试精度的方法研究[D].北京邮电大学,2013.

[5]郭俊刚.基于Eclipse的自动化测试工具的研究与实现[D].北京交通大学,2012.