首页 优秀范文 软件测试论文

软件测试论文赏析八篇

时间:2023-03-20 16:15:19

软件测试论文

软件测试论文第1篇

该测试系统采用一台工控机作为测试控制主机,工控机具有网络端口、GPIB板卡、RS485串口卡以及继电器板卡。按照测试工作流程,依次与GPIB测量仪器、网络示波器、串口测试设备等进行通信,分时控制这些设备进行数据采集和测试,然后从这些不同总线设备获得测试数据后进行数据处理和分析达到测试目的,其硬件主要结构如图1所示。

2线测试设备软件结构

软件采用C/C++语言编程,软件总体结构。软件主要功能包括:设备自检、设备参数设置、自动测试控制、波形显示及数据处理、参数回放及打印等功能。设备自检部分主要完成继电器板卡及通道自检、GPIB板卡端口及设备通信自检、与网络示波器通信自检以及串口端口自检等功能;设备参数配置主要完成测试记录(测试设备编号、测试项目、操作人、测试时间等项目)填写、按照不同试验项目选择不同的测试项目、预先设定测试项目阈值用于作合格判据;自动测试控制程序部分采用了多线程设计技术,将测试流程里的测试项目作为串行处理测试节点,按照测试流程分时完成各测试节点的通信测试;波形显示及数据处理部分将读回的示波器波形进行显示,将读回的数据进行处理获得最大值、最小值和均值,将每次测试记录填写到由CBCGP⁃GridCtrl派生的Grid控件表格,最后输出数据到报表中;参数回放部分与Grid控件联系紧密,参数回读后数据显示在Grid控件表格,通过点选Grid控件中的每次测试记录,将对应的每次测试存储记录包括波形和数据进行回放,并能通过报表进行参数打印。

3线测试设备关键编程技术

3.1读GPIB设备编程技术

通过GPIB总线接口设备可以对快速测量信号或高压信号进行测试,这里采用数字万用表3410A通过GPIB总线接口设备完成测量任务,测试系统软件首先申明GPIB端口地址等属性,打开相应端口地址后,通过自检GPIB⁃IEEE488.2通信接口查询找到对应的GPIB设备。在自动测试流程线程,当程序运行到GPIB参数读取测试节点时,测试系统软件将测试数据从GPIB测试设备读回,通过Windows窗口消息机制返回到窗口界面显示测量数值。

3.2读网络示波器编程技术

通过示波器设备可以直接对测量信号进行精细化测量,可以达到纳秒级的测量精度,测试设备采用泰克DPO4054B示波器进行测量。软件设计时在头文件中包括了Visa.h头文件,在库链接中链接了Visa32.lib库文件,同时结合AgilentIOlibary接口库软件,运用Visa编程技术,查找到TCP网络示波器后打开示波器进行通信。软件启动后通过自检网络查询找到对应的示波器设备,在自动测试流程线程,当程序运行到示波器参数读取测试节点时,测试系统软件将测试数据从示波器读回,随后运用一定的算法处理数据,可以获得示波器无法直接测量的数据值。

3.3RS485

总线串口编程技术软件串口编程技术比较成熟,通常设计方法为应用程序开启即打开所有串口,在应用程序退出时关闭所有串口,不推荐在应用程序内不停打开或关闭串口,这样存在与硬件兼容性的风险,也不容易排除故障。本应用程序在设备自检打开端口后,在自动测试流程线程,当程序运行到串口设备参数读取测试节点时,通过读/写串口端口完成数据读/写。

3.4界面设计编程技术采用

BCGControlBar界面库设计软件总体界面,软件显示采用OutLook模式,左侧一列显示主窗口操作按钮,按钮操作允许对设备进行自检;在测试界面和报表显示界面进行切换;进行参数设置及参数回读操作。软件居中采用ProEssentials绘图软件控件设计波形曲线窗口,既可用于测量时显示波形曲线,又可在参数回读时显示波形曲线。软件右侧采用基于CBCGPGridCtrl类派生基类生成的参数报表,可以用于显示每次实验数据。每做完一次试验则在报表显示一列数据,记录一次试验波形数据,方便使用者在一个时间段观察试验记录。

4软件可靠性设计

测试系统软件设计中采用了一定的可靠性设计方法保证测试设备的软件健壮性,首先在软件启动的自检阶段确保与所有端口设备连接正常并通信正常,确保后续自动测试流程前软硬件通信正确无误;软件采用Windows消息机制,避免线程内对Windows窗体进行操作;对返回的波形数据软件采用一定点数的平滑滤波处理技术,防止读回的数据异常影响软件边界。

5结论

软件测试论文第2篇

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

