首页 > 实用范文 > 范文大全 > 软件测试报告(优秀5篇)正文

《软件测试报告(优秀5篇)》

时间:

在生活中,报告使用的次数愈发增长,报告中涉及到专业性术语要解释清楚。相信很多朋友都对写报告感到非常苦恼吧,为大家精心整理了软件测试报告(优秀5篇),如果能帮助到您,小编的一切努力都是值得的。

软件测试报告范文 篇1

关键词:项目驱动法;软件测试;教学方法

作者简介:赵晓君(1979-),女,河南南阳人,郑州轻工业学院软件学院,讲师;黄艳(1976-),女,河南信阳人,郑州轻工业学院软件学院,副教授。(河南 郑州 450002)

基金项目:本文系郑州轻工业学院校级青年教师教学改革项目的研究成果。

中图分类号:G642.0 文献标识码:A文章编号:1007-0079(2013)07-0101-02

随着软件产业的快速发展,软件系统的规模越来越大,功能实现也越来越复杂,导致软件中存在的缺陷数量大大增加,这些缺陷将会带来各种损失,甚至出现灾难性的后果。因此,如何保证软件质量已成为所有使用软件和开发软件的人们关注的焦点。软件测试作为软件工程的一个重要组成部分,是目前用来验证软件是否能够满足用户需求功能的唯一有效方法,是保证和提高软件质量的重要环节。为适应软件产业的发展趋势和满足软件测试人才的大量需求,目前已经有许多大学在软件工程专业添加软件测试课程或者添加软件测试专业方向。

软件测试专业包含多门专业课程,有“软件测试理论”、“软件测试技术”和“软件缺陷管理”等,其中,“软件测试理论”课程重点为初学测试的同学讲解测试的基础理论知识,主要包括软件测试基本理论、软件测试方法和技术等,在多门专业课程中占有举足轻重的地位。

一、“软件测试理论”教学现状

“软件测试理论”课程重点介绍软件测试的基本理论,因此整个课程主要以教师讲授为主,在教学的过程中存在以下问题:

1.教学内 容理论性较强,难以调动学生学习的主动性

对于初学软件测试的学生,首先要向其讲授相关测试理论,使其建立系统的测试理念。

但是学测试的学生大都是理科生,喜欢操作性强的课程,“软件测试理论”课程的理论性太强,需要背诵很多概念性的知识,这对于他们来说是比较困难,不能激发学习的主动性,教学效果不理想。

2.测试方法和技术案例实际应用价值不足,学生很迷茫

测试方法和技术是“软件测试理论”课程学习的重点和难点,这部分内容仅靠老师的讲解和书本上的案例很难让学生深入理解掌握测试技术的内涵,学生在学习这部分知识时会产生迷茫:学习这些知识有什么用处,在具体的项目测试中,应该怎样应用这些知识?没有实际的项目案例做支撑,学生会失去继续学习下去的兴趣。

针对上面的问题,本文提出将项目驱动法应用于“软件测试理论”课程的教学中,学生在进行项目实践的同时,根据需要学习软件测试相关理论知识,这样有助于提高学生的学习主动性,有助于理论知识的牢固掌握,有助于提高学生的实践技术能力,改善该课程的教学效果。

二、项目驱动法

项目驱动法是目前中国教育领域中一种比较新的教育教学方法。

所谓项目驱动法,是师生通过共同实施一个完整的项目工作而进行的教学活动,它既是一种课程模式,又是一种教学方法。[1]这里的项目根据课程教学内容的不同所包含的涵义也不同。在“软件测试理论”课程教学中,项目即指一个已经开发完成的软件测试工作。通常,项目教学都是实践导向的和任务驱动式的教学。

在项目驱动模式的教学活动中,教师根据学生现有的知识水平和项目经验选择一个合适的项目,以项目实施为主线展开教学活动,把课程相关的知识点的讲解融入项目操作的每个步骤中。在项目实施的过程中,以学生为中心,教师主要做组织和指导工作,学生在整个项目的实施过程中处于探索知识的情景中,充分发挥主动性、积极性和创新精神,综合运用所学的知识和技能解决实际问题,最终达到有效地将所学知识系统化深入化的目的。

