软件测试报告范例6篇

软件测试报告

软件测试报告范文1

述职报告是任职者陈述自己任职情况,评议自己任职能力,接受上级领导考核和群众监督的一种应用文,下面就让小编带你去看看软件测试个人工作述职报告范文5篇,希望能帮助到大家!

软件测试述职报告1本着对IT业的憧憬,走进了中城泰信(北京)信息技术有限公司,我在公司所从事的工作是软件测试,在真正投入到工作之前,我在网上查询了许多测试员的相关要求,了解了作为一个测试人员必须耐心,细心和平和的心态,他的目标是尽可能早一些找出软件缺陷,提高产品的质量,降低维护的成本,尽可能的达到客户的需求。

软件测试员的一个基本素质是:打破沙锅问到底。另外还必须具备探索精神,有创造性,追求完美,判断准确,老练稳重,强的说服力以及受过编程方面的教育等素质,同时也还必须是个故障排除能手,等等。还没看完就发现自己离这些要求真的好远,更进一步认识到自己必须要全心全意投入工作,虚心请教,一切都得从头开始。

另外,测试并不是单纯意思上的机械的"测试",它首先要求对产品非常熟悉,不管是从功能上还是操作上。更为重要的还有就是我们要了解客户的需求,根据客户的要求来测试,看看产品是否能达到他们的要求。而从这些方面考虑则要求我们必须比任何人都要熟悉产品的一切。公司的主要产品是电脑还原软硬件和电脑锁等一些电脑安全周边的产品,在真正的投入到测试这个工作之前,我们首先该做的就是熟悉产品,而最最直接的途径便是查看说明书,刚开始每天都是打开电脑,看产品说明书,重复的看,本以为看几遍就都记住,但是到公司进行考核的时候,才发现原来自己真的什么都没有掌握,第一次考核不及格,虽然具体的分数没有看到,但是那份心情,却使自己始终无法忘怀,也更让自己认识到要虚心的,按部就班的好好熟悉产品,要做到对产品耳熟能详。在我实习期间公司给北京市自来水集团负责查表税费稽查等系统,它主要应用是水费的业务管理。对于我们来说,它是一个全然陌生的产品,老总要求我和跟我一起实习的同事三天之内迅速熟悉产品的各种功能及完成测试。当时听了吓一跳,一个对于我们来说全新的产品,一天就要全部掌握而且要测试出它尚存在的问题,这似乎很不可能,而且也有点不相信自己有这样的能力。但是一天下来,我们竟然可以从什么都不懂,到熟练的掌握。并且也完成了一些简单的测试,发现了一些界面错误。但是对它的具体性能和功能的测试还没有完成,不过老板并没有责怪我们,只是让我们明天接着做,听了心里有些安慰。因为本以为他会大发雷霆呢。

那一天对于我来说的收获便是,要相信自己,不要被没有去真正实践的事情而吓倒,其实如果你真的去尝试,你会发现一切都没有你想象的那么难,只要你努力,没有什么不可以。最后在我们的努力下,共用了不到三天的时间,熟练的掌握了的白板的操作,对它的界面、功能、性能等做完了全面的测试,及时做了总结,反馈给北京的公司,让他们对存在的错误做了修改,而且我们还协助老总教会了销售人员,以便他们能够在11月29日的会议上能够熟练的操作,把产品展现给自来水集团的工作人员。后来听说得到了很大的反响,公司同事听了都非常的高兴,想想那两天的班算是没有白加。

实习结果几个月的实习下来,让自己走进了一个全新的领域,开始了自己真正的工作生涯。实习无所谓结果而言,更确切的说,它是一个开端,一个让自己学会成长的地方,当然也确实让自己长大了许多。不管是从工作技能上还是从为人处事上,我都感觉到了有很大的提高。

首先,在工作技能上,因为从事的是测试工作,对于自己来说是一个全新的概念,一切都是从头开始的,而更需要自己的努力、耐心和细心。这些都是自己欠缺的,但是在工作了这几个月后,真的发现自己有了很大的改善。虽然离真正的软件测试人员的要求还有很大的距离,但是自己一定会努力,向着自己的目标前进。

其次,在为人处事方面,也让自己成熟了许多。虽然不能用语言来描述,但是确实可以从生活中的点点滴滴感觉得到。经历使人成长,只有真正的经历过,才可以让自己真的成熟起来,要想真的出人头地,好的为人是前提。四、实习总结说来自己真的算是很幸运吧,我应聘的职位是软件测试员,当初在大家包括我自己的眼里都认为软件测试的要求非常高,而且似乎有一种可望不可及的感觉,但是当自己真正的接触了这个行业之后,发现其实并没有那么的高不可攀。不过后来发现自己所从事的,并不是真正意义上的软件测试,只是一种"手脑"测试罢了,不过虽然如此,但依然学到了很多,尤其是对计算机的硬件知识和底层操作有了更深的一步了解。还记得刚刚走入公司的时候,感觉很奇妙,一切都是那么新奇,那么陌生,不敢随便讲话,凡事都小心翼翼的,这对于性格开朗的我来说,简直到了折磨的程度,不过幸运的是很快就跟所在部门的同事混熟啦,公司虽然很小,但是工作的氛围却非常的轻松。也许大家都是年轻人,且都是刚刚进入社会不久,所以有很多的共同话题,在工作之余,和同事之间的关系相处的很融洽,完全化解我当初的煌煌不安。

总之,通过这次实习,确实让自己成长了许多。在实习期间,我学到了许多东西,遇到了一些困难,也看到了自己本身存在着许多问题。在测试时要想使自己的测试更加周全。总会遇到这样那样的问题,当前的软件的功能日趋复杂,不学到一定的深度和广度是难以在实际工作中应付自如的。因此反映出学习的还不够,缺点疏漏。需再加以刻苦钻研及学习,不断开拓视野,增强自己的实践操作技能,为以后能做好测试工作而努力。

软件测试述职报告2一、本年度工作完成情况

时光飞逝,在这年里本人独立负责测试的项目10个,与其他测试人员联合测试的项目9个以及GIS应用虚拟项目(2个版本)。

其中独立负责的项目对项目的开发周期做全程跟踪测试,联合测试的项目协助其他测试人员完成项目测试工作。繁忙的工作使自己在过去的一年里学到了很多,同时也提高了自己各方面的能力。感谢领导的支持和指教,现总结如下:

独立负责的项目列表:

1)《湖南____空调进销存系统》

2)《湖南____空调售后服务系统》

3)《长沙统计局数据管理平台》

4)《长沙统计局数据展示系统》

5)《长沙统计局GIS应用系统》

6)《____电网 WEB GIS系统》

7)《____电网移动电子化移交系统》

8)《____电网东莞局单线图绘制系统》

9)《电信号百—掌上同学圈》

10)《长沙城市林业生态圈资源信息集成系统》

与其他同事联合测试的项目列表:

1)《____市规划局办公系统》

2)《______地理公共服务平台》

3)《______市规划局自动化办公系统》

4)《______县城建档案馆著录系统》

5)《______市统计地里信息系统》

6)《______市社会安全联合救助系统》

7)《____市施工图审查中心一体化办公平台》

8)《______控制性详细规划系统》

9)《__________市地理信息系统》

其中格力项目的测试工作,多次与开发组人员一同参与在客户处讨论需求与细节要求,对客户的习惯和要求有了清晰明确的了解。与电信的验收测试中学到了很多专业的测试方法和测试经验,和他们成为了好朋友。在后续的合作与交流中,将更进一步提高自己的专业技能,保持良好的沟通与联系做好测试工作。

南网的项目在通过开发组的培训后,对南网1。0环境与功能,数据库的结构有了比较清楚的了解,对测试南网2.0很有帮助,主要是对电力这块的业务有了深入的了解,对测试电力行业的系统打下了业务认知基础。加入专业的测试方法,使测试工作更好的服务于项目。

很开心在公司的QC与SVN上,留下了我对以上19个项目测试工作的痕迹,我将不断努力工作,为测试团队在公司中更有价值积极进取。

二、个人取得哪些进步

繁忙的测试工作虽然很辛苦,但得到了领导的支持与指导,通过自身学习,使自己各方面都得到了提高。现总结如下:

1)对性能测试比之前更加专业熟悉。通过使用LR性能测试工具以及其他辅助工具,对格力两个项目和南网的WEBGIS项目进行了几次压力测试。通过深入了解业务,设计有针对性的性能测试方案,得到了电信与格力客户的认可。这其中主要是与电信测试人员的合作与交流中,学到了很多专业的测试手机端程序压力与手机客户端性能的方法。对文档的要求与制作也更加严格、专业。

2)通过了解电信测试对开发文档的要求,认识到文档的重要性与测试文档的重要性,因此格力进销存后期开始研发后,就不断给项目组灌输客户对文档的要求与格式,以及电信验收中的习惯与要求,避免了类似格力售后在摸索中,痛苦加班赶制文档的经历,在张经理的严格督导下项目组更新文档都很及时。目前项目已经通过了第一期验收合格。

3)参加了公司培训的GIS应用开发,对GIS的应用有了初步的了解,第一个项目是测试湖南天地网系统,在测试过程中,对GIS应用有了实践。并产生了浓厚的兴趣,对配图、图层切图等ARCGIS相关有了实际操作,在考核中得到了巩固。