作者简介:赵晓君(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所示。

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

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

五、结束语

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

参考文献:

软件测试论文第3篇

关键词 软件测试 实践教学 测试工具

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

1 软件测试课程教学现状及分析

1.1 软件测试课程教学现状介绍

软件测试是软件工程专业本科生的一门重要的必修课程。在本校的课程设置中为56学时,其中理论教学为32学时,上机实践为24学时,由于软件测试的各个环节分别对应于软件工程的相应环节,使得软件测试课程的内容庞杂,而其实践环节也相应地具有内容杂,任务重的特点。

软件测试的教学目标是通过理论及实践教学,让本科生熟悉软件测试的工作流程、常用软件测试方法及常用工具的使用及软件测试过程管理。

教学过程中的主要参考书目为机械工业出版社出版,原著为Paul C.Jorgensen,韩柯等译的《软件测试(原书第2版)》,原书的英文名为《Software Testing A Craftsman''s Approach(Second Edition》。授课基本流程基本也是依据以上教材的流程,首先介绍软件测试的概论,介绍什么是软件测试,软件测试的意义、软件测试的基本流程和基本概念等内容。接着介绍贯穿全书的软件测试需要的示例以及软件测试所需要的基本理论知识,包括测试人员使用的离散数学及图论相关知识。介绍完以上知识以后,按照软件测试流程依次介绍单元测试、集成测试和系统测试的测试用例开发方法和技术。其中在单元测试部分分别介绍单元测试部分的黑盒测试和白盒测试内容,黑盒测试部分包括边界值测试、等价类测试和基于决策表的测试,在白盒测试部分介绍路径测试、数据流测试等结构性测试方法的测试用例开发技术。介绍完以上内容以后,又介绍了面向对象的软件测试方法。

课程的上机实践基本上也是配合上课的流程进行安排,在相应的知识点介绍以后,安排学生按照指定的技术开发测试用例以进行测试活动,附带掌握相应的软件测试的各种管理和自动化工具。

1.2 软件测试课程教学现状分析

通过以上教学流程的描述结合以往毕业生工作以后反馈,可以总结其教学过程的特点为:通过系统的学习,同学们基本上能掌握软件测试用例开发的各种技术要点,对所有的知识点都有所触及,通过学习同学们基本上能够掌握各种实用的软件测试用例的开发方法,也能将各种方法应用于实际软件测试中。

而在实际软件测试实践中,软件测试工作具有以下特点:

首先,依据测试工作越早开展越有利的原则,软件测试一般从开发的初期就开始介入。例如在开发初期,需要编制测试计划进行时间人员和物力上的计划;在需求分析阶段需要进行软件测试的系统测试用例的开发;在设计阶段需要进行集成测试用例的开发,随着设计粒度越来越细,相应的路径及数据流集成测试用例也向下扩展;到达软件编码阶段,主要依据相应白盒技术进行单元测试用例的开发。其次,现代化的测试管理技术需要利用软件全面管理软件测试过程中的环节,包括测试计划的建立及管理、测试用例的管理、测试过程评价管理等。最后,因为人力资源成本的提高及各种技术限制,各种自动化的软件用例的运行软件的使用越来越多等。

通过比较教学过程及实际软件测试的开发过程很容易发现以往教学过程具有以下限制:

首先,没有将软件测试作为软件开发的有机部分进行介绍,而是将软件测试过程从软件开发过程中割裂开来。知识点没有按照实际应用过程展开,容易造成同学们掌握各个知识点,却无法形成知识实际应用能力。其次,缺少相应的测试管理软件的介绍和实践,影响了同学们对软件测试管理的重要性的认识。最后,教学课程缺乏同学们比较感兴趣的各种软件测试自动化工具的介绍。降低了同学们的学习兴趣。

2 软件测试课程教学改革方法探讨

通过上文的现状介绍和分析,针对以上教学方法进行改造,同时本着扬长避短的原则,在中国石油大学(华东)软件工程专业2009级软件测试课程教学过程中进行了教学改革。

教学改革的契机为本校软件工程专业和IBM公司开展教材合作编写项目,软件测试作为软件开发的重要部分获得了空前的发展良机。

具体的有利因素可以概括为:首先,学校向IBM公司购买JAZZ开发平台及相应的专业软件测试管理软件。通过和业界领先的最新的软件测试管理软件接触,了解了最新的软件测试管理理念;其次,通过IBM公司对教工的业务培训,了解了IBM公司的各种软件测试工具的使用情况;最后,通过本文作者共同努力,将平时用于开发的实际应用软件例如体育公共课管理软件等进行整合,用于软件测试用例的案例教学。

有了以上基础前提以后,结合以上有利条件,教改的主要做法如下:首先进行案例化教学,通过自己开发的软件这样生动的实例向同学们介绍软件开发过程中的软件测试的重要性和各种原则,避免了介绍知识的空洞和乏味,提高了同学们的学习兴趣;其次,在案例化教学的指导思想下,重新安排各个教学点的教学顺序,主要脉络为依照软件开发的实际流程,首先介绍系统用例开发技术,然后介绍继承测试用例开发,到最后介绍单元测试用例开发方法。在运行测试用例的过程中,充分结合IBM公司提供的各种软件测试用例运行工具,使得学生能够活学活用。最后,充分利用IBM的软件平台,介绍业界领先的软件管理工具的使用,使得学生学习兴趣得到极大提高。

通过以上的教学改革,理顺了教学和实践的关系,使得教学过程紧密联系实际软件的开发过程,同学们对软件测试课程的理解得到了加深。

3 结论及下一步工作

通过上文对教学现状的总结,以及针对教学现状的利弊进行分析,本文充分利用外部优势大胆进行了软件测试的教学改革,取得了预期的改革目标。同时也注意到改革工作才刚刚开始,还有很多需要完善的地方。接下来的工作主要包括:进一步丰富用于软件测试教学的案例及密切关注业界测试技术的最新发展以用于教学。总之,本文的教改工作达到了预期的目标,使得同学们对于软件测试的理解较之以前更加条理化、系统化和实用化。

参考文献

[1] 匡青.高职院校软件测试课程教学改革探索[J].现代商贸工业,2010.3.

软件测试论文第4篇

关键词:测试技术 动车组 软件生命周期

中图分类号:U270.16 文献标识码:A 文章编号:1672-3791(2016)08(a)-0025-02

随着动车组的广泛应用,动车组各系统软件内部逻辑错综复杂,运行环境动态变化,不同的软件失效机理具有不同的表现形式。据统计分析,软件错误的分布大致为:软件需求分析阶段占56%,软件设计阶段占27%,编码阶段占7%,其他占10%。软件错误在软件开发阶段的早期错误较多,软件错误贯穿了整个软件生命周期。软件测试是软件工程中的一个重要阶段,在软件投入运行前,对软件需求分析、架构设计和编码各阶段产品的最终验证,是为了保证软件开发产品的正确性、可靠性和一致性,因此软件测试技术日益受到重视[1]。

1 动车组软件测试概述

动车组软件由牵引系统、制动系统、网络控制系统、辅助系统、门控系统、空调系统、通信系统、信号系统组成,其中网络控制系统由中央控制单元软件,人机接口单元软件,网关等软件组成。由于动车组软件的应用场合和领域多种多样,要求的程度也不尽相同、不能一概而论,故该文仅针对软件测试过程,结合动车组软件测试过程的要求和特点探讨软件测试技术。

2 动车组软件测试技术原理

2.1 软件测试技术分类

软件测试可通过下面几种不同的方法划分类别。

(1)从被测试软件方面讲,讲软件测试被分为静态测试与动态测试。

(2)从软件结构与算法方面讲,讲软件测试被分为白盒测试与黑盒测试。

(3)从软件测试不同阶段方面讲,讲软件测试被分为单元测试、集成测试、系统测试、验收测试和回归测试。

2.2 白盒测试

白盒测试又称逻辑驱动测试,其原理是把程序看成装在一个透明的盒子里,程序的结构和处理过程完全可见,依据程序的内部逻辑测试软件程序,通过分析程序内部的逻辑与程序执行路线来设计测试用例的测试方法,检查软件程序中的每条通路是否都能按预定动作正确工作。

白盒测试方法包括代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法等。

2.3 黑盒测试

黑盒测试又称数据驱动测试,其原理是把软件程序看成一个黑盒子,不考虑程序的内在结构和处理方法,主要针对软件界面、软件功能、外部数据库访问以及软件初始化等方面进行的测试。

黑盒测试方法包括等价类划分、边界值分析、因果图、错误推测等。

2.4 内存泄漏测试

内存泄漏是一种典型的程序缺陷,它可导致应用程序不断消耗系统内存,使软件程序运行响应变慢,一些功能无法实现,甚至导致整个系统瘫痪等问题。在使用C/C++语言编写的程序中,内存泄漏是一个极其普遍的问题,在动车组嵌入式系统应用软件中,内存泄漏将很快导致系统瘫痪。通过内存泄漏测试释放不需要再使用的内存空间,检查“内存越界”现象是否存在。

3 软件测试技术在动车组上的应用

软件测试是软件质量保证的重要手段,贯穿整个软件生命周期的每个阶段。动车组网络控制系统应用软件测试过程采用V模型,依据不同的测试阶段分为单元测试、集成测试、系统测试、验收测试和回归测试。下面将以动车组网络控制系统为例阐述软件测试技术在动车组上的应用。

3.1 单元测试

单元测试又称模块测试,是针对软件设计的最小单位程序模块进行的正确性检验,其目的是验证每个程序单元能否正确实现详细设计规范的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。单元测试从程序内部结构出发来设计测试用例,而且可以多个模块或单元并行进行独立的测试。单元测试采用白盒测试方法。

动车组单元测试主要内容有如下几项。

(1)程序语法检查。

(2)程序逻辑检查。

(3)模块接口测试。

(4)路径测试。

(5)逻辑覆盖法。

3.2 集成测试

集成测试是按设计要求把通过单元测试的各个模块或单元组装在一起之后,进行集成测试。验证组成软件系统的各模块的接口和交互作用。

3.3 系统测试

系统测试是测试被开发软件的功能要求和非功能要求,在真实环境下对系统的正确性和完整性进行测试,验证系统各部分是否都能正常工作并完成任务。系统测试采用黑盒测试技术。动车组软件系统测试采用如下测试方法。

(1)等价类划分。

(2)边界值分析。

(3)因果图。

(4)错误推测。

3.4 验收测试

验收测试是验证系统是否满足合同规定的要求,通过验收测试,可以进一步发现软件中的错误,测试被开发软件的易用性、兼容性、安全性和文档资料审查验收。验收测试主要采用黑盒测试方法。

3.5 回归测试

回归测试是指软件系统被修改后再次进行的测试,如软件新增了某些功能后,可能会影响软件原来的功能和结构,使得以往可以正常工作的功能失效,因此为了保证对软件所做的修改没有引入新的错误而再次进行的测试。

3.6 软件测试覆盖率

软件测试覆盖率是用来度量软件测试的完整性程度,包括基于需求的测试覆盖和基于代码的测试覆盖。

3.6.1 基于需求的测试覆盖

需求测试覆盖率=Ts/RfT%

其中,Ts为已实施测试用例覆盖的需求数;RfT为测试需求总数。

3.6.2 基于代码的测试覆盖

代码测试覆盖率=Te/Tlic%

其中,Te为用代码、分支、路径、数据状态判定点表示的已执行代码数;Tlic为代码总数。

4 结语

该文论述了软件测试技术原理,以动车组网络控制系统应用软件为测试样例,全面阐述了软件全生命周期各阶段软件测试活动,动车组软件测试不同阶段采用多种测试技术,论证了软件测试技术是动车组软件产品质量的重要保障,可提高动车组软件的安全性、可靠性,对开展动车组软件测试工作进行了有益的探索。

参考文献

[1] 熊应高.软件测试技术[M].北京:北京航空航天大学出版社, 2009.

[2] 陈明.软件测试[M].北京:机械工业出版社,2004.

软件测试论文第5篇

摘要:本文从“软件质量保证和测试”课程建设的重要性出发,从师资队伍的建设、教学内容的选择、教学方式的改革、实验大纲的设计、立体化教材建设和考核体系设计等方面详细介绍了浙江大学软件学院对于软件质量保证与测试课程的课程建设情况。

关键词:软件测试;软件质量;课程建设

中图分类号:G642

文献标识码:B

1 引言

随着信息技术的飞速发展,软件产品应用于社会的各个领域,软件质量的保证是一个人们普遍关注的问题。软件开发者想要高质量的软件产品,用户更希望能有稳定、方便、有效、经济的高质量软件产品。提高软件质量的重要途径主要有过程控制和软件测试。高校对软件质量保证和软件测试人员的培养担负着主要责任。对于软件学院来说,一个很重要的挑战是如何解决计算机专业特别是软件工程专业理论与实践严重脱节的问题。

本文分别就师资队伍建设、教学内容的选择、教学方式改革、实验大纲的设计、立体化教材建设、考核体系的设计等方面来阐述软件质量保证与测试课程的建设。我们的目标是培养应用型、复合型、国际化的高级软件人才。

2 师资队伍的建设

浙江大学软件学院对于师资队伍建设的思路是产学研一体化的教学框架体系。“软件质量保证与测试”课程是一门理论与实践并重的课程,既需要丰富的实践项目经验又需要深入的理论知识。按照以上思路,我们的师资队伍包括三个组成部分:外籍教师、本校教师、企业技术主管。其中,企业技术主管主要是来自道富公司的质量保证、测试经理。这门课的分工大致是外籍教师负责理论教学;企业技术主管负责学生的课程实践和项目培训;本校教师负责整个课程建设、联系以及对学生的指导,特别是指导英语学习有一定难度的学生。

另外,学院对于教师的再学习与培训也提供很大的支持,如支持教师参加国家软件测试中心的相关技术培训、国内外关于软件质量保证与测试课程学术交流等。

3 教学内容及其改革

“软件质量保证与测试”是为软件学院及相关专业的本科生开设的专业基础课。该课程按软件质量保证和测试的原理、软件测试技术和实践三部分组织内容,包括软件工程概述,软件测试和质量保证的基本概念、思想和方法,各种测试的方法和技巧,软件测试用例的设计;如何组织和管理软件测试项目、如何进行软件质量分析,最终建立全面的质量保证体系。通过本课程的学习,学生应基本上了解并掌握有效的测试策略、方法和技术,测试计划和测试用例的设计,测试自动化的应用,测试团队的建立和测试项目的管理,更清楚、准确地报告测试缺陷,对软件产品质量的正确评估以及软件测试和质量保证的关系和区别。

我们现行的教学大纲由理论学习和课程实践两部分构成。浙江大学将每年分成4个学期,每学期8周上课时间,而这门课的时间为一学期,总学时为48,按照2比1的学时来配置理论与实践部分,即课堂时间为32学时和上机时间为16学时。

目前教学内容安排如下:

4 教学方式改革

教学方式的改革主要遵循以下两条原则进行:

(1) 以案例教学为主线,通过丰富的实际案例引导学生对具体的质量保证概念、测试方法等有深刻的认识,同时也注重研讨式、启发式教学,鼓励学生尝试自己寻找资料解决问题。

(2) 加强综合性实验项目的训练,全面锻炼学生的团队组建能力、团队沟通合作能力、测试计划编写能力、测试用例设计能力、测试能力、组织文档能力。

5实验大纲的设计

本课程非常重视实践教学。我们学院特别聘请道富公司质量保证、测试经理来培训学生的实践动手能力。另外,除了布置适量的白盒和黑盒测试外,还专门布置设计了2~3套完备的全英文综合性实验设计、需求分析文档、各种支持文档、评分方法和政策。对于实验大纲的设计,我们还强调以下几个方面:

(1) 系统、综合性。以实际项目为背景,贯穿多个知识点,锻炼学生综合运用所学知识解决实际问题的能力。通过实践参与,学生可掌握质量保证的概念和过程,测试计划的制定,测试用例的设计、测试用例的执行、测试报告的书写、测试Bug的分析和描述。

(2) 团队合作。实验采用分组的形式完成,每组由5~7名成员组成,其中一人为组长。组长负责项目进展、分工协作、测试计划的制定等工作,其他组员分别就相关模块进行各自的测试策略、测试用例设计以及完成测试报告等。然后通过角色交换,充分发挥学生的沟通能力。

(3) 鼓励创新。鼓励学生发挥想象力,对各种测试方法进行尝试,在最后报告中要求写出具体的思路和分析结果。

6立体化教材建设

完善多媒体教材和教学资源(包括电子书籍、技术文档、实验平台、在线交流等),进一步加强网络资源建设,特别是教学素材库的建设。现有课程主页上的内容主要有:课程信息,包括教师队伍、课程描述、课程政策、详细的教学大纲、教学日历等;每节课的详细PPT课件;各类作业、解答以及往年的作业、试卷资料等;课程实践项目(project)的各种信息、支持文档,实验平台的链接等;网络资料库,包括电子教材、文档的收集以及与课程紧密相关的各种资料、网站等;在线留言版,与学生互动的模块,学生可完全匿名发表任何意见、建议和提问答疑,今后可进一步就该课程中学生容易疑惑的地方建立FAQ。

现在我们采用外教选编的电子课件、讲义作为主要教材并推荐相关英语教材。课程实践项目我们采用道富公司的实际项目对学生进行培训。我们下一步的目标是:

(1) 编写一本中文实验指导教材。

(2) 编写一本双语教学教材。

7考核体系的设计

软件质量保证与预测课程的考核将一改传统的由一次期末考试成绩决定学生的情况,这是因为该课程是一门理论与实践紧密结合的课程。对于考核体系的设计我们的具体思路如下:

(1) 改革课程考核,采取多因素评定学生课程成绩,而不是仅凭一次考试评定学生能力,从而调动学生学习热情,促进学生研究性学习能力的发展。学生的最终成绩由课程实践项目(40%)和期末考试(60%)组成。

(2) 强调评分的客观、公平和透明性。开学初就给定课程考核的政策和每个课程项目的详细评分标准。

(3) 学生参与评分。课程实践项目、尤其是分组项目,教师难以全面掌握每个学生的表现,但可以给整个团队评分,具体每个成员的分数则由学生参与自评。

参考文献

[1] 古乐,史九林. 软件测试技术概论[M]. 北京:清华大学出版社,2006.

[2] 古乐,史九林. 软件测试案例与实践教程[M]. 北京:清华大学出版社,2007.

[3] 杨根兴,蔡立志,陈昊鹏,蒋建伟. 软件质量保证:测试与评价[M]. 北京:清华大学出版社,2007.

软件测试论文第6篇

关键词:计算机检测方法;软件安全;计算机安全

中图分类号:TP309.2文献标识码:A文章编号:1007-9599 (2012) 04-0000-02

计算机软件安全检测主要是为了避免由于软件应用问题所产生的潜在的安全风险。近年来针对计算机的软件安全检测,越来越受到社会各界的重视,关于计算机软件安全的检测方法,也在不断的讨论与研究中被大家认识。本文主要针对计算机软件的安全检测方法进行了相关论述,以期更好的预防计算机软件安全问题。

一、计算机软件安全测试的重要性分析

计算机软件的安全检测是在计算机软件开发过程中的十分重要的环节,计算机软件检测的主要目标是为了发现软件中可能存在的一些故障问题,从而可以有效的预防计算机存在的潜在风险。计算机的安全测试是保障计算机程序安全的有效手段。从目前计算机安全测试的方法来看,一般是分为静态测试和动态测试。

就计算机软件安全测试来讲,计算机软件安全检测是为了检测计算机是否能够安全运行计算机软件预定所预设的程序。软件测试的过程一般包括功能测试和渗透测试以及验证过程这三个主要程序。计算机软件安全测试的安全性和一般意义上所说的软件缺陷存在着很大区别,软件安全检测所侧重的是软件应该做什么,而不是可以做什么。在进行计算机软件安全检测时,一般分为计算机安全检测和计算机安全漏洞检测。计算机安全功能的测试是检测计算机的软件安全功能和安全功能之间的步调是否一致。软件的安全功能测试所涉及的内容非常的广泛,具体包括了机密性和授权,同时还包括访问控制及安全管理等等。相比之下计算机软件的安全漏洞就非常不同,主要是针对软件中可能存在的一些缺陷进行测试,如果不进行相关测试。则该缺陷很有可能会导致软件日常的应用中出现故障,所以,进行计算机安全测试是十分有必要的。

二、计算机软件安全检测的注意事项

计算机的软件安全测试是一个动态的测试过程,在实际操作过程中需要注意以下事项。

首先要针对所检测的计算机软件进行深入的了解,了解计算性软件的相关特性。经过综合分析后,进行选择想对应的检测技术手段,本着从实际出发的角度制定出安全合理的检测方案,方案必须经济合理且保证检测的效果。在人员配置方面,要注意检测人员专业的多源化。在进行计算机的软件安全检测的时候,不仅仅是要配备相应的软件安全分析人员,同时还需要与软件设计相关的总体设计人员,只有多方面全力配合,才能分析解决软件测试中的多种疑难问题。

其次在进行计算软件安全的相关检测时,对系统级以及需求级和代码级的分析是必须进行的。当软件规模较大的时候,还要对软件的结构设计方面进行必要的分析。在进行分析的过程中要选择实际工作中较为合理的分析方法,一般采用仿真环境和相应的分析工具来进行相关的检测工作。计算机检测是一个系统的过程,单一的方法有时候往往难以独立完成,需要多方面技术人才的通力配合才能准确无误的完成检测。

三、计算机软件安全检测方法论述

(一)计算机软件测试的步骤

对于计算机软件的程序来讲,规模较大的软件系统一般是由是由一些子系统共同组成的,而不同的一些子系统又由若干个小的模块构成。计算机软件测试一般的步骤是,先进行一定的单元测试,就是通常所说的模块测试,模块测试一般是依据软件设计中的最小单位所进行的测试。模块测试的目标是为了发现系统模块可能存在的一些缺陷。在模块测试之后,将所有的模块按照一定的程序进行设计并组装成系统。并且需要对相关的体系进行一定的安全测试。在此基础之上,进一步进行有效性的测试,有效性测试是十分必要的步骤。有效性测试的主要目的是对软件的性能和功能进行检查,检测是否与用户的需求相吻合。最后的步骤是进行系统测试,就是通过有效性的软件将计算机支持软件、数据已经硬件等结合起来进行测试。

(二)计算机软件安全检测的方法论述

1.形式化与模型的安全测试。对于安全检测方法来讲,首先是要确立软件的数学模型,运用形式规格说明语言的支持来进行形式化的规格说明。一般经常用到的形式规格和语言包括了基于模型语言、以及基于有限状态的语言和基于行为的语言。基于模型的安全的功能测试方法该方法,是对计算机的软件行为和结构,通过建模的方式生成测试的模型。然后以测试模型作为基础进而生成检测,从而驱动软件的计算机安全检测。一般较为常用的模型安全功能测试的方法主要有马尔可夫链。

2.语法测试与故障注入的安全测试。语法测试是对被检测的软件的功能接口的语法生成的软件测试输入的方法。这种方法可以测试软件对于不同类型输入的反应情况。语法测试进行测试的程序是对软件接口的语言的识别以及定义语言的语法。故障注入的安全性测试是利用故障分析树和故障树的最小割集来进行检测。故障分析树分析法使用系统最不应该出现的时间作为顶事件,以此来寻找故障可能发生的中间事件和底事件,故障注入法可以提高检测的自动化程度,是比较充分的计算机安全检测方法。

3.模糊测试与基于属性的测试。模糊测试,目前使用较多的是基于白盒的模糊测试方法,这种方法是对传统意义上的模糊测试方法的一种进步。这种检测方法比较有效的结合了传统的模糊测试与动态的测试方法。而基于属性的测试的测试方法是先确定软件的安全编程规则,然后将确定的规则编码做为安全属性来验证系统是不是遵守这些程序。这种检测方法的主要优势在于能够比较有效的分析安全漏洞的扩展性和交互性等。

四、结束语

计算机软件的安全测试对于计算机的正常使用有着非常重要的意义,本文主要介绍了计算机软件测试的几种比较常见的方法,通过分析计算机软件测试的重要意义,引起对计算机软件安全的重视,探究出更科学合理的计算机软件测试方法,以保证计算机软件的安全。

参考文献:

[1]王维静,王树明,陈震,申春,彭秀增. 软件安全的多指标综合评测[J].计算机工程与应用,2006,(11)

[2]William B Bierce,Michael Harold. New Us patent gwildelines offer hope to software developers in era of diminishing copyright protection .Tolley‘s computer law And Practise,1995,Vol.11,Vol.11 (No.4)

软件测试论文第7篇

关键词:软件测试;案例教学;应用型人才培养

随着信息产业的快速发展,软件产品的应用越来越广泛,对软件产品的质量自然提出了越来越高的要求,软件测试则是保证软件产品质量的重要手段[1]。国外软件厂商早就极为重视软件测试,目前欧美等软件产业发达国家的软件企业里,软件测试和开发人员的比例达到1∶1,很多企业测试人员的规模已超过了开发人员。而国内,在被调查企业中,测试人员与开发人员比例为1∶5的企业高达36.4%,比例为1∶2的企业占31.8%,比例为1∶1及以上的企业仅占31.7%[2]。近几年专业性的软件测试机构和组织迅速发展,随之带来了专业软件测试人才的旺盛需求,软件测试人才的培养正成为新的热点。

1软件测试课程教学现状

目前软件测试课程的理论与实践脱节[3],具体表现在:

1)课程设置不合理:目前高校软件测试的课程设置是依据课程分类制定的,按照先理论讲解,后工具应用的设置方式,这种课程设置方式很难使学生对软件测试有一个系统的理解,课程结束后学生不知怎样将所学知识应用到测试项目中[4]。

2)教学过程不合理:目前高校软件测试课程是以理论教学为主,实验教学为辅的教学方式。课堂上教师讲授一个知识点,学生在实验室练习验证此知识点的应用。这种教学方式学生虽然能学到知识点的内容,但却不知道如何将这些知识点应用到实际项目中。由于软件测试课程存在的上述问题,使得培养出来的学生无法满足企业对软件测试人员的实际需求,学生在应聘软件测试相关职位时也没有明显的优势,最终导致整体教学效果不佳,与社会需求脱节。鉴于以上讨论,通过对现有课程的分析,建议采用以测试案例为中心的案例教学法。案例教学法比传统的以教师为主导的教学法,更有利于提高学生分析问题和解决问题的能力,促进学生学会学习以及沟通合作[5]。在教学的过程中,以可操作的软件测试案例为中心,让学生能在学习中体会实际的测试过程。目前已有部分高校开始尝试采用案例教学法,但由于缺乏内容完整的案例资源,导致教学效果不佳[2]。此外,市场上也出现了一些软件测试企业开发的测试实训平台[2],但这些平台主要用来做测试过程的管理,其中包含的部分案例资源既没有任何针对性,内容也不完整,对提升学生的软件测试水平帮助不大。因此,首先应开发并建立完整的软件测试案例资源库,每个测试案例应包含软件需求、测试需求、测试目的、特殊的硬件要求、特殊的软件要求、特定的配置、测试用例的描述、测试的预期结果、缺陷说明等,并通过案例资源的应用,建立完善的软件测试案例教学体系。