这种模式从根本上将传统课堂中老师满堂灌转变为“学生为主体,教师为主导”的教学模式。同时,学生通过一个具体项目的实践,感受到了真实项目管理的思想和团队协作的必要性,提高了学生的创新能力和项目实践能力。拥有真实项目的实践经验使得学生在择业时拥有很大竞争优势。

将项目驱动法应用于“软件测试理论”课程教学中,在课程理论教学中加入一个完整的项目测试实践环节,通过项目实践能够很好地激发学生的学习主动性,使学生经历了一个“先做,遇到问题,再学,解决问题,再做,获得经验”的学习过程,最终完成一个完整的软件测试实践,同时也学到了“软件测试理论”课程应该掌握的理论知识。这样,既解决了软件测试理论课程理论性太强的问题,又解决了测试方法和技术案例实际应用价值不足的问题;而且丰富了学生的实践经验,提高了软件测试理论课程的教学效果。

三、“软件测试理论”课程教学目标和教学内容

1.教学目标

通过本门课程的学习和实践,理解软件测试理论与原则;掌握主流测试技术和方法,熟悉测试用例的编制、熟悉软件测试的基本流程,熟悉软件测试过程中各类技术文档的编制规范,并能灵活运用测试技术解决实际问题。

对于一个具体项目软件,每一个学生都能够顺利完成如下手工测试流程:根据软件需求规格说明书撰写测试计划,设计测试用例、进行测试环境配置和测试数据准备工作、执行各种测试,撰写缺陷报告、跟踪并修复缺陷、进行测试评测,最后提交测试总结报告,达到软件企业对测试专业人才的要求。

2.教学内容

“软件测试理论”课程的教学内容主要包括软件测试基本理论、软件测试基本技术、软件测试过程和软件测试工具。[2]

软件测试基本理论包括软件测试、软件缺陷和测试用例的基本概念,测试的目的、测试模型、测试分类和测试流程。

软件测试基本技术包括白盒测试和黑盒测试;其中白盒测试包括静态测试和动态测试,动态测试又包括程序插桩、逻辑覆盖、基本路径测试等;黑盒测试包括等价类划分、边界值分析、因果图法、判定表法、场景法等。这些基本技术都是在进行测试用例设计时使用的。

软件测试过程是指执行测试的过程,通常分为四个阶段:单元测试、集成测试、系统测试和验收测试。

软件测试工具有多种:功能测试工具、性能测试工具和测试管理工具等。

四、项目驱动法的应用方案

1.项目的设计

实施项目驱动法,首先需要设计项目。项目的设计与选取直接影响到该教学模式的教学效果及学生的学习兴趣。“软件测试理论”课程项目的选取与其他课程又有所不同,学生要进行的操作是对现有的或者已经开发完成的软件的测试工作,因此在设计项目时应遵循以下几条原则:

第一,项目是现有的软件或已经开发完成的软件,软件中有部分明显错误,有部分隐藏错误;明显错误有助于提高学生的测试积极性,隐藏错误有助于启发学生进行更深入的测试。

第二,项目具有典型性,代表大部分软件的共性。通过该项目的测试,学生可以掌握大多数软件的测试流程和测试方法。

第三,项目中有多种情景元素,符合使用多种测试技术和方法,有助于学生在进行项目测试的同时,学习使用多种测试技术设计测试用例的方法。

第四,项目大小和难易适中。每个项目组的人数控制在3~5个人,设计的项目能使学生通过努力在一定的时间内完成。

根据以上原则,本课程目前选择的项目是《企业薪酬管理系统》。

2.项目驱动法的实施

本课程通过让学生进行企业薪酬管理系统完整的测试流程实践的同时,讲解测试需求编写、测试计划编写、测试用例设计、测试环境配置、测试执行、缺陷跟踪和管理、测试报告撰写等内容。课程授课方式主要是分阶段讲解测试过程和测试要求,每一个阶段开始,老师先讲原理,选择部分内容做例子进行讲解,然后学生比照例子跟着做;阶段内容完成时,学生提交完成的文档,老师选择典型的问题进行讲评,然后进行下一个阶段的内容,如此类推直至测试结束。

企业薪酬管理系统测试流程设计如图1所示。

本课程课时为60学时,根据图1系统测试流程图安排,基于项目驱动法的“软件测试理论”课程安排如表1所示。