4)在前期做配置管理的学习中,学会了SVN的环境配置与管理,感谢谢敏在我学习SVN过程中的指教和帮助,使我对独立搭建SVN环境更加熟悉。

5)对软件测试工作有了新的认识:在测试工作中,仅对测试的工具和测试方法熟悉只是测试工作的基础,需要深入了解业务以及软件需求的趋势,才能更好的做好测试工作。对于性能测试更需要在这个基础上对计算机原理、网路、行业有全面的了解和经验,才能对测试的数据做出精准、详细的分析。给出参考价值高的测试报告。

三、遇到的问题及解决方案

1)项目紧急、开发人员少、测试时间少,客户更新需求超级频繁,开发计划刚做好,需求又变更了。比如格力售后项目,前期测试计划基本上每天都在变动。因此前期测试过程中,是连接正在使用开发的环境在测试,测试起来难以把握。处于婴儿期的项目,加上没有开发手机端的经验,因此BUG特别多,测试工作比较辛苦。进入格力进销存开发初期,在与客户沟通,先画出UI界面再开发后,项目开发顺利了很多,测试工作也没有前期那么紧张了,虽然还是经常要加班,但是明显比最开始开发手机端要好很多。

2)测试环境硬件比较缺乏:格力项目测试期间初期,公司未申请空间,但是测试必须用到外网,客户借用了服务器,但是有客户的其他软件正在使用,因此不能重启,资源也无法准确的预估,对开展测试工作有很大的局限。格力项目完成基础功能,准备完善功能细节时期,得到了许总和张经理的支持,公司申请了自己的空间,也办了手机测试卡,使测试硬件得到了彻底的改善。使我的测试工作有了很好的开展,也因此为客户提供了大量测试数据和测试文档,并最终得到了认可。

3)中途介入的'项目,由于项目开发前期对业务没有了解,加上自身负责的项目工作也比较忙,因此经常有对业务不熟悉,无法测试整个系统的流程的情况,我目前使用的办法是:平时对规划行业和测绘行业的业务加以关注和学习,加上对GIS应用的培训与自身的经验,要短时间对系统进行彻底测试也不是可以的。

总结:只要有归零的心态,时刻更新自己的专业技能,并累积经验,做到时刻学习,不学习就会退后、认真的做一件事总是会找到做好事情的方法。

四、工作感悟及建议

1)感受到了积极主动,富有激情的团队氛围。格力的项目时间特别紧、需求变更特别频繁的特点,加上没有手机端的开发经验。因此前期特别辛苦,测试手机端程序也是从这个时候开始的,在这个过程中,我对手机端程序开始了积极探索与学习。了解手机端程序的开发与测试方法,特别是手机端性能测试与功能设计体验方面,我自己总结出了很多方法和经验,与大家一起分享,感到很开心。

2)浓厚的培训特色,在进公司前我不太了解ARCGIS的应用,测试项目时感到有担心,但是马上就有公司的ARCGIS相关培训,使我们学会了部分基本的操作、对GIS应用也有了引导入门的培训。这使后续我自行学习和巩固有了很大的帮助。

3)开发在业务培训上花了很多心思,在参加规划办公,测绘、南网的业务培训过程中,使我对业务与系统有了相结合的对应熟悉与了解,对后续测试系统很有帮助。也缩短了我们测试系统流程花费的学习时间。

4)建议:能增加一套测试环境需要的硬件设备。专门用来测试,目前我们很大程度上依赖开发现组的环境进行测试。如果有了专属的测试设备:将组建更完整的测试环境,使测试工作有基础得到更全面专业的实施。

五、下年度个人职业工作规划

本人希望在专业测试的基础上,多做管理方面的工作。在上述工作总结中,本人主要是设计测试用例(场景测试),配置独立负责项目的环境,熟练使用测试工具,熟悉软件测试流程,进行BUG分析和预防,对配置管理这块比较熟悉,平时我有对管理类课程的学习和培训,自学了余世维的全套管理类网络教学,希望在新的一年里,继续在公司服务,发挥自己对公司的热情、贡献自己的力量!

软件测试述职报告320____年__月__日,我怀着提高并实现自我价值的心态,跨进惠普软件软件测试基地的大门,开始了为期两周的见习。我非常荣幸的参加此次见习,通过这次经验让我系统的梳理了软件测试理论技术,对软件测试有了一个更深入更全面的认识。

转眼间,两周的实习时间就过去了。回想起这段时间的见习过程,思想觉悟有了很大的提高,作为一个大二的学生来说,什么都不懂,没有任何实践经验,不过在老师的指导下,我很快的融入到了这个新环境,还学到了很多在学校学不到的东西,也认识到了自己很多的不足,感觉受益匪浅。以下是我在这几个月实习期间对工作的总结以及一些自己的心得体会。软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

软件测试存在于整个项目周期,在项目开始之初需求调研的时候就开始了,在形成需求规格说明书的时候就需要针对文档进行测试。这个环节在后续整个项目中占了很大的比重,能主导整个软件项目的走向,成败与否全在于开始阶段的决策。

在严格的测试也不能完全的发现软件当中所有的错误,但是测试还是能发现大部分错误的,能确保软件基本可用和软件的适用性,所以在后使用的过程中还需要加强快速响应的环节。结合软件测试理论,故障暴露在最终客户端之前及时主动的去发现并解决。这点需要加强研发队伍的建设。

要想成为好的测试人员,首先得了解自己要测试的软件的相关知识。要了解软件产品的架构是什么样的。要了解软件的市场需求,在接触软件之初要可以多看看用户的反馈信息,这些才是用户最关心的,也是在测试中需要注意的问题,满足客户是最大的需要。但是了解软件需求之后要学会要多读些软件系统的技术文档,软件设计文档,这些文档可以帮助了解产品如何工作。还有多看看公司Bug库中的问题,这些存在的问题可以帮助自己了解软件产品那些地方存在缺陷,软件系统那些地方会出现错误。软件是运行在一个大环境中,如果对系统不熟悉,那么有些问题你不能从一个更广阔的层面考虑,学习操作系统的知识,有助于你发现缺陷,定位问题更加准确。比如软件运行在Windows或者Linu__,如果不懂操作系统,你就无法建立测试环境,有些时候时候软件的组件发生问题,就是自己系统配置造成的,对系统不熟悉,会把外在原因归结为软件本身。所以要学习关于和软件系统相关的知识,比如编程,网络,数据库等。不一定要学习到多好的程度,只是通过这些扩展的知识面,可以在发现问题,解决问题上不会局限在狭小的圈子里。

在这短短见习的时间里,我对软件测试有了较深的了解,发现自己的不足,放下了心中的石头,同时对测试工程师的工作也有了一定的认识。知道测试工程师不是一个简单的工作,需要全面的知识和丰富的经验,还要有细心和耐心。

软件测试述职报告4一、20____年工作回顾及总结

回顾20____年这一年来的工作,我在公司领导及各位同事的支持和帮助下,严格要求自己,按照公司要求,比较好地完成了本职工作。通过近一年的学习和工作,工作模式上有了新的突破,工作方式有了较大的改变。现将这一年的工作情况总结如下:

1、总体来说,20____年我主要完成了“____银行系统”、“____渠道管理平台”等的日常测试以及质量控制工作;

“____”已经稳定上线运行6个多月,“____”即将上线。

2、日常我主要负责项目测试工作、测试文档编辑、参与功能需求设计、协调开发进度、总结经验分享、完成所需知识积累、工具学习及研究、兼容性软件测试。

就在银联项目工作来说,主要的工作内容有:

a、测试项目案例、测试用例的设计与编写;

b、对测试过程中遇到的问题进行沟通,并提供意见;

c、设计业务功能流程,提供参考意见,绘制关键业务流程;

d、进行主要功能的界面测试、功能测试;

e、按照测试用例执行测试计划;

f、进行需求验证工作