2软件测试案例教学探讨

要从根本上解决软件测试教学与企业需求脱节的问题,需要建立完整的测试案例资源库及完善的案例教学体系,才能使得培养出来的学生,可以满足企业对不同层次软件测试人才的需求,真正达到培养应用型人才的目标。

2.1案例资源设计原则

案例教学法是否能够达到应用型人才培养的效果,案例资源的质量是决定性因素,没有高质量的案例资源是无法培养出合格的应用型人才。具体的案例资源设计原则如下:1)根据不同软件测试方法设计、开发针对性的测试案例,案例中包含一定数量的缺陷,而且采用对应的方法可以测试出这些缺陷。2)根据软件测试的不同层次设计、开发针对性的测试案例,使得这些案例可以体现出不同层次测试的关系。3)综合性测试案例开发,案例中包含软件测试所需的前期文档(项目需求分析说明书、用户使用说明书等),学生通过综合性案例的训练,可以掌握软件测试过程及软件测试工具的使用。

2.2案例资源设计方法

根据案例资源设计原则,采用的案例资源设计方法为:1)对软件测试基本的方法:边界值方法、等价类方法、决策表方法、因果图测试方法、路径测试方法、数据流测试方法等分别设计和开发针对性的测试案例,使得这些案例能够体现每种测试方法的特点和用途。使学生掌握不同测试方法的适用情况、测试效果等。2)对软件测试的不同层次:单元测试、集成测试、系统测试等分别设计和开发测试案例,使得这些案例能体现每个测试层次与前一层次的关系及分层测试的优势。使学生掌握各层次中不同测试方法的适用情况、优缺点等。3)综合性的测试案例应包含所有的项目文档、源代码,使学生有实际工程测试项目的感觉,能够使学生在实验的每一个步骤中理解软件测试技术和各种具体的测试方法,增强实际操作能力,增加软件项目测试的综合经验。通过综合性测试的实践,可以让学生感受大型软件测试项目的工作流程和实施细节,掌握各种软件测试方法在大型项目中的应用,体会软件测试的规律;了解软件测试项目的管理,熟悉软件测试项目中人员的管理、产品的管理、软件测试用例的管理以及缺陷的管理;能够进行比较复杂的测试项目的计划和过程管理,合理使用测试工具进行自动化测试,为从事要求较高的软件测试打下坚实的基础。