在课程进行的过程中,必须严格按照项目的测试流程进行,测试流程为:先获取项目测试需求,撰写测试计划,设计测试用例,执行测试,提交缺陷报告并跟踪修复缺陷,最后提交测试总结报告。课程结束,要求学生提交项目测试报告,测试报告包括多个文档,整个流程中每个阶段的工作必须有撰写规范的文档提交,如:测试计划、测试用例、测试执行报告、缺陷报告和测试总结报告等等。

测试报告既体现了教师项目教学的结果,也体现了学生对测试知识技能的掌握水平。通过评价学生作品,找出学生在学习过程中的薄弱环节,进一步改进项目驱动教学的教学安排,使其能够发挥最大的教学效果。

五、结束语

本文针对软件学院软件工程专业的培养对象和教学特点,把真实项目引入“软件测试理论”课程课堂教学中,采用项目驱动教学法,从项目的需求评审、测试计划、测试用例设计、测试执行、缺陷报告、测试评测到测试总结一个完整的测试流程,交给学生组建测试团队,按照流程进行任务分配和管理,最终完成整个项目的测试工作。通过一个完整项目测试流程的完成,有效提高学生的学习和实践能力、解决问题的能力、团队协作能力等,使学生在掌握软件测试的各种测试技术和基本流程的同时,积累了一定的项目测试经验,为他们今后的就业打下了良好的基础。

参考文献

软件测试报告范文 篇2

有关软件测试实习报告范文【1】

1实习过程介绍

1.1 实习第一阶段

7月8日到7月15日,我主要用来学会使用公司软件部门所开发的应用软件和各种产品设备,熟悉和了解一贯的操作方法和可能出现的问题,并就如何解决问题向老员工请教方法。教我的是一位年纪大一、二岁的同事,先与我说了一下要点,然就让我自已看,遇到不懂的就问。初次接触单,发现它并不像课本那样的有条有序,许信息夹杂在一起,令人眼花缭乱,而且以有不同的种类,要做到随便一看就知是什么单不下点功夫是不行的。我知眼高手低是一个通病,于是接来的几天我就踏踏实实的坐在哪里认真的看产品介绍和说明书,熟它的大致结构。

1.2 实习第二阶段

7月15日到7月25日,熟悉了相关软件和硬件的操作和基本故障诊断之后,我也成为工作之中的一员,开始尝试解决客户应用产品中出现的一些问题。在这一段时间里,主要任务有巩固之前所学的,对常见的错误要一看即知,并养成认真仔细的工作作风。在工作的过程中我也遇到了一些棘手的我无法解决的问题,比如一个对于软件数据库的操作问题,一个客户在使用产品的过程中发放补贴有误而按我们的系统和软件的操作步骤似乎又没有问题,于是就要查看客户的数据库资料,所以我就叫客户将一卡通软件的数据库备份发过来,但是刚开始对于本公司测试数据库的数据结构和数据表又不甚了解所以对于这个问题我就暂时无法解决了,最后在公司老员工的帮助下我准确的找到了相关数据表并进行了相关查询,终于查出了问题所在。经过这个故事之后我也感觉到光靠培训听讲是不那么管用的有时候也要自己试着去解决问题去亲自动手测试一些东西在实际的应用过程中去发现问题和解决问题,做任何事都是一样要实事求是,实事求真。

1.3 实习第三阶段

7月25日到8月25日,现在我通过了前一阶段的学习和了解,可以说对整个一卡通系统的工作原理和各种数据流程形成了自己的观点和见解,同时也对这个市场的需求和一些潜在的可能的变

化有了一个大致看法。结合以上的培训和了解我现在的任务就是熟悉各种软件的操作和数据结构然后在此基础上尽一切可能的去模拟去思考现实使用环境中的应用可能性和预测可能出现的状况然后对比一出现故障的概率等等,在这样的一个环节之后我要做的更细致的活儿就是做好各种测试计划和测试报告,然后对这些报告做一个准确和客观的评估然后将我所获得的结果反馈给软件或者硬件开发人员。我学习方式是坐在我们项目经理的身边看他做各种更改和测试,他一边做一边教,把要测试的要点给了我,让我思考模拟的方法。我遇到不懂的地方就向他请教,直至有了自己的周密方案之后形成纸质文件之后,才算是合格。有了第一次的错误之后,我就变得更加的小心,所以在其后的工作中我都有保持谦虚的心态。在种状态下我进步很快,花了比别少了将近一半的时就达到目标了。