3、知识的总结与分享,完成客户端在安卓4.0/4.1,IOS6.0以上系统上出现的兼容等问题,完成了兼容性测试案例的`编写以及兼容性测试的培训工作。

在日常工作中,发现兼容上重大问题,在测试部门群中分享。

4、完成所需知识积累,学习所需知识、工具以及技能。

在工作中学习了银行业务流程规范、学习公司研发规范、参加了公司组织的技术培训、学习了各种测试工具的使用。

二、对公司的建议与意见

对公司和部门建设上,我有以下几点建议:

1、对员工进行金融知识的系统培训,让测试人员了解银行业务流程,有助于测试人员更加详细了解业务流程,测试过程会少走很多弯路。

2、部门内希望多组织技术交流讨论,促进测试工作的开展和提高。

一年至少有2次这样的交流。

3、公司在项目开发前期,希望尽可能的明确需求,尽可能的详尽需求说明书内容。

在测试过程中发现很多项目缺少需求说明书,需求说明书不明确或者需求说明书内容错误,误导了开发和测试,浪费了时间,影响了项目进度。

4、建议项目需求设计可以有测试员参与讨论。

5、公司管理有点混乱,个人感觉公司对每位员工的重视程度不够!节假日公司应该给每位员工一定的福利和关心。

6、个人感觉平时的效率比较低,希望测试部门能够有所调整。

希望公司能制定质量控制标准以及开发、测试工作流程,让开发更好的了解测试的流程,增强开发团队与测试团队的配合,提高工作效率。

7、加强部门测试成果的积累与沉淀,提高团队测试水准,希望我们的团队能够做的更好,能够已团队的形式参与软件项目的开发,而不仅仅是一个项目中毫不起眼的小小测试员。

三、20____年工作计划与学习计划

20____年工作计划就是希望通过自己的努力,让我们的产品更加完美,让自己在软件测试技能上有所提高,更多的关注软件产品的开发过程,提高工作效率、做到与用户的需求一致,提高公司软件产品用户满意度。

具体来说20____年工作计划有:努力提高自身测试水准,努力学习金融知识以及业务流程,学会需求分析,掌握需求分析在测试中的作用,参与公司更多的开发项目的测试工作。

__软件测试述职报告5__我是技术部、测试组______,20____年即将过去,时光飞逝,日月如梭,我来公司半年的时间转瞬即逝,身为一名年轻的员工,我紧密配合公司的安排,卯足精神、踏踏实实地为公司做事,同时也努力成为一名能主动做事,勇挑重担的员工,为公司的发展贡献出了自己的一份力量。回顾半年来的工作,即有收货也有不足,现对自已半年来的工作进行总结。年来,本人在公司领导的正确领导下,在各位同事的热情帮助和大力支持下,立足本职工作,努力学习,勤奋工作,诚恳待人,团结协作,遵守各项规章制度和工作纪律,不断提高服务质量和工作效率,较好的完成了全年的各项工作任务。以下是本年度以来的个人工作总结:

一、政治思想方面

一年来我积极参加公司里组织的学习,努力做到在思想上、认识上同公司价值观保持一致、始终保持与时俱进的精神状态。同时,自己还树立终身学习的观念,利用业余时间进一步学习自己的业务知识。平时能够团结同志,具有一种良好的敬业精神和责任感。

二、工作情况

半年来我的主要工作有:________项目的测试、______的相关测试。

关于________,除了进行相关的回归测试外,由于客户对其提出了新的需求,所以要基于新需求重新进行全面测试,以便及时发现新问题,避免客户使用时再次出现问题。现在正在对中电工程进行端口的调试,当端口调试结束后还需要进行回归测试,避免系统给客户安装后出现缺陷。

关于______,主要再次对各个二级、三级单位进行____、____、________和________、____、________等的相关本部和所属的流程进行测试;配置____和____的____、____、____、____和____、____的人员角色的权限,并且测试他们的登录功能和应有的权限是否显示正确;测试____公司和____公司的会签单;测试________差异报告是否和系统相符。

三、存在的问题和打算

尽管经过一些努力,我的业务水平还需进一步提高。在以后的工作中,我将加强自主管理的意识,加强理论和业务学习,不断提高业务技术水平,使自己的工作达到一个更高的层次,能外出为相关项目公司做培训,有问题积极与领导进行交流,出现工作上和思想上的问题及时汇报,也希望领导能够及时对我工作的不足进行批评指正,使我的工作能够更加完善。

今后我会加强其它专业知识的学习。社会的进步与企业的发展对员工的综合素质提出了越来越高的要求,要求员工一专多能,只有这样才能进一步提高企业的效率,增强企业的竞争力,才能增强员工在这个社会中的竞争力。所以,在加强本专业业务能力的同时,要不断的学习,扩展知识面,为企业的发展和自身的发展打下良好的基础。

软件测试报告范文2

硕士毕业论文的开题报告含义与作用 硕士毕业论文的开题报告就好似一套房子的地基,盖房子最主要的是地基必须打牢靠,否则房子会垮塌。硕士毕业论文的开题报告也是一样的。当课题方向确定之后,课题负责人在调查研究的基础上撰写的报请上级批准的选题计划。它主要说明这个课题应该进行研究,自己有条件进行研究以及预备如何开展研究等问题,也可以说是对课题的论证和设计。开题报告是提高选题质量和水平的重要环节。

开题报告,就是课题确定之后,研究人员在正式开展研之前制订的整个课题研究的工作计划,它初步规定了课题研究各方面的具体内容和步骤。可以说,开题报告水平的高低,是一个课题质量与水平的重要反映。

工程硕士研究生学位开题报告论文 一、选题依据

1. 阐述选题背景,研究意义,或工程设计的价值和意义,该选题国内外技术应用现状和发展趋势,选题的先进性和实用性。

1.1 选题背景和研究的意义

软件测试是整个软件项目开发生命周期中的重要组成部分,应当贯穿与整个生命周期始末,与软件开发相辅相成。好的软件测试是好的软件产品质量的重要保证。目前,国内软件测试行业的发展还很不成熟,尤其是自动化测试的发展水平更是落后,相对于发达国家,我们国家的软件测试在技术上、规范程度上和重视程度上都有差距。 而javascript是web前端的新兴的、日渐流行的语言,对基于javascript语言的工程项目的自动化测试还处于探索发展阶段。我所选的论文课题就是要研究和实现更高效,测试更完全,使用更人性化的自动化测试框架,以广泛的应用于各种javasript工程项目。

1.2 国内外技术应用现状和发展趋势

对于javascript 的测试框架,国外已经有一些,比如qunit, jasmine, jarvis, jfunit等,这些javascript测试框架较为成熟,也各有优缺点,但在应用时适用性不够强,测试比较粗糙。

国内的自动化测试正在发展中,许多软件公司也愈加感觉到了自动化测试带来的好处。而随着更多的javasript项目在中国出现,而且很多软件项目越做越大,javasript项目的自动化测试必将受到越来越多的关注和重视。国内javascript测试方面还比较空白,相关的文档和论文文献也少之又少。 本课题选择基于qunit 的javasript 测试框架,进行更为细致更为实用的改进,以适应项目测试,使其覆盖率更强,使用更方便,查错更明显。

1.3 选题的先进性和实用性

本课题围绕思科系统中国研究中心选择基于qunit 的javasript 测试框架,进行更为细致更为实用的改进,以适应项目测试,使其覆盖率更强,使用更方便,查错更明显。此论文弥补了国内 javasript自动化测试框架领域研究的空白,解决了很多测试过程中的技术问题。

a. 在javascript项目自动化测试中的测试用例加载机制;

b. 异步测试和数据驱动测试;

c. 自动化启动多个web页面交互测试;

d. 自动生成测试报告并检测出错误点出现的位置,以方便纠错;

解决了测试用例不通过无法继续执行的问题,使错误用例显示无法通过验证,但是其他测试用例仍继续执行

2.主要参考文献(列出作者、论文名称、期刊名称、出版年月)。

二、课题内容及具体方案

1.课题内容

1. 系统需求分析(应用软件工程专业描述工具描述)

2. 系统概要设计(应用软件工程专业描述工具描述)

3. 拟采用的开发方法、环境,测试方案等

软件测试报告范文3

【关键词】软件生命周期;质量管理;软件测试

1.引言

软件质量是指与软件产品满足明确或隐含需求的能力有关的特性,由于软件产品是逻辑体,不具有实体的可见性,因而其质量也就更加难以把握。软件产品的质量是通过软件开发活动和软件开发过程构造入软件的,所以软件开发管理者和软件开发者必须了解每一个开发活动对软件产品质量可能产生的影响,及时掌握每一个开发活动对软件质量所产生的影响,并且对在开发过程中可能产生的或已经产生的质量问题,能够及时发现并加以控制。要做到这些必须实现软件开发的工程化。软件全生命周期质量管理实际上就是工程化管理。它的主要任务就是使软件开发活动规范化、程序化、标准化。软件质量管理的基本方法就是根据软件开发活动的各阶段,将质量管理目标分解为若干可实现并可管理的部分,并采用相应的技术和方法进行管理,并对其阶段性产品的质量进行验证,确保最终软件产品质量满足用户的要求。下图是一个软件开发过程的主要阶段分解图。

2.需求分析阶段

2.1 任务及目标

软件需求分析阶段的任务是确定所开发软件的运行环境、功能和性能要求,编写开发计划。软件需求分析是由软件开发方根据委托方提出的软件任务书以及其它文件,详细确定软件需求并编制出一个需求完整、详细的软件需求规格说明。

2.2 实施步骤

1)分析和确定软件开发和运行的环境;2)明确操作者的要求,经分析后将任务书中的技术指标条文拟定成相应的软件需求规格说明的条文;3)确定人机界面;4)编制项目开发计划,确定项目质量要求,并将它分解为对软件开发各阶段的质量要求,给出检查准则;5)确定本项目的质量保证、配置管理工作,并写入项目开发计划;6)编写软件需求规格说明;7)初步编写软件测试工作计划,明确计划安排。软件测试工作计划一般由软件项目组编写。如要求独立测试,则测试计划应由独立测试单位在本阶段评审通过后根据需求规格说明另行编写;8)开始编写软件使用说明;9)评审;10)安排测试工作。若需要开发专门的测试软件或研制专门的软件测试设备,则应在本阶段评审通过后与软件开发并行地进行此项工作,以保证软件测试工作按时顺利进行。软件测试的测试软件开发和测试设备的研制工作按计划由软件项目组或独立测试单位承担。

2.3 阶段产品

1)项目开发计划;2)软件需求规格说明;3)软件测试工作计划;4)软件项目计划数据表。

2.4 技术要求

1)软件需求规格说明应对软件的主要功能、性能、技术指标进行定义,其内容应全面、可检查;2)项目开发计划中应给出阶段评审及配置管理计划,并明确人员。

2.5 配置管理要求

软件任务书、开发计划、软件需求规格说明、软件项目计划数据表、软件需求分析阶段评审表、软件测试工作计划进入受控库。

2.6 评审要求

在软件需求分析阶段,必须进行软件需求评审,以保证软件需求的完整性、一致性和准确性。提交软件任务书、项目开发计划、软件需求规格说明、软件项目计划数据等,针对项目开发计划及软件需求规格说明,对任务和需求分析、可行性分析、质量保证、标准化、配置管理等进行评审,以决定是否开展下阶段工作。

3.软件设计阶段

3.1 任务

软件设计阶段的任务是根据软件需求规格说明进行软件的总体结构和功能模块间的设计,初步编制软件集成测试计划。定义各功能模块的接口并设计数据结构,对功能模块进行过程描述设计,设计功能模块的内部细节,包括算法和数据结构,为编写源代码提供必要的说明。

3.2 实施步骤

1)总体结构设计;2)设计该软件系统的数据结构,给出所需的模型及所采用的算法原理;3)设计高层模块的数据流和控制关系;4)给出各个功能模块的功能描述、数据接口描述及全局数据定义;5)根据软件可靠性要求,对各功能模块进行可靠性指标的分配和相应的可靠性设计;6)进行安全性分析,使安全性关键的软件设计符合安全性要求;7)初步编制软件集成测试计划;8)确定所有模块的功能及详细的接口信息;9)对构成软件系统的各功能模块逐步细化,形成若干个可编码的程序模块或程序单元。

3.3 阶段产品

1)软件设计说明;2)软件集成测试计划(初步)。

3.4 技术要求

1)各功能模块间应具有低耦合度及高内聚度,功能模块的作用范围应在其控制范围之内;2)各模块功能单一,模块接口的复杂度低;3)软件设计说明和软件需求规格说明要保持一致,并具有良好的可追踪性;4)各子项目、模块的功能和接口要求必须完整、正确。

3.5 配置管理要求

集成测试计划(初步)、软件设计说明进入受控库。

3.6 评审要求

评审软件设计是否实现了软件需求规格说明的要求;评审设计方案与主要算法的可行性和先进性;并针对集成的单元之间的信息流和控制流的可追溯性、数据加工处理与数据结构的一致性、并发性信息处理的正确性、可靠性和安全性技术应用的程度及正确性等进行评审,并最终做出本阶段工作是否完成、是否转入下阶段工作的评审结论。

4.代码开发阶段

4.1 任务

根据软件设计说明对各程序单元进行编码、调试、静态分析和单元测试,验证程序单元与设计说明的一致性,并将经过单元测试的模块逐步集成和调试,完成软件系统集成,

4.2 实施步骤

1)对每个程序单元用指定的程序设计语言进行编码和测试;2)对完成编码的源程序进行静态分析;3)补充和完善单元测试用例并依此产生测试输入数据,开发单元测试程序;4)进行程序单元测试;5)将经过单元测试和调试的程序逐步集成和调试,直至集成为相对独立的软件功能模块;6)及时清除程序中用于调试等项工作的多余语句和程序“垃圾”;7)在集成调试后,对经过修改的模块应进行单元回归测试;8)编写软件使用说明初稿;9)评审。

4.3 阶段产品

1)修改了的软件设计文档及相应的修改报告单;2)程序单元的编码;3)程序单元的测试结果、测试用数据及测试辅助程序;4)软件使用说明初稿。

4.4 技术要求

1)用指定的编程语言进行编码;2)编码符合规定语言的编码格式约定;3)每个程序单元实现的功能、性能和接口应该满足设计说明的要求;4)必须进行程序静态分析;5)按要求应分别采用自检、互检、专检等方式检测软件,以提高软件质量和可靠性;6)被测试单元中的每项软件特性和功能都必须被至少一个测试用例所覆盖;7)采用必要的安全性设计措施,保证安全性设计需求的实现;8)对在单元测试中发现错误的程序应进行修改,修改后的程序单元必须进行回归测试;9)不仅要考虑对合法的输入产生测试用例,而且要对非法的、非预期的输入产生测试用例,既要对正常的处理路径进行测试,也要考虑对出错的处理路径进行测试; 10)程序单元的测试用例需加明确的注释,并和测试辅助程序一起纳入测试集,存档保留。

4.5 配置管理要求

修改的文档和相应的修改报告单、软件使用说明、程序单元的代码、单元测试数据和测试程序、软件实现阶段评审表进入受控库。

4.6 评审要求

评审编码、单元测试的正确性和完整性,在完成文档、程序编码、程序单元调试及单元测试的前提下,提供程序单元的编码、程序单元测试的结果和测试用例、程序开发卷宗等,对程序代码与详细设计的一致性、代码格式与规定要求的一致性、程序代码调试结果的正确性、静态分析过程的正确性和合理性、单元测试用例的充分性和合理性、单元测试数据的产生和测试过程的正确性、合理性和完整性、软件实现过程中若修改了软件详细设计或概要设计,则应多途径审查从被修改阶段开始到软件实现阶段为止所有改动部分的正确性等进行审查,做出软件实现阶段是否完成、是否将程序和文档提交,以便进行软件集成测试的结论。

5.集成测试阶段

5.1 任务

根据集成测试计划,在将底层程序单元逐步集成到子项目、直至整个开发项目的过程中对软件进行测试。在进入集成测试前,各程序单元必须完成代码静态分析和逐步审查、无错误地通过编译或汇编、完成单元测试、满足软件质量要求、程序单元已置于软件配置管理之下等。

5.2 实施步骤

1)补充、修改和完善软件集成测试计划;2)校订集成顺序,编制软件集成测试程序并核对其正确性;3)建立软件集成测试环境;4)对集成软件功能模块进行测试;5)对集成软件子项目进行测试;6)对集成软件产品总体进行测试;7)分析测试结果,找出产生错误的原因;8)提交软件集成测试分析报告,以便尽快修改错误;9)完成软件使用说明的编写工作;10)评审。

5.3 阶段产品

1)修改后的软件集成测试计划;2)修改后的软件设计文档及相应的修改报告单;3)软件集成测试分析报告;4)通过集成测试的代码;5)集成测试用例集和集成测试辅助程序;6)软件使用说明。

5.4 技术要求

1)软件集成测试应保证模块间无错误地连接;2)应测试软件系统或子系统对数据的正确处理能力和经受错误的能力;3)在软件集成测试中,在找出错误后,程序应送回编码者进行修改、调试和单元测试,然后再重新进行软件集成测试;4)通过软件集成测试的软件应满足各模块无错误地连接、满足各项设计要求、对错误输入有正确的处理能力、人机界面正确无误、满足全部操作要求等。

5.5 配置管理要求

软件集成测试计划、修改的软件设计文档及相应的修改报告单、软件集成测试分析报告、最后集成完成的程序代码、集成测试用例集和集成测试辅助程序、软件使用说明、软件集成测试的评审报告进入受控库。

5.6 评审要求

评审集成测试结果的有效性、软件的结构和接口间的协调性;评审在软件集成测试中对所发现的问题进行软件设计修改、程序代码修改的正确性。在完成测试、测试分析和文档提供软件集成测试计划、软件集成测试分析报告、软件问题报告单的前提下,对软件集成测试的恰当性、测试用例集的完整性和恰当性、测试结果和测试用例集的一致性、测试环境和正式运行环境的相容性、测试分析过程和结论的正确性等进行评审。

6.确认测试阶段

确认测试主要是针对软件的全部功能和性能要求的黑盒测试。软件项目开发单位的质量管理部门的测试人员负责测试过程的实施和测试结果的确认,技术管理部门的有关人员与业务部门及项目组成员共同组成确认测试小组,完成确认测试任务。

6.1 任务

1)根据软件需求规格说明中定义的全部功能和性能要求及确认测试计划,测试整个软件,确认其是否符合软件需求规格说明的要求;2)软件确认的依据是软件需求规格说明、概要设计说明及详细设计说明等,测试对象为通过了软件集成测试的源程序代码;3)软件确认测试工作包括测试环境的建立和测试计划的编制两项,此两项工作在软件需求分析阶段就应开始。

6.2 实施步骤

1)组织和确定软件确认测试组成员;2)修订确认测试计划,对确认测试计划进行评审,经批准后实施;3)建立和确认软件测试环境;4)接口测试;5)根据软件需求规格说明中规定的功能对软件逐项进行测试;6)根据软件需求规格说明中规定的性能要求,如精度、速度、适应性等,对软件逐项进行测试;7)逐条运用软件使用说明进行测试,以进一步证实该说明的适应性和有效性,并改正其中的错误;8)分析测试结果,找出产生错误的原因;9)编写确认测试报告;10)评审。

6.3 阶段产品

1)确认测试计划;2)确认测试分析报告;3)确认测试用例集及有关测试辅助程序;4)通过确认测试的程序代码。

6.4 技术要求

1)关键软件部件或测试项目的确认测试应由与该软件项目组无关的技术人员进行,以保证测试的客观性;2)应在正常输入数据和合理的异常输入数据的条件下,考查被测软件功能和性能的完备性;3)确认测试的测试环境必须与软件真实运行环境一致或相容;4)全部测试结果、预期结果及测试数据应当存档保留;5)个别功能和接口要求只能在系统联试后才能确认的,必须在确认测试分析报告中写明;6)软件项目组应积极配合确认测试组的测试工作。

6.5 配置管理要求

确认测试计划、确认测试分析报告、确认测试用例集及有关测试辅助程序、通过确认测试的程序代码、确认测试计划评审表和确认测试阶段评审表进入受控库。

6.6 评审要求

在本阶段应进行两次评审,软件确认测试计划评审和软件确认测试阶段评审。

1)确认测试计划评审

评审确认测试计划的合理性、完备性以及与软件需求规格说明的一致性。提供软件确认测试计划,确认测试计划安排的合理性;确认测试环境选择的合适性;确认测试计划中功能测试的合理性、齐全性;确认测试计划中性能测试的合理性、齐全性;确认测试用例、测试数据、测试方案的合理性、正确性和全面性;确认测试结果分析的合适性;确认测试组人员组成和安排的恰当性。该评审应得出的结论是该确认测试计划是否可行,是否批准实施。

2)确认测试阶段评审

评审确认测试结果的有效性;评审软件功能、性能与软件需求规格说明的相容性;评审确认测试分析结果的正确性。完成确认测试后提供软件确认测试分析报告、确认测试用例集,对确认测试用例集的完备性和恰当性、确认测试用例集和确认测试结果的一致性、确认测试环境和运行环境的相容性、确认测试分析过程和结论的正确性进行评审,最终确认该软件是否实现了软件需求规格说明所要求的技术指标,对确认测试过程不正确或不完整,需改进测试过程后重做或另外组织确认测试组重做。

7.系统联试阶段

7.1 任务

系统联试是大系统开发的一个重要阶段。系统联试应由大系统的开发部门主持,软件项目组参加,以保证软件与大系统的对接。

7.2 技术要求

1)软件与所属大系统的接口应重点测试,不允许有不协调之处;2)对软件向所属大系统输出的信息以及从所属大系统向软件输入的信息,都应仔细归类进行测试,并注意边缘测试;3)测试应在软件和大系统的正式工作环境下进行;4)对存在的问题应分析其产生的原因并给出修改意见;5)全部预期结果、测试结果及测试数据应存档保留。

8.总结

软件生命周期质量管理就是使软件开发过程规范化、程序化和标准化。它通过将复杂的问题分解为若干可实现并可管理的部分,对软件生命周期的各阶段采取相应有效的方法,对其阶段性产品的质量进行验证,以保证软件的质量。

参考文献

[1]周艳会,王静.软件质量管理的几点做法[J].电脑与电信,2012(4):70-71.

软件测试报告范文4

【关键词】评估方法;软件可靠性;电子系统

对于软件可靠性的研究至今已经有几十年的历史,也取得了一定程度的进展,研究软件的可靠性是当前时代的一个前沿科技课题,软件的可靠性研究就目前的情况来看还不够成熟,与实际的工程应用之间还存在着一定的差距,还处于理论研究的探索阶段。传统的软件可靠性模型由于多种因素,导致在实际工程中软件可靠性模型无法直接应用,当前一种用于工程软件可行的可靠性定量评估方法是我们所缺少的。

一、软件可靠性评估的基本概念

软件的可靠性包括以下三个主要要素:

(1)规定的环境条件

软件的运行环境指的就是环境条件。其涉及到如操作系统、输入数据格式域范围、支持硬件、操作规程、其他支持软件等软件系统运行时所需要的各种支持要素。软件的可靠性在不同的环境条件下是有所差异的。规定的条件具体来说主要是描述在软件系统运行的过程中对输入数据的要求以及计算机的配置情况,其他因素并假定都是理想因素。对环境条件进行了明确的规定,可以判断出软件失效的责任是在研制方还是使用方。

(2)规定的时间

运行时间可以作为规定时间的定量,因为软件可靠性所体现的只是其运行阶段。软件系统在运行后挂起与工作的累计时间是运行时间的主要内容。此外,选取程序路径和软件的运行环境由于具有随机性,因此软件的失效为随机性事件,运行时间也就相应的属于随机变量。

(3)规定的功能

规定的工程和任务与软件的可靠性也有着重要的关系。软件的运行剖面会由于所要完成的不同任务而有所区别,其调用的子模块因此也有所不同,可靠性也因此有可能不相同。因此,必须要先明确其功能和任务,这样才能准确对软件的可靠性进行度量。

说到软件可靠性评估就少不了软件可靠性模型。建立的数学模型和可靠性框图用以估算或预计软件的可靠性,可靠性模型的建立是为了便于定量分配、估算、预计以及评价复杂的系统可靠性,为了将较为复杂的系统可靠性逐层分解为较为简单的系统可靠性。

二、测试软件可靠性的过程

测试软件可靠性的完成过程应该包括:设计测试用例、测试实施、编写测试报告、测试前检查以及可靠性数据的收集。

(1)测试前检查

在工程软件可靠性正式测试之前,研制任务书与软件需要要检查是否一致,检查程序与文档的一致性,数据、相应的软件支持环境、所交付的程度要检查是否符合要求,软件研制过程中所形成的文档要检查其是否齐全,文档的完整性与准确性要检查是否已经通过了相关的评审。软件研制过程中形成的文档,根据软件行业的相关标准共有16种:《软件开发计划》、《计算机资源综合保障手册》、《接口需求规格说明》、《软件程序员手册》、《软件设计文档》、《计算机系统操作员手册》、《版本说明文档》、《软件测试说明》、《系统和段设计文件》、《固件保障手册》、《软件需求规格说明》、《软件用户手册》、《接口设计文档》、《软件测试报告》、《软件产品规格说明》、《软件测试计划》。其中《软件测试说明》、《软件测试报告》以及《软件测试计划》,在这里需要注意,是在研制过程中研制方进行测试所形成的测试文档。如果软件的规模不是特别大,原则上来说,是可以将某些文档合并的。虽然进行测试前检查增加了一定的工作量,但是为了提高软件的质量以及及早发现一些错误,进行检查是非常必不可少的一个环节。

(2)测试用例设计

针对组合功能或者是特定的功能设计测试方案,并且将其编写成文档,这就是我们所说的设计测试用例。选择测试用例时要注意,要包括一般情况,也要包括最小与最大边界情况以及极限情况。在选择数据和测试用例时,要尽量考虑那些比较容易发现缺陷的数据和测试用例,因为进行测试的目的就是找出隐藏在软件中的缺陷,要结合复杂的运行环境,确定所有可能的输出条件与输入环境中的测试数据,对软件是够能够产生正确的输出进行检查。一个标准的测试用例应该包括以下信息:待测试的功能; 测试日期; 评价输出结果的准则;测试步骤; 测试目标; 预期的输出; 测试输入。此外,测试用例要在经过专家评审后方可投入使用。对测试用例进行描述是选择和设计测试用例集的第一步,这种描述是否完整、规范化、可理解、权威,决定了试验鉴定人员、软件研制人员、操作人员在多大程度上或者是能否理解和接受该测试用例。因此,在软件的评估与测试中规范化的测试用例描述具有非常重要的意义。

(3)实施测试

上述准备就绪后,便可以进行具体测试。用户稳定、数据、说明书、程序等于可靠性质量特性有关的部分交付的所有软件文档部分,都应该按照质量需求和需求说明进行测试。数据和程序,在需求说明书、用户文档、项目合同中规定的所有配置情况进行测试。可以在测试的过程中考虑进行强化输入。在强化输入下如果软件可靠,那么就说明在正规输入下要更加可靠。我们应该采用多台计算机同时运行软件,进一步增加累计运行时间,以获得更多的可靠性数据。

(4)收集可靠性数据

可靠性评估的基础就是软件可靠性数据,应该建立软件错误分析、错误报告、错误纠正系统。可靠性数据和软件错误报告的保存、收集、处理、分析规程,按照相关的标准要求进行制定与实施,对测试阶段软件的可靠性数据和错误报告进行准确完整的收集与记录。软件可靠性数据如果用时间定义,那么可以分为四类:记录发生一次失效所累计的时间为第一失效时间数据;记录上一次与本次失效之间的间隔时间,为第二失效间隔时间数据;记录某个时间区内发生了多少次失效,为第三分组数据;记录某个区间内的累积失效数,为第四分组时间内的累积失效数。这四类数据是可以进行相互转化的。每个测试记录都必须要包含充分的信息,主要包括:便有测试用例的测试说明或测试计划;参与测试的个人身份;测试时间;包括所有测试时发生的故障在内的,与测试有关的所有测试结果。

(5)测试报告的编写

软件可靠性测试报告,在完成测试活动后是必须要编写的,要对在测试报告中对测试结果以及测试项目进行归纳和总结。可以参考相关的规范格式进行编写,同时要根据具体情况进行剪裁。测试报告应该具有以下主要内容:软件和硬件的使用配置;用户文档、数据和程序的测试结果、产品说明;测试的最终日期;产品标识;与需求不相符合的项目列表;使用的文档。这种规范化的过程控制管理,可以为最终得到客观的评估结果奠定基础,有利于获得真实有效的数据。

总结:本文对软件可靠性的基本概念以及测试软件可靠性的过程进行了简要叙述。完全用现场试验的方法可以说是最好的评估软件可靠性的方法。对软件的可靠性进行评估受到很多条件限制,其中可靠性信息的不足是最大的限制。这就需要:明确软件与各模块的可靠性关系;软件研制部门的配合;收集足够的各模块和软件历史可靠性试验信息;以及已知的各模块寿命类型。

参考文献

[1]石柱.基于模糊技术的软件质量评价及可靠性评估[D].北京: 北京航空航天大学, 2000(03).

[2]王强,陆阳,方欢,朱晓玲.基于结构分析的复杂软件可靠性评估方法[J].2013(04).

软件测试报告范文5

关键词: 软件测试; 案例教学; 实践教学; 案例库

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2014)12-74-03

Research on case teaching in software testing course for higher vocational colleges

Zhang Xiaolan, Guo Jiandong

(Guangdong College of Industry and Commerce, Guangzhou, Guangdong 510510, China)

Abstract: Case teaching can not only fully mobilize the students' enthusiasm, but also improve their theoretical level and practical ability. Combined with teaching experience in software testing, the problems of the case teaching in software testing course are analyzed. In order to improve the teaching effect in software testing course, the case design method in theory teaching and practice teaching is proposed. The construction of teaching case library is given. The basis and premise of the implementation of case teaching are introduced.

Key words: software testing; case teaching; practice teaching; case library

0 引言

51testing公司的《2013年中国软件测试从业人员调查报告》显示[1],2013年中国软件企业软件测试人员与开发人员比例基本保持在1:3,相比之前的1:7比例虽有所下降,但仍与国外软件企业1:1的比例相差甚远,这表明国内软件测试人才市场需求仍会增长,其职业发展的潜力依然很大。正因为如此,很多高校相继开设软件测试专业或课程。在教学过程中,主讲教师一般讲解软件测试理论和介绍软件测试方法,但却缺乏较好的测试案例供学生测试,以验证所学的理论,故教学效果不佳。例如利用等价类划分法、边界值法设计测试用例,学生虽然能按要求做练习,能设计出测试用例,但是很多学生还是会疑惑设计出来的测试用例有何用、怎么用,学生缺乏实践环节的经验,当面对实际软件项目测试工作时,仍然无从下手。

目前,很多高职院校对“软件测试”这门课程进行了改革,并且取得了一定的成效。广东工贸职业技术学院(以下简称“我院”)计算机系从2009年开始开设软件测试课程,通过近五年的教学经验积累和总结,提出从构建软件测试课程的案例入手探讨该课程的案例教学方法。

1 软件测试案例教学所面临的问题

1.1 教材及教学资料缺乏

当前软件测试方面的教材很少,适应高职院校学生的教材更少。绝大部分教材只是阐述空洞的理论,附加简单而又陈旧的工具介绍,而这些理念和工具很多已经被业界淘汰或是被取代[2]。根据《2013年中国软件测试从业人员调查报告》显示,业界现在普遍采用的功能测试软件是QTP,而绝大部分教材中还停留在介绍Mercury Interactive公司的WinRunner工具,同时对于业界中性能测试龙头软件LoadRunner,很多教材并未涉及。绝大多数教材上所提到的自动化测试工具不多,而且讲解的也不是很详细,需要教师进行大量的补充。

1.2 案例缺乏

大多数软件测试教材都是理论内容过多,实践内容不足,甚至只有最后一章有测试案例。大多数高校软件测试课程的定位都是以讲解理论知识为主,实验教学只占很小一部分。高职院校定位于培养技能型人才,要求学生有较强的实际动手能力,这势必需要进行大量的测试实践,而实践需要大量的测试案例。同时,理论教学也需要运用典型案例,加深学生理解所学知识,培养其分析问题与解决问题的能力。

2 理论教学案例设计

教材及教学资料的缺乏势必需要软件测试主讲教师有针对性地扩充理论教学案例。

2.1 扩充教材中的教学案例

在软件测试的众多教材中,讲述软件测试方法的经典案例有三角形问题、日期问题、闰年问题等,但这些案例通常都是文字表述,缺乏具体的程序供学生测试。因此,首先要扩充教材中的案例,采用面向测试的软件设计方法将这些案例做成一个个小的被测系统,设一些缺陷,让学生沿着“测试―理论―进一步测试”的主线来学习。首先对这些案例系统进行测试体验,再系统学习理论,最后利用设计出的测试用例进一步测试,这不仅有利于加深学生对软件测试抽象理论的理解,也让学生更加深知在编程过程怎样避免缺陷,做到规范化编程,提高编程能力。

2.2 引导学生编写软件开发文档作为教学案例

在软件测试的理论教学中,经常会提到几个概念,如:黑盒测试是基于用户需求的测试,集成测试的测试依据是系统概要设计说明书,单元测试的测试依据是系统详细设计说明书等。学生通常会觉得很困惑:用户的需求到底是怎样的,系统概要设计说明书、详细设计说明书中分别包括什么内容,有何区别,对这些文档始终没有直观的认识。事实上,在企业的开发与测试工作中,文档都是很重要的一部分内容。软件开发企业在软件开发过程中会产生一系列的文档,如需求分析报告、详细设计报告、概要设计报告等等,但很少对外公布这些文档。就算能通过校企合作或项目合作的方式获得企业项目文档,缺乏项目业务背景的学生也很难弄清项目中的数据流程、工作流程等。所以通过与软件工程课程教师的沟通协调后,要求学生在软件工程课程设计中,按小组自选熟悉的项目系统,如:“学生成绩管理信息系统”、“图书管理系统”、“宿舍管理系统”等等,按照软件工程的原理编写相应需求说明书、概要设计说明书、详细设计说明书等,只有具备以上资料,才可真实地模拟实际工作模式。在软件测试课程中,延续使用这些案例系统,将对学生掌握软件测试的流程很有帮助。

3 实践教学案例设计

3.1 实践教学目标及工具选用

为了培养面向市场的合格测试人才,在教学过程中,除了理论知识外,还要求教师加强学生测试技能的培养。测试技能的培养是需要通过大量的实践练习来获得的[3]。

通过实践教学环节,加深学生对软件测试理论知识的理解,使学生能掌握软件测试的技术和方法,熟练主流自动化测试工具的使用,提高实际动手能力。51testing公司的《2013年第七届中国软件测试从业人员调查报告》中对软件测试从业人员常用的单元测试工具、功能测试工具、性能测试工具进行统计调查分析,得出在功能自动化测试工具中QTP使用最广泛,如图1所示。在性能测试工具中LoadRunner仍然稳居第一,LoadRunner在性能测试工具中的大哥地位无可动摇,Jmeter测试工具在今年来有小幅上升趋势,如图2所示。在单元测试工具中,软件测试从业人员最常用的单元测试工具是Junit,如图3所示。

图1 2013年调查中常用的功能自动化测试工具分布

图2 2013年调查中常用的性能测试工具分布

图3 2013年调查中常用的单元测试工具分布

注:以上图表数据均来自51testing公司的《2013年中国软件测试从业人员调查报告》

在我院软件技术专业的软件测试课程实践教学中选用的单元测试工具是基于Java开发软件的测试选择Eclipse+Junit;基于C++开发软件的测试选择了CppUnit;基于.NET开发软件的测试选择Nunit。另外,性能测试选择了LoadRunner试用版本,功能测试选用QTP,实践教学环节工具基本与当前主流工具平台相符。

3.2 实践教学案例来源

在软件测试的实践教学中,我们从以下几个方面来扩充教学案例。

⑴ 课程设计成果

我院计算机系软件技术专业在程序设计方面,前期开设了Java和.NET程序设计两个方向。在Java程序语言设计,C#程序语言设计、数据库设计课程结束后,通常会安排两周的课程实训,要求学生在教师的指导下完成课程设计作品。将程序语言设计作品用作单元测试的案例,学生间交叉进行测试,互相充当对方的测试员,这样不仅有利于将程序开发与软件测试结合起来,综合解决软件开发中的问题,而且交叉测试会极大地调动学生学习测试兴趣和积极性,课堂气氛活跃。

⑵ 毕业设计成果

在大三第二个学期,我院会安排12周的毕业综合实践周,由指导老师跟学生共同确定毕业设计题目,学生独立完成毕业设计。通过对以往选题汇总发现,绝大部分同学都是选择Windows程序开发和网站开发两个方面。从毕业设计作品中可选择一部分优秀的作品作为实践教学的案例。考虑到现有的网站如网易、搜狐前已经做足了测试,很难再发现其中的缺陷,所以在Web网站测试实践中,我们将学生的网站作品在机房的局域网内,学生在学生机进行测试,在这个过程中真正体会Web网站测试、Cookies测试、安全测试、目录测试等方面,找到测试成就感与自信。

⑶ 科研项目成果

我院一直鼓励教师多参与科研项目,教师参与开发的项目也可以用于实践教学案例。只有任课教师对所选的项目非常熟悉,甚至是亲自参与开发,才能对项目开发整个流程、可能遇到的问题有充分的认识与准备,为学生提供有力的帮助和准确及时的指导,为项目教学的顺利开展提供前提条件,使项目教学的整个实施过程都能在任课教师的良好掌控之下[4]。

⑷ 校企合作项目

目前我院已与部分企业签订了校企合作协议,在软件测试课程的综合性生产实习中,引入企业的实际项目作为案例。邀请校外实习基地企业的行业专家将实际工作项目带入实训室,学生3~5人为一组,按行业实际给他们分配角色,在该过程中强化学生的综合设计和运用能力,让学生掌握在实际项目应用中各种测试方法的使用,熟悉测试项目管理,感受大型测试项目工作流程。

4 案例教学的实施前提

4.1 跟前导课程的衔接

软件测试与软件开发有非常紧密的联系。要想成为一名优秀的测试人员,就必须会编写程序,至少精通一门程序开发语言才能胜任单元测试、集成测试、性能测试的工作,软件开发课程学习的好坏直接影响了软件测试能力。在软件测试单元测试、集成测试教学实践中,案例主要来源于程序设计语言课程的设计作品,这要求该课程主讲教师对学生严格要求,要求学生按小组保质保量完成小组作业,这些小组作品是软件测试课程中交叉测试的基础和前提。

同时,软件测试要用到一系列的文档,如需求分析说明书、概要设计和详细设计说明书、用户手册和安装使用说明等,这些也是软件工程课程设计上要学生完成的内容,课程设计对这些内容的要求严格与否,会对软件测试课程带来很大影响。通过这几年的教学发现,大多数学生对这些文档不甚了解,而且高职院校的学生普遍重技术轻理论,不愿意花时间去写文档。

4.2 教师自身素质的提高

为了顺利实施案例教学,主讲教师也需要不断提高自身素质。软件测试工具较多,范围广,不易把握重点,大部分测试工具如:LoadRunner、WinRunner、JUnit、Jmeter等都是英文版[5],参考资料少,这就要求教师通过主动学习、走进企业来提高自身素养。高职院校提倡“双师型”专业教师队伍建设,要求教师既要具备理论教学的素质,也应具备实践教学的素质,学校也可以派遣教师到软件测试培训机构进行培训,提高教师水平。只有这样,教师才能自如地将企业实际的测试流程、方法、技术带入案例教学实践中。

5 结束语

兴趣是最好的老师,在理论教学和实践教学中引入案例教学、建立测试案例库,使理论和实践过程更具直观性、生动性、说服力、吸引力,能有效调动学生的积极性和兴奋点,有助于学生掌握软件测试的基本理论和方法,加深对软件测试测试自动化工具的理解。同时随着教学的推进,教师可针对当前的测试工具,设计新的教学案例,扩充至教学案例库中,不断提高案例的针对性、实效性、鲜活性。

参考文献:

[1] 2013年第七届中国软件测试从业人员调查报告.http://

,2013.

[2] 钟久隆,路桂明.高职院校《软件测试》课程教学改革探索与实践[J].

教育教学论坛,2012.2:130-131

[3] 丁智国,吕振洪.软件测试课程实验教学探索[J].计算机教育,2012.3:

102-105

[4] 龚宇辉.基于项目驱动的软件测试人才培养模式[J].华章,2013.20:

199

软件测试报告范文6

关键词: 软件潜在分析; 软件可靠性; 软件安全性; 故障树分析; 调试器

中图分类号: TN915.04?34; TM417 文献标识码: A 文章编号: 1004?373X(2016)15?0081?05

Abstract: In the process of C programming language software potential analysis, the management of the defect generating process is often neglected, and the progress of the defect analysis work is slow. In order to solve the above problems, the software potential analysis tool based on C programming language was designed and developed. In the paper, the process from the generation source causing C programming language software defect to accident occurrence is decomposed, in which the static analysis method is used to find out the source code defect, the reliability defect is analyzed with failure modes and fault tree method, and the security defect is tracked with dynamic test. The corresponding tool was designed and implemented after the determination of analysis method. The tool was tested and verified with an instance. The verification results show that the tool, in each stage of the defect, can manage and analyze the potential defects effectively and improve the efficiency of the software potential analysis, and provides the guarantee for the quality of critical software safety.

Keywords: software potential analysis; software reliability; software security; fault tree analysis; debugger

0 引 言

在航空、航天等安全关键领域,软件承担的任务包括数据采集、导航控制和通信指挥等任务。随着科技的发展,软件已经成为这些系统的神经中枢,发挥着越来越重要的作用。在安全关键系统的运行过程中,若其软件一旦发生故障,就可能造成十分严重的后果[1]。然而,目前的软件缺陷分析方法及工具均从某个单一的角度检测软件缺陷。在实际的可靠性和安全性测试中,不可能只采用其中的一种分析方法来断定软件的缺陷,而需要将多种分析方法有效结合,在最大程度上保证安全关键软件的质量[2]。

1 需求分析

1.1 设计目标

首先,系统能够提供以XML为接口的缺陷导入,并对工程项目代码的静态分析结果进行处理,对代码的安全缺陷进行等级划分,实现层次化的缺陷识别,统一缺陷类型。其次,该平台能够建立准确的故障分析模式和故障树分析方法,在测试过程中提高软件故障分析及安全性测试的高效性和全面性,实现全数字仿真测试环境的无缝集成[3]。并提供便利的辅助功能,实现测试脚本的生成、测试用例的生成、测试报告单的生成。

1.2 业务流程

基于C语言的潜在分析工具共有两条主线流程,如图1所示。静态分析结束后,通过XML接口将缺陷导入本系统,可以查看缺陷所在的源文件、根据已整理完成的缺陷分级获得缺陷严重等级、对缺陷进行处理并填写问题报告单、编写测试用例等。使用系统提供的工具在故障模式辅助下的故障树建模,并计算故障树的最小割集,生成测试用例[4]。以上2个步骤生成测试用例后,在全数字仿真测试平台的基础上编写测试脚本,使用调试器进行动态测试,在测试过程中可进行单步跳过和单步进入等,并观察寄存器状态、内存值和变量值,测试结束后分析测试数据。

1.3 功能分析

系统是在全数字仿真测试环境采用软件仿真技术的基础上构建的,仿真平台能够模拟SPARCV7处理器以及其他片上与片外设备的功能和时序关系,为最终的测试脚本运行提供仿真的运行平台[5]。在此基础上,本平台包含下述4个系统,为软件的潜在问题分析与处理提供服务,功能结构如图2所示。

1.4 静态分析结果处理

静态分析结果处理需要具备的功能包括项目管理、缺陷分析处理、测试用例管理、问题报告单管理和测试结果分析。其中,项目管理的作用是对每个软件程序可以在该模块建立相应的项目来管理该软件项目的问题;缺陷分析处理用于提供工具辅助测试人员对缺陷结果进行处理;测试用例管理主要管理测试用例,对缺陷对应测试用例的管理,包括添加、删除和查询缺陷测试用例的功能;能够通过提供的测试用例模板辅助生成测试用例。

1.5 故障模式及故障树分析

静态分析结果处理需要具备的功能包括故障树建模、辅助建立故障树及故障树分析。其中故障树建模提供用户绘制故障树的平台,包括建模、导入保存节点属性的编辑和故障树工具集管理等。辅助建立故障树指故障树建模过程中,使用知识库中已经保存的故障模式及其对应的故障树,辅助用户使用故障树分析方法建立故障树模型,该功能模块分为故障树对齐、完整性检查、根据故障树节点搜索故障树、根据故障模式搜索故障树、保存节点对应的故障模式。故障树分析是分析可靠性缺陷的主要模块,是故障树分析方法最核心的部分,包括:生成最小割集、计算事件概率、故障树解析和测试用例生成[6]。

2 系统设计

2.1 硬件整体架构

缺陷分析工具的设计采用基于服务器?客户端的设计方案。其中服务器主要提供静态分析服务和测试数据的存储。静态分析服务一般由静态分析软件提供,包括静态分析服务、数据存储服务。客户端主要负责进行实际的测试,包含:静态分析结果处理、故障模式及故障树分析、基于故障注入的动态测试功能。软硬件的整体架构如图3所示。

2.2 软件设计

客户端软件实现了平台的主要功能,其设计分为三层,其结构见图4。其中用户层为用户提供直接的服务;功能层实现了本安全性测试平台的主要功能,供用户层模块使用。

软件是基于EclipseRCP进行开发的,采用GEF框架进行建模。

2.3 功能设计

根据系统的需求,将工具的功能划分为静态分析结果处理、故障模式及故障树分析、动态测试调试器和基础数据管理。

静态分析结果包括项目管理、缺陷分析模块、测试用管理模块、问题报告单模块和测试结果分析。

故障模式及故障树分析包括故障树建模、辅助建立故障树及故障树分析。

动态测试调试器包括工程管理、断点管理、调试过程控制及调试信息管理。

基础数据管理的划分包括用户管理、角色管理、缺陷分级管理及故障模式的管理。

3 系统实现

3.1 功能实现

3.1.1 静态分析结果处理

静态分析结果处理需要具备的功能包括项目管理、缺陷分析处理、测试用例管理、问题报告单管理和测试结果分析[7]。

缺陷分析处理:按文件划分显示缺陷通过SQL的group by file查询实现。

测试用例管理:根据测试用例模板辅助生成测试用例时,首先要根据缺陷代码查询其对应的所有用例模板,点击模板后,将模板内容填充至界面中,点击添加即可添加。另外,测试用例模板的字段与测试用例的字段相同。

问题报告单管理:问题报告单和测试用例的导出通过iText完成。问题报告单和测试用例的表现形式为word中的表格,生成报告的核心是表格的创建。在表格的创建过程中,需根据用户的处理自动填写至相应位置。

测试结果分析:首先按照给定条件查询数据,再使用JfreeChart包绘制饼图或柱状图。

3.1.2 故障模式及故障树分析

故障树建模采用GEF实现,GEF是一个图形编辑框架。根据实际需要,系统提供了事件节点、门节点、转入转出三类节点和节点间的连线。

辅助建立故障树,该模块的实现涉及较多的数据库操作,故障树采用Sftree类描述,其包括多个表示节点的SftElement类,节点之间的关系为SftRelation类。

最小割集的生成是根据用户构建的故障树进行分析,查找导致顶事件发生的所有基本事件的集合。其步骤大致为:输入故障树,判断故障树是否合法,若不合法则直接返回,否则进行下一步;利用“下行法”求该故障树的最小割集;输出得到的最小割集,并显示在对话框中。

3.1.3 基础数据管理

基础数据管理模块用于数据库管理员对辅助测试数据的编辑,系统在与数据库进行交互过程中采用了Hibernate包[8]。对于数据库表的增删改,本系统采用了Common框架的实现方式。Common框架的流程如图5所示。

3.2 SNMP协议网络设备管理模块的实现

3.2.1 最小割集生成算法

故障树完整性检查完毕,需要求出最小割集,采用“下行法”进行计算,其步骤如下:

(1) 创建保存最小割集的列表cutset,cutset保存了若干个AnalysisNode对象,该对象保存了一个最小割集,包括这个最小割集中的所有节点nodes及每个节点到达根节点的路径path;

(2) 从顶事件root开始,若root为null,则返回结束;不为null,则将创建AnalysisNode对象set,将root加入set的节点列表,并设置root的path为root,将set加入cutset列表;

(3) 获得最小割集cutset中不全为根节点的currentset,若其为null,则转步骤(7),否则转步骤(4);

(4) 将currentset从cuteset中移除,获得currentset的首个非叶节点dealnode及门节点gatenode。若gatenode为“与门”,转步骤(5);若为“或门”,转步骤(6);

(5) 创建一个新的最小割集newset,遍历currentset和“与”门的所有子节点inode,若其为dealnode则continue;将inode加入到newset的节点中,其路径不变;遍历gatenode的子节点gnode,将gnode加入到newset的节点中,并设置其路径为dealnode的path与gnode之和,将newset加入到最小割集列表cutset中,转步骤(3);

(6) 遍历“或”门的所有子节点snode,并创建一个新的最小割集newset,遍历currentset的所有子节点inode,将其加入到newset的节点中;并获得inode的路径path,也加入到newset的path中;遍历结束后将snode加入newset节点中并设置其path为dealnode路径,将newset加入最小割集列表cutset,转步骤(3);

(7) 返回cutset,cutset即为该故障树的最小割集列表。

3.2.2 混编文件生成算法

数字仿真测试平台记录了源代码与混编码的对应方式,需要根据接口生成源代码与汇编代码的混合代码,其中一条源代码可能对应着多个汇编代码块,需要一次读取源文件,查找其相应的混编文件并进行显示。生成混编文件的步骤如下:

(1) 获得源文件,将其路径添加到数组,保证创建混编文件的线程只有一个;

(2) 创建混编文件输出流及源文件的输入流;

(3) 遍历源码行号[i,]根据文件名和行号得到自[i]开始合理的第一条源码行号[j,]若[j=0]或[i=j+1,]则将[i][到]lineSum行源文件写入混编文件输出流,转步骤(6);否则,将[i]至[j]行内容写入混编文件输出流中;

(4) 根据源码行对应的目标码代码的数组,获得代码块的数组,遍历代码块,获得起始目标码地址m_start_address,设置address_temp为m_start_address,转步骤(5);

(5) 遍历代码块,根据PC地址address_temp获取该行汇编文件,加入混编文件输出流,并设置address_temp为下条指令的地址(因为存在多条代码块时为call指令);

(6) 将混编文件输出流写入文件,混编文件生成过程完成。

4 测试与验证

4.1 测试准备

(1) 测试环境包括服务器和客户端两个部分,硬件环境和软件环境如表1所示。

(2) 在服务器上安装数据库系统,采用Klocwork作为静态分析软件,因此也需要安装Klocwork的服务器端软件。在客户端上,需要安装本系统和Klocwork的客户端。

4.2 测试实例

(1) 静态分析结果处理部分的验证

如采用Klocwork9进行静态代码分析,对其加入了支持GJB9369的扩展规则,分析结果通过K9提供商提供的软件,已经转为本工具可接受的XML文件。导入后发现存在源代码缺陷的文件共有4个,总计10个缺陷。由于在基础数据中设置代码为“UNINIT.STACK.MUST”的缺陷严重度为等级1,对其进行缺陷确认并填写问题报告单,对于等级2的确认为非缺陷,等级3的缺陷忽略。

在对静态分析结果进行处理后,可通过两种途径对处理结果进行验证,一是通过打印问题报告单和测试用例与填写内容进行比较确认;二是通过数据统计进行。经过对比和验证,静态分析出的源代码缺陷处理结果正确的生成了报告和统计图。

(2) 故障模式和故障树分析验证

故障模式和故障树分析验证中,将“火箭发动机误点火”作为顶事件进行分析,造成顶事件发生的事件是外部因素或提前点火,其中外部因素不做分析,仅对提前点火事件进行分析。提前点火事件可能由硬件故障或软件故障造成,硬件故障的原因有蓄电池接通和点火电路允许,而软件故障可能是由内存溢出或线程非法造成。在故障树的分析过程中,可根据节点名称或故障模式辅助建模,在建模结束后,为每个基本事件设置发生的概率。建模结束后对故障树进行完整性检查后即可进行故障树分析,分析结果如表2所示。

(3) 动态调试的验证

首先需要针对前两步添加的测试用例编写相应的测试脚本。在源代码缺陷分析中遇到的未初始化变量 unsigned int [x,]对于该缺陷的验证可通过两种方式:一是在非故障注入的脚本运行过程中,可通过单步调试查看[x]变量的变化;二是通过针对该问题编写测试脚本,需按上述格式填写,再从调试器中打开运行,观察测试记录文件。首先,在 rs232.c的第36行加入断点,点击run运行至该行号后,单步跳过至37行。然后,下文为脚本的片段,首先在2~3内取变量[x]的值,再通过故障注入改变[x]的值,再次取出变量[x]的指令。

源代码缺陷可能导致内存变量发生故障,因此,需要对静态分析处理中构建的测试用例进行确认。在动态测试结束之后,还需要根据结果对测试用例进行确认,即确认静态分析或故障树分析的软件缺陷的测试用例是否通过。通过基于故障注入的动态测试,可在测试过程或其记录的文件中观察出故障发生时系统的运行状态,从而保证系统的安全性。而其他分析,如源代码缺陷的分析和故障模式及故障树分析可以在安全性缺陷分析采用的基于故障注入的动态测试中进行验证,验证过程即跟踪了缺陷的产生到故障的出现。

5 结 论

航天航空等关键领域,软件缺陷直接影响着整个系统。本文由缺陷产生到发生故障的过程着手,进行了全程跟踪,并对这些安全关键软件测试中使用的分析方法进行了深入的整合。工具采用接口化的方法,使得各种分析方法能够灵活组合;并模型化数据,建立了统一的数据管理平台,使得分析数据以标准化形式表示,增加了数据使用的延展性,便于多领域的故障数据管理;建立了多阶段的分析概念,把缺陷分析流程化,多维化。在可靠性和安全性测试流程中辅助分析人员针对C语言缺陷进行完整的分析和记录。

参考文献

[1] 陈静.Klocwork在嵌入式软件静态测试中的应用[J].电子与电脑,2013,38(5):89?92.

[2] 樊林波,吴映程,赵明.软件可靠性与安全性的区别分析及其证明[J].计算机科学,2008,35(9):285?288.

[3] 何鑫,郑军,刘畅.软件安全性测试研究综述[J].计算机测量与控制,2011,19(3):493?496.

[4] 仉俊峰,洪炳,乔永强.基于软件方法故障注入系统[J].哈尔滨工业大学学报,2011,38(6):873?876.

[5] 漆莲芝,张军,谢敏.故障树分析测试用例生成技术研究与应用[J].信息与电子工程,2010(8):594?597.

[6] 姜兴杰,杨峰辉.软件可靠性分析与设计[J].现代电子技术,2011,34(7):135?137.