2.3案例教学体系

案例资源开发完成后可直接用于相关课程的教学和实践环节中,在案例应用过程中逐步完善,并通过测试案例的应用改革软件测试的教学体系和教学方法,培养具有较强实践能力的软件测试人才。案例教学体系分成如下三个阶段:1)软件测试相关课程的理论和实践教学,主要采用针对软件测试基本方法的测试案例,单元测试、集成测试和系统测试案例。2)课外实践、课程设计、毕业设计等学习方式,主要采用综合性的测试案例。3)与软件测试相关的企业、教育培训机构建立联系,使学生得到实际软件测试项目的训练。通过以上三个阶段的学习和训练,学生可以系统的掌握软件测试的方法和实用技巧。

3结语

本文以面向企业需求的软件测试应用型人才培养为目标,以由浅入深的层次软件测试案例资源为基础,通过完整的案例教学模式,使学生开始学习软件测试时就了解软件测试在软件工程中的地位和作用,并通过案例实践真正掌握软件测试的方法和技巧。

参考文献

[1]李静,赵志升.软件测试专业课程体系建设和教学改革[J].教育与职业,2014(2):135-137.

[2]戴勇谦,戴勇新,周旋.基于实训平台的软件测试教学改革[J].中国科教创新导刊,2012(31):195-196.