2实习中所发现的问题

1、缺乏工作经验

因为自己缺乏经验,很多问题而不能分清主次,还有些培训或是学习不能找到重点,随着实习工作的进行,我想我会逐渐积累经验的。

2、工作态度仍不够积极

在工作中仅仅能够完成布置的工作,在没有工作任务时虽能主动要求布置工作,但若没有工作做时可能就会松懈,不能做到主动学习,这主要还是因为懒惰在作怪,在今后我要努力克服惰性,没有工作任务时主动要求布置工作,没有布置工作时作到自主学习。

3、工作时仍需追求完美

在工作中,不允许丝毫的马虎,严谨认真是时刻要牢记的。

4、学术上不够钻研

这是由工作性质决定的,也是我自己选择的,因为在我看来,只有被市场认可的技术才有价值,同时我也认为自己更适合做与人沟通的工作。但我毕竟是硕士研究生,需要作一些技术的研究工作,这就需要我个人多关注科研的最新进展,同时,这也对我的工作有促进作用。李广成总裁,也是我的导师,在百忙之中都会抽出时间作研究工作并指导我的学习,我的时间比他充裕的多,也应该可以多关注科研技术的进展。

有关软件测试实习报告范文【2】

1、实习目的

通过实习提高自己的对社会的认知能力,同时理论联系实际,让自己迅速适应社会,跟上IT前进的快速步伐。通过理论与实际的结合、学校与社会的沟通,进一步提高学生的思想觉悟、业务水平,尤其是观察、分析和解决问题的实际工作能力,以便培养自己成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。

2、实习要求

实习学生具有双重角色,既是学校的学生,又是实习单位的工作人员。鉴于此,首先,必须以正式工作人员的身份进行实习。不可以因为实习生身份而放松自己,要严格遵守实习单位的有关规章、制度和纪律,积极争取和努力完成领导交办的各项任务,从小事做起,向有经验的同事虚心求教,尽快适应环境,不断寻找自身差距,拓展知识面,培养实际工作能力。其次,以“旁观者”的身份实习。在实习过程中,要自觉服从实习单位的安排,与此同时,也要把眼光放高远,从公司工作的全局出发,了解公司运行的基本规律、从业人的基本心态、行政管理的原则等,这种观察和训练能够使我在更广的层面熟悉工作技巧,增强适应能力。最后,以“研究者”的身份实习。要在实习前通过“双向选择”(指定、自定)方式确定一些研究课题,积极探索理论与实践相结合的途径,利用实习机会深入社会,为正是步入社会工作做好准备。

3、实习单位简介

我于2月9日进入xxx进行实习。 下面对实习单位做个简介:

xxx科技股份有限公司源于北京xxx信息系统有限公司,是中国科学院软件研究所实施国家知识创新试点工程的产物,是研究所技术研究及开发主体转制的结果。公司成立于1996年5月,总部设在北京。公司是专门从事计算机软件研发、应用、服务的智能密集型高新技术企业,以大型行业应用软件开发和系统集成为核心,集自主开发的行业通用软件产品、网络信息安全软件产品、大型网络应用软件组合平台、中间件软件产品及应用工具于一体,涵盖了系统软件、支撑软件、行业应用软件等各个层次,可为大型应用系统工程提供全方位支持。公司拥有多年从事软件工程实施、国内外合作开发及推广的丰富经验,是北京市新技术产业开发试验区新技术企业,国家发展计划委员会、信息产业部、商务部、国家税务总局认定的“国家规划布局内的重点软件企业”,“国家火炬计划北京软件产业基地”骨干企业,“AAA级信用企业”,北京市软件企业。

公司已通过ISO9001质量体系认证,CMMI5级的评估认证。获得信息产业部系统集成一级资质证书,国家保密局涉及国家秘密的信息系统集成甲级资质证书。到目前为止,公司已获得突出业绩和颇高荣誉,荣获国家科技进步三等奖一项,部级新产品、国家重点新产品各一项,中科院科技进步二等奖一项,并多次获得中国国际软件博览会金奖和创新奖。