[3]李玉蓉,贾美丽.软件测试课程实践教学改革与探索[J].计算机教育,2014(21):105-107.

[4]李月龙.高校软件测试课程教学改革研究[J].计算机教育,2014(14):16-18.

软件测试论文第8篇

关键词:软件测试;课程建设;案例教学;实践教学

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

文章编号:1672-5913(2007)12-0011-03

1引言

随着计算机的诞生,就开始了软件开发和软件测试。计算机硬件的飞速发展,使得软件在整个系统中的地位越来越高,同时对软件的质量提出了更高的要求,软件测试是保证软件质量的重要手段[1]。近年来,国内软件市场不断扩大,软件企业逐渐走入正规,市场需要大量的软件测试人才。但是各高校并没有准备好这方面的人才,迫于就业压力,许多本科生、硕士研究生纷纷通过自学、培训等途径获取软件测试所需要的技能,去应聘软件测试职业。鉴于此,高校应该根据社会需要,调整培养方案,培养出大批合格的软件测试人才。软件测试属于软件工程专业的一个方向,可以依托软件工程专业,加强软件测试课程建设,加大软件测试方面的师资力量,改进教学方法,加强实践教学环节,培养出具有扎实软件测试理论基础、掌握软件测试方法和具有一定软件测试经验的软件测试人才。

2软件测试课程的教学现状

目前,许多高校的计算机相关专业并没有单独开设软件测试技术课程,软件测试技术只在软件工程课程的某一章节进行了介绍,并且没有作为重点内容来要求。软件测试技术方面的教材,近年来才出现了一些,但质量良莠不齐,对软件测试技术的重视程度可见一斑。有的学校把软件测试技术作为选修课,课时比较少,大多注重软件测试理论的讲解和测试方法的介绍,忽视了极为重要的实践环节,缺乏系统的训练,离软件公司对软件测试人才的要求差距较大。

讲授软件测试技术课程教师的缺乏也是亟待解决的问题。高校中有讲授软件工程的主讲教师,他们能很好的讲解软件测试理论和介绍软件测试方法,但缺乏较好的软件测试案例和软件测试经验,而这正是讲授好软件测试技术课程的关键所在。

另外,学生对软件测试的认识也直接影响他们对软件测试技术的掌握。一些不规范的软件公司往往让新进人员和编程能力较差的人员从事软件测试,这让很多学生片面地认为不会编程序的人才从事软件测试,从而不重视软件测试技术的学习和训练。

3软件测试课程教学方法探讨

为了培养符合社会需要的软件测试人才,进行如下教学措施。

第一,加强软件测试课程建设。软件测试课程建设包括制定教学目标、确定教学内容、制定教学计划和选择教材。软件测试课程的教学目标是通过对软件测试技术的理论学习和系统训练,使学生了解软件测试在软件开发过程中的重要作用和地位,理解软件测试的基本概念和基本理论,掌握软件测试技术和方法,能运用软件测试技术解决实际测试问题,并知道软件测试职业的特点和对软件测试人员素质的要求。教学内容分为课堂教学、实验教学和实践训练,课堂教学包括软件测试基本概念和基本理论、软件测试技术和方法;实验教学则是利用所学的软件测试技术进行软件测试;实践训练有课程设计,并与认识实习、生产实习、毕业实习和毕业设计等环节有机结合起来。软件测试技术的课堂教学在软件工程课程结束之后开始,安排在第5、6两学期进行,实验教学在这两学期同步安排;课程设计在第6学期后半学期或第7学期前半学期进行。与软件测试技术相关的认识实习安排在第4学期后半学期或第5学期的前半学期;生产实习安排在第7学期,毕业实习和毕业设计则根据需要安排在第7、8学期。教材可先选用一些较优秀的软件测试书籍,然后根据教学实践与有经验的软件测试工程师合编软件测试教材、实验指导书和实践训练指导书。