xxx科技现已拥有一支千余人的、以年轻的博士硕士为骨干的、老中青结合的科技队伍。同时,也拥有一支资深顾问团队,成员涉及保险、银行、政府、媒体、电力、卫生、邮政等诸多行业领域。xxx科技以在保险、银行、政府、媒体、邮政等各个领域的迅猛发展,吸引着越来越多的来自世界各地的跨国企业巨头,如Microsoft、IBM、HP、BEA、Oracle、SUN、SGI、DELL、BMC及NEC、Toshiba、Lotus等公司成为我们的战略伙伴。 从2003年开始,xxx科技更是依托在业界的广泛渠道及良好的合作关系,连续举办中国软件领域的权威盛会――中国软件技术大会。以“张扬个性、促进创新、引爆争鸣、激发活力”为口号,以中立、开放为宗旨,容纳并汇聚了当今软件业的多种技术和流派,获得了社会的广泛关注与认可。

二、实习内容

本着对IT业的憧憬,我走进了xxx。我在公司所从事的工作是软件测试,在真正投入到工作之前,我在网上查询了许多测试员的相关要求,了解了作为一个测试人员必须耐心,细心和平和的心态,他的目标是尽可能早一些找出软件缺陷,提高产品的质量,降低维护的成本,尽可能的达到客户的需求。软件测试员的一个基本素质是:打破沙锅问到底;另外还必须具备探索精神,有创造性,追求完美,判断准确,同时也还必须是个故障排除能手,等等。还没看完就发现自己离这些要求真的好远,更进一步认识到自己必须要全心全意投入工作,虚心请教,一切都得从头开始。

另外,测试并不是单纯意思上的机械的“测试”,它首先要求对产品非常熟悉,不管是从功能上还是操作上。更为重要的还有就是我们要了解客户的需求,根据客户的要求来测试,看看产品是否能达到他们的要求。而从这些方面考虑则要求我们必须比任何人都要熟悉产品的一切。

三、实习结果

俩个多月的实习使我走进了一个全新的领域,开始了自己真正的工作生涯。实习无所谓结果而言,更确切的说,它是一个开端,一个让自己学会成长的地方,

当然也确实让自己长大了许多。不管是从工作技能上还是从为人处事上,我都收获了很多。

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

其次,在为人处事方面,自己也成熟了许多。虽然不能用语言来描述,但是确实可以从生活中的点点滴滴感觉得到。经历使人成长,只有真正的经历过,才可以让自己真的成熟起来,要想真的出人头地,好的为人是前提。

四、实习总结

软件测试报告范文 篇3

生成合同的阶段中所拥有的相应工作为:签署、商定以及评估商务合同与技术合同,同时还需要明确和评估项目的具体方案。

2项目的立项

项目在立项的主要阶段中具体包含的任务是,对立项理由的确定,并将立项建议有效的提出,同时需要将适当的资源与资金有所提供,力求让立项中的相应建议能够成为正确的项目类型。

3合同的执行

在执行合同的过程中,承担着大型软件项目管理流程的重要部分,能够包含系统的维护、项目的验收、内部的验收、测试的执行以及软件的开发等五方面的工作流程。

4软件的开发

开发软件的阶段包含:单元测试、编码、系统设计、系统分析以及需求调研等流程,具体会在几个层面中开展必要的管理:a.项目计划的拟定在大型的软件项目当中,软件项目的规划方面是对其他相关的规划充分协调的必要条件,是能够控制和执行指导项目的可操作型文件。主要突出了对客户需要的掌握,是进行项目活动的主要条件,同时还是大型软件项目监控和跟踪的凭证。b.过程控制需加强过程控制方面具体包含:配置管理、变更控制以及过程管理。c.开发过程的确定按照项目组别以及大型软件项目的真实状况,创建出可控制、稳定性极高的软件开发模型,同时需要根据此流程开展软件的相应开发。

4.1内部的验收

大型软件项目在对系统测试以及集成测试完成之后,需要开展项目的内部验收流程,具体包含着几大步骤:a.准备文档在准备文档的过程中,大型软件的项目经济需要提交一部分报告,分别为:产品的清单、总结项目开发的报告以及内部的验收计划报告等。财务的主管需要将项目的财务预算报告正确提交。b.内部的评审内部评审主要针对的是所提交的测试结果,以此来将项目的开发总结报告完善达成。c.测试内部验收测试内部验收的方法与内容,和测试系统是完全一致的,可是需要以用户验收的角度开展测试,由于是试运行的必要条件,利用用户验收的角度能够奠定验收的坚实基础。