第二,加大软件测试师资的培养与引进。讲授软件工程的教师大多缺乏实际的软件测试经验和充足的测试案例,而这正是讲授好软件测试课程的关键,可以派遣准备讲授该课程的教师到优秀的软件测试培训机构进行培训,然后联系到正规软件公司的软件测试部门实习。另外,引进或聘任有经验的软件测试工程师来校任教也是一个很好的办法。

第三,合理安排教学内容,执行案例教学。软件测试技术涉及的知识点很多,并且这些知识点需要通过大量规范化的训练来理解和掌握,分阶段教学是一个很好方法。第一阶段的教学内容是软件测试技术的基本要求,包括软件测试的基本概念和基本知识、单元测试、集成测试以及自动化测试工具的使用。第二阶段的教学内容是软件测试技术的较高要求,包括需求测试、设计测试、系统测试、可靠性测试、验收测试以及静态测试中的同行评审等。课堂教学中利用各种测试案例进行教学能使学生更容易理解和掌握软件测试概念和软件测试方法。案例教学法需要建立案例库,向案例库中增加案例是一个逐渐积累的过程。测试案例可以从教学实践(包括教师设计的案例和学生练习中设计的优秀案例)、教材、软件企业等方面收集[2]。教学过程中,理解软件测试技术时可采用一些简单的测试案例,综合训练时则选择较复杂的完整案例。