4.2执行和测试

测试项目的主要目的就是对系统进行充分的检查,检查的关键在于系统能否和任务书规定和项目合同规定的需求相符。项目测试方面包含:系统测试和集成测试,具体会开展安装与反安装测试、可靠性测试、压力测试、安全性测试、用户界面测试以及功能测试等。其中是在模拟的运行状态下进行的测试过程。

4.3项目的验收和试运行

用户的验收和试运行阶段当中具体应该完成的任务是,将全部的工作都被用户有所认可,具体涉及到的工作是:a.事前准备所谓事前的准备就是验收前的准备,大型软件项目经理对产品完整性方面负责检查,包含:中间产品、介质以及文档等方面,从而保证现场实行的效率最大化。同时对现场的软件安装调试也需要有所负责,将调试安装的总结报告相应强化。此外,还要对用户的验收计划负责拟订,同时要获得客户的认可。b.用户的确认用户需要开展系统的试运行以及验收测试流程,开展系统和文档的移交。大型软件的项目经理需要和客户有效的协调,以此来帮助用户能够开展项目的验收,从而让用户的验收报告能够成立。

4.4项目的维护

在维护软件系统方面包括两个方面,其一是纠错性质的维护,因为初期的测试过程不能够将软件系统当中潜在的一些错误暴漏出来,然而对哲学隐含错误的改正和诊断过程,就是纠错性的维护。其二是完善性的维护,在正常使用大型软件的阶段,用户会逐渐的将新型需求提出,想要对用户所提出的需求予以满足,就需要将软件功能的活动增加,这一流程称之为完善性的维护。

5总结

软件测试报告范文 篇4

《报告》显示,截止到2009年9月末,国内企业获得CMM/CMMI(软件能力成熟度模型)评估证书为1300张,世界排名第二;截止到2008年底,国内通过信息服务管理标准体系ISO20000认证的企业31家,约占全球10.1%,居全球第五;截止到2009年,国内通过ISO27001认证的企业数量是180家左右,约占全球总量的3.46%。

此外,《报告》认为,国内已经初步建立了软件过程改进服务体系,目前过程改进领域咨询公司数量已经达到50多家,认证机构(公司)达到20多家,咨询公司从业人员超过300名。

《报告》显示,大部分国内企业参与质量评估和认证的动力主要来源于政策和外部需求,而来自企业自身发展的需求不足,如图1所示。

不过,《报告》也认为,CMMI的实施给企业带来了沉重的负担,企业希望推出更适合本土企业实际应用的软件过程改进模型或过程改进方法。同时,在进行CMMI4或CMMI5评估时,国外评估组织要求软件企业提供大量的基础数据,从信息安全角度来说,企业开展CMMI评估会对国内软件企业信息安全造成一定的威胁。

国内企业通过CMM/CMMI认证急增

SEI(卡内基•梅隆大学软件工程研究所)公布的数据显示,截止到2009年9月末,获得CMM/CMMI评估证书最多的国家是美国,为3440张;我国排名第二,为1300张;印度排名第三,为882张。国内软件企业获得CMM/CMMI评估证书近三年的增长率分别为2006年51.78%,2007年30.28%,2008年47.95%,三年平均增长率43.34%。

截止到2008年底,全球通过ISO20000认证的企业总共307家,其中数量最多的国家是英国,为46家,约占全球总数的14.98%,以下依次是日本、印度、韩国,分别占14.01%、12.38%、11.4%。国内现有通过该认证的企业31家,约占全球10.1%,总数居全球第五。

此外,从全球范围来看,日本通过ISO27001标准认证的企业数量最多,共2997家,约占全球总量的57.57%;国内通过认证的企业数量是180家,约占全球总量的3.46%。

质量管理工具主要选择开源软件和国外软件

《报告》显示,出于成本考虑,开源质量管理工具是软件企业质量管理过程中首要选择的工具软件,其次是国外软件质量管理工具。在已使用配置管理工具的软件企业中,开源产品占有一定份额,从图2可以看出,使用范围最广的为VSS产品,占据了30%的比例。相对于集成化质量管理工具以及配置管理工具,国产BUG管理工具软件占有一定的市场份额,对国外的依赖程度低一些。