第四,扎实执行实践训练。掌握软件测试技术只有课堂学习是远远不够的,还必须进行扎实的实践训练。实践训练包括课程实验、课程设计、认识实习、生产实习、毕业实习和毕业设计。实验教学在学校专业实验室进行,通过课程实验使学生熟悉软件测试过程,加深对软件测试方法的理解。实验内容按测试方法组织,测试案例由实验指导教师设计或从案例库中抽取,根据测试对象要求学生设计测试用例、编写测试程序、测试和书写测试报告。实验教学的学时有限,只能使学生达到软件测试入门级的水平。课程设计是对实验教学的补充,针对某课程进行的综合实践训练。软件测试技术课程设计以一个小型的软件项目为对象,在学校专业实验室中进行软件测试技术的综合训练,训练内容包括需求测试、设计测试、单元测试、集成测试、系统测试和验收测试,训练要求写出规范的测试报告、设计合理的测试用例、进行人工和自动测试并分析测试结果,当项目相对复杂时,可以多名学生合作完成。认识实习和生产实习是高校专业教育中两个重要的实践环节,组织对软件测试感兴趣的同学利用这两个环节进行软件测试技术的学习和训练。认识实习通过参观软件公司测试部门的软件测试过程、听取有经验软件测试工程师的专题报告等方式进行,加深学生对软件测试技术的理解和加强学生对软件测试职业的认识,激发他们对软件测试职业的兴趣。生产实习则需要有软件测试训练基地(通过学校自建或与软件公司合建实现),在实习基地每个有经验的软件测试工程师单独指导几名学生进行实际项目的测试,通过该项训练,使学生认识到实际项目的软件测试与实验室进行的软件测试的区别,找出自己的差距,通过自己学习和向工程师学习不断提高自身软件测试水平。毕业实习和毕业设计环节则组织有志于从事软件测试职业的学生进行强化实践训练,由学校教师和有经验的软件工程师共同指导,要求学生独立进行实际项目的测试,每个阶段由指导教师评价测试用例、测试和测试报告的质量,使学生逐步达到软件公司对软件测试人才的要求。

第五,引导学生正确认识软件测试技术和软件测试职业。通过任课教师的讲解、具有丰富经验软件工程师的报告、自己从各种媒体的学习等方式使学生了解软件测试技术的重要性和广阔的就业前景,激发他们学习和掌握软件测试技术的兴趣;同时要让他们认识到软件测试职业对软件测试人员的要求较高,不仅要掌握软件测试技术,还要具备软件系统分析、软件系统设计和软件编程等方面的能力。由于软件测试人员的工作是找出软件中错误,并经常同系统设计者和编程人员交流,要训练和培养学生具有严谨的工作习惯、良好的沟通能力和团队合作精神。

4软件测试课程教学实践

我校计算机学院开设了软件工程专业,几年前专业建设领导就意识到市场对软件测试人才的需求,及时修订了专业培养计划,设立了软件工程专业的软件测试方向。具体措施如下:

第一,进行了软件测试课程建设。制定了软件测试教学计划,设立了软件测试课程,增加了软件测试课程设计,依托软件工程实验室建立了软件测试实验室,并开始建立软件测试案例库。

第二,加强软件测试技术师资建设。从正在进行软件项目开发的教师中挑选担任软件测试课程教师,并对他们进行短期培训;同时从软件公司(软件工程专业学生的实习基地)中聘请有经验的软件测试工程师定期进行讲座,并与任课教师进行交流。

第三,注重软件测试实践环节。依托软件工程专业的实习基地,使部分对软件测试感兴趣和有志于从事软件测试职业的学生的认识实习、生产实习、毕业实习和毕业设计在实习基地着重进行软件测试的训练。经过几年的摸索和努力,2006年软件工程专业毕业生中已有一批学生成功应聘到软件公司从事软件测试工作。

5结束语

随着软件公司规模扩大和正规化,社会需要大量的软件测试人才,这给就业压力极大的毕业生带来了机遇,同时软件公司希望招收有技术和经验的员工,又给毕业生和高校带来了挑战。软件测试人才培养刚刚起步,很多工作处于摸索阶段,需要学校、教师和学生的共同努力,为社会培养出大批合格的软件测试人才。

Discussion and Practice of Software Testing Course

HU Hong-yin

(School of Computer, Wuhan Institute of Technology, Wuhan 430073, China)

Abstract: Lots of software testing specialists are demanded currently, but they are not brought up by the colleges and universities, further more, the software testing course is not set in some colleges and universities. In this paper, teaching of software testing course is analyzed, course constructing, teachers, teaching method, practice of software testing course are discussed, and the teaching of software testing course in our university is also introduced.

Keywords: Software Testing; Course Constructing; Case Teaching; Practice Teaching

参考文献:

[1] 古乐,史九林. 软件测试技术概论[M]. 北京:清华大学出版社, 2004.

[2] 钟元生. 软件测试实践教学特色的构造实践[J]. 电化教育研究,2006,(10): 62-65.

作者简介:胡宏银(1972~),男,湖北大悟人,讲师,硕士,主要研究方向:软件工程。

联系地址:武汉市武汉工程大学计算机学院胡宏银

邮编:430073