软件测试报告范文 篇5

关键词:单元测试;嵌入式软件;RTRT

信息技术的飞速发展带动在嵌入式系统中软件越来越多地取代硬件的功能,研究嵌入式软件测试技术用以保证软件质量成为近年来关注的热点。单元测试作为软件测试过程中的第一阶段,是软件测试的基础,效果会直接影响后期测试;另外,从修复软件缺陷与花费的成本关系考虑,在单元测试阶段修复缺陷将比在后一个阶段发现缺陷节约5~10倍的成本,可见无论从质量还是成本的角度单元测试都是非常关键的。但在实际测试中,仅依靠人工编写函数并统计分析结果的测试方法已不能满足测试准确性和测试效率的要求,要引进自动化的测试工具。RTRT是一个跨平台组件和运行时分析测试工具,支持测试的各个阶段,其单元测试自动生成测试用例模板,自动生成测试桩程序,自动运行测试程序,自动生成测试报告。

一、单元测试基本理论

(一)单元测试定义

单元测试是对每个最小的软件模块进行的正确性检验的测试,在于发现各模块内部可能存在的各种差错。包含模块接口测试、局部数据结构测试、路径测试、错误处理测试和边界测试,依据详细设计说明书和源程序清单,从程序的内部结构出发设计测试用例。主要采用白盒测试的测试用例,辅之以黑盒测试,使之对任何合理和不合理的输入,都能鉴别和响应。

(二)单元测试环境

单元是软件的基本组成模块,但本身不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,必须为每个单元测试开发驱动模块和桩模块。驱动模块相当于被测模块的主程序,它接收测试数据,把这些数据传送给被测模块,然后输出实测结果。桩模块是指用来替代被测模块调用的子模块。所以被测模块、与它相关的驱动模块及桩模块,同时包括测试用例是共同构成一个单元测试测试环境必需的要素。基于交叉开发环境,嵌入式软件单元测试环境分为基于宿主机和目标机环境两种。宿主机中单元测试与通用软件测试相同。目标机中的单元测试被测模块运行在目标机中,所有驱动模块和被测模块的数据传递都需要网线或者串口线完成,测试工具还要将测试结果再传送到宿主机中。单元测试都可以在宿主机平成,对特别指定在目标机中进行的测试必须在目标机完成。

(三)单元测试的覆盖评测

单元测试中主要的评价方法是覆盖评测,指所测试的源代码占代码总数的百分比。为了保证软件代码都被执行到,防止从不执行到的代码存在潜在的缺陷,导致产品失效。主要包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖等。语句覆盖指设计较少的测试用例,使被测程序中每个语句至少执行一次;判定覆盖,即程序中每个判定的每个可能的结果都应该至少执行一次;条件覆盖,要求程序中每个判定的条件的所有可能值至少执行一次。由上述内容可知,一个完整的单元测试若完全利用人工来执行,则需要开发相应的测试驱动和桩程序,根据需求设计不同测试用例或大量测试用例组合,在宿主机和目标机环境下运行测试程序,判断测试用例是否正确,是否达到需要的测试覆盖率,最后编写测试报告。在代码修改的情况下,还要进行回归测试。测试过程比较繁琐且不受控,这导致很多程序员迫于时间和成本压力,逃避单元测试,结果本应单元测试解决的软件缺陷在后续的测试中较难查找和定位,花费更多的时间和成本来修复问题。自动化测试工具解决了由传统手工测试带来的困扰,典型的嵌入式软件测试工具包括CodeTest、Testbed和RTRT,即Rational Test RealTime的首字母缩写,具有强大的测试分析功能。

二、IBM RTRT嵌入式软件单元测试

(一)RTRT简介

RTRT是IBM Ratioanl提供的嵌入式软件代码级自动化测试工具集,成功地提供了自动化的、可重复的、可追踪判定的、标准化的测试,对提高嵌入式软件可靠性和开发测试速度起着巨大的帮助作用。所具有的突出特性如下:

1.支持广泛的测试功能,覆盖测试的各个阶段,包括静态度量、代码规则检查、单元测试、内存分析、覆盖率分析、代码运行时跟踪、性能分析和基于消息的系统测试。

2.为单一的测试环境中的宿主机和目标机进行自动化的单元测试、运行时分析。

3.自动创建和部署单元的测试桩模块和测试驱动程序。

4.绘制内存和性能曲线并对运行时追踪进行可视化显示。

5.支持代码的静态分析和基于MISRA标准的代码规则检查。

6.直接在目标机上进行测试和分析,支持所有从8位微芯片到64位RTOS。

(二)RTRT单元测试工作原理分析

RTRT单元测试工具支持C、C++、Jave和Ada语言编写的代码,提供全自动化的解决方案,大幅度提高了测试效率。分析RTRT的单元测试工作原理如下图1(以。c文件为例)。

图1显示了RTRT单元测试时测试程序经编译、链接、运行到测试报告产生的整个过程。开发人员在自动生成的测试脚本的编辑环境中根据需求开发测试用例,设计输入和预期输出。在模拟环境或目标机环境下自动运行测试程序,测试报告产生器自动生成测试报告,展示通过或失败的测试用例和代码覆盖率分析报告,发现错误可直接修改,自动进行回归测试。RTRT的变量测试包括所有的全局变量、函数间传递参数和函数返回值。RTRT基于TDP的目标机部署技术,通过对该技术进行定制可以支持全面的嵌入式目标系统,使RTRT可以同时对宿主机和目标机进行测试和调试,并对两者进行有效协调。RTRT单元测试阶段支持绝大多数项目要求的语句覆盖率、决策覆盖率、MC/DC覆盖率。

(三)基于RTRT的单元测试步骤设计

通过以上分析结合几个项目单元测试之后,我们总结了使用RTRT进行单元测试的基本步骤如下图2所示。

三、RTRT单元测试实例

以电器嵌入式软件豆浆机代码为例。目前电器产品由传统机械式控制向嵌入式的智能化控制转型,电器产品的安全也不仅限于传统的电气、电磁、机械及环境等方面,软件也成为需要检测的重点。选取豆浆机Relay单元,主要功能为继电器控制。部分代码如下:

void Relay(void)

{if(irq_r)//处理继电器动作请求

{if(lr_on)//转换继电器开

{

if(!f_lr_on)

{

f_lr_on=1;

hms3=2;//延时200ms

t2ms=0;

}

else

{

if(!hms3)//转换继电器确认打开

…………….

}

RTRT自动生成relay函数的测试例用设计模板,包含函数中出现的每个全局变量,编写上述if语句为真的测试用例,只需要编写测试输入与预期输出。如下:

VAR irq_r,init = 1,ev=init

VAR lr_on,init = 1,ev=init

VAR f_lr_on,,init=0,ev=1

VAR hms3,init=2,ev=init

VAR 2ms,init=0,ev=init

预期值与实际测试运行结果比较,生成测试报告会自动判断测试用例是否通过,可根据代码路径的覆盖要求,在测试模板中设计不同测试用例,达到需要的覆盖率,并在测试覆盖率报告中查看覆盖率百分比。为获得可靠的代码质量保证,继续根据未执行到的代码情况,编写合适的测试用例,使代码覆盖率得以提高。

四、总结

本文首先分析了嵌入式软件单元测试的基本理论,测试过程复杂,工作量较大,所以在实际的测试中,完全依靠人力确保单元测试有效实施存在困难,自动化的测试工具RTRT提供了全套自动的解决方案,自动生成测试脚本、测试程序、桩,减少了测试工作量,能自动进行回归测试,并且自动生成测试报告,以图形的形式使测试结果一目了然。不仅提高了测试效率,而且保证了测试质量。强大的TDP定制使RTRT可以支持大多数嵌入式产品的软件测试,在嵌入式领域已逐渐被广泛应用。

参考文献:

[1]蔡建平。嵌入式软件测试实用技术[M].北京:清华大学出版社,2010.

[2]姜龙,王冬星。使用IBM Rational Test RealTime进行嵌入式软件测试[J].电脑学习,2010,32(3):135-136.

[3]徐润德,陈亚,赵慕奇。基于LDRA Testbed的软件单元测试[J].海军航空工程学院学报,2011,26(3):356-360.

[4]/software/awdtools/realtime.

[5]马可。嵌入式车载电子系统软件测试方法的研究与应用[D].重庆:重庆大学,2008.