本站小编为你精心准备了软件工程思想下的软件测试教学实践参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:随着软件行业的成熟,在计算机类专业课程中,软件测试课程越来越受到重视。软件测试的教学问题也越来越引起重视。我们把软件测试课程的教学和软件工程联系起来,提出基于软件工程思想来开展软件测试课程的教学。这种方法把零散的软件测试的技术和方法有机地串起来,组成一个逻辑上完整的整体,有利于学生形成软件测试思想,加深对软件工程思想的理解。
关键词:软件工程;软件测试;教学研究
一、前言
软件测试课程近年来不断走进高校计算机类专业课堂,一方面与软件产业不断成熟从而影响高等教育专业课程设置有关,另一方面也与软件测试技术不断成熟有关。软件开发类企业不断关注软件产品的质量,从而与软件测试相关的职位也不断得到设置和重视。有许多文章讨论了软件测试从理论到实验实训设置的研究与改革。文献[1]指出需要在设置《软件测试》课程之前,开设一些前期课程,让学生理解软件工程的思想,进而在软件工程的思想的指导下讲授《软件测试》课程。文献[2]分析了当前国内高校开设软件测试课程的经验,认为当前国内的软件测试技术的教学内容并不成熟,课程涉及的知识点多而繁杂且概念抽象,因此提出以“基本概念—测试方法—测试流程—测试工具”为主线组织教学内容。文献[3]认为软件测试在教学模式上存在严重缺陷,其中包括理论课程知识结构不合理。文献[5-6]分别讨论了软件测试技术在软件行业的作用。软件测试课程的设置与教学一时引起了许多人的重视。上述的研究或探索都认为软件测试是软件质量保证的一种手段,而且也关注学生参与实际软件测试项目实训的问题。对于这些问题,我们从把软件测试回归作为软件工程的一个过程,将软件测试基于软件工程的思想的视角,对相关问题进行了一些探索。
二、作为软件工程过程的软件测试
工程是对技术实体的分析、设计、建造、验证和管理。软件工程可划分为三个阶段:定义阶段,集中于“做什么”,它有三个主要任务:系统或信息工程,软件项目计划,需求分析;开发阶段,集中于“如何做”,它的三个主要任务是:软件设计,代码生成,软件测试;维护阶段,集中于“改变”,这个阶段只有一个任务:不断纠正或完善软件功能。现代软件企业的软件测试主要地作为软件工程过程而存在,其目的是提供软件质量保证的一个手段,而且是一个重要且必不可少的手段。只有把软件企业的目的(开发生产软件, 销售出去,收回投资)作为软件测试课程的背景加以明确,从而明确软件测试作为软件产品质量保证的主要且重要的手段,才能为理解整个软件测试课程的有关原理建立起一个坚实的基础。将软件产品设计与开发中的软件测试过程与工业产品的质检作对比。由于工业产品的流水线生产的特点,所生产的产品具有确定的质量标准,质检就是从批量产品中抽检一些,按照质量标准进行检验;而软件产品是逻辑的而非物理的元素,其产品质量的度量本身比较抽象,并不象一般工业产品一样存在一种普遍的具体的度量标准,因为大多数软件产品本身是根据客户需要定制的。虽然软件产品是设计开发的,而不是生产制造的,但在设计开发过程中需求获取方面的困难及其他人为因素,仍会存在各种错误,而这些错误也如软件的特点一样,比一般工业产品的错误更难发现。由于软件产品定制的特点,因此,对软件产品错误或缺陷的检测不能如工业产品一样批量抽检,只能一件一件详细检查。在软件开发设计的整个过程中,包括软件工程的定义阶段与开发阶段,都可能会引入错误,因而,在这些阶段中,软件测试的主要目的就是在软件的“生产”过程中发现错误。这里软件测试从而也成为了“生产”部门,与开发等部门共同“生产”高质量的软件产品。从用户角度来看,软件产品是可以改善生活和工作质量的最终信息。因而,软件是否满足用户要求,就成为软件产品的第一个也是最重要的一个质量指标。这里又可细分为满足用户功能需求和其他如性能等非功能性需求。因此,软件测试也分为功能测试和其他非功能性测试。
三、软件测试教学内容设置与教学方法的思考
不管是从事软件开发还是从事软件测试的学生,软件测试课程都具有价值。对于从事软件测试的学生来说,软件测试课程直接为将来所从事的岗位打下基础,甚至准备好专业技能。对于从事软件开发的学生来说,软件测试课程可以是比软件工程一类课程更完整、更深刻领会软件工程思想的课程。如果说软件工程课程给学生提供了初步接触软件工程思想的机会,那么软件测试课程就加深了对软件工程思想的理解。
(一)教学内容设置的逻辑依据软件测试课程的逻辑线索就存在于软件测试作为软件工程的一个质量检测与保证的过程。从这个视角来看,软件测试课程内容就应包括软件测试的一般方法论或技术,软件测试的策略或过程,软件测试流行工具,软件测试的管理等相关内容。如果从一个系统具体的测试活动的视角来观察软件测试,那么可以得到软件测试课程内容组织的逻辑顺序线索。因此,实际软件“生产”过程中的软件测试过程或具体的软件测试活动是确定软件测试课程教学内容的内在逻辑线索。
(二)软件测试教学内容概述软件测试作为软件工程的一个过程,担负的是软件质量保证的责任,其目的是为了发现软件设计和实现过程中的疏忽所造成的错误,需要其独特的技术和方法。到具体的技术层面,使用不同的开发语言或开发平台,需要的测试工具或技术都可能不同,例如用C语言在linux环境下开发的软件的测试与用java语言开发的系统的测试,所用的技术就有明显的不同。这些技术和方法是组成软件测试课程内容的重要组成部分之一。根据经验数据,软件测试一般占整个开发阶段工作量的40%甚至更高。因此,一定要有软件测试的思想,要了解测试的任务,并需要制定测试的策略。软件工程中,软件测试一般分为四个阶段:单元测试,集成测试,确认测试与系统测试。测试策略与相关的测试计划等的制定是软件测试课程内容组成之二。软件测试需要设计测试用例,实施时,需要记录测试结果,有时还需要报告软件缺陷,并需要对这些测试用例、测试结果或软件缺陷进行管理。因此,测试用例的设计与表示,测试结果的分析与报告属于软件测试课程内容组成之三。软件测试,特别是自动化测试,需要使用软件测试工具,对这些工具软件的掌握或了解作为课程内容组成之四。另外,有关评审等技术作为软件测试的第一步,也是需要了解的。
(三)软件测试教学方法正确的教学方法必须遵循辩证唯物认识论和教育学基本原理。认识论认为人的正确认识是从感性认识开始的,上升到理性认识,再由理性认识反作用于实践。教学原则的理论联系实际原则要求教学以学习基础知识为主,从理论与实际的联系上去理解知识,并注重学以致用,发展动手能力;而循序渐进原则则要求教学要按照学科的逻辑系统和学生认识发展的顺序进行,使学生系统地掌握基础知识、基本技能,形成严密的逻辑思维能力。按照这些原则,我们在课程教学内容的总体顺序安排上,要遵循循序渐进原则,教学内容要按照某一逻辑主线组织,即使教材没有按这一逻辑主线来组织,我们在教学时仍可按此线索组织教学。文献[4]是一部经典的软件工程教材,其中第3部分质量管理的第17-22章给出了基于软件工程思想的软件测试的内容组织范例。另外,软件测试的特点也对软件测试教学方法的采用产生影响。测试思想是融合了测试理论、测试技术、行业知识以及项目管理等诸多领域的知识而形成的。学习软件测试课程,其最高目标是使学生初步形成软件测试思想。理论部分要从逻辑上说清楚一个具体的软件的测试活动,包括从最初的单元测试到最后的验收测试阶段,也就是从软件工程的视角来展开。其理论框架是软件工程生命周期模型。在具体的测试技术教学中,即白盒测试和黑盒测试教学中,教学目标很明确,教学方法也容易把握;反倒是在阶段性的测试过程的教学中,如单元测试、集成测试和系统测试测软件相关的,因而不容易明确教学目标,教学方法也不易把握。为此,在这些章节的教学中,我们要基于软件工程的思想,将相应阶段的测试的目的、手段和可用技术及评价等方面的问题讲清楚[7]。在实践部分的教学中,仍要基于软件工程的思想,要使学生基本形成软件测试的思想,知道针对一个具体的软件系统的测试要采用什么样的测试手段,采用什么样的测试工具软件。在具体的教学中,要让学生熟悉两至三种流行测试工具软件的使用。
四、结语
软件测试课程随着软件产业中竞争的加剧,用户对高质量软件产品的期望,在各高校计算机类专业中开设得越来越普遍。但有许多专业的学生今后并不一定从事软件测试工作,即使对于今后从事软件测试工作的学生,由于工具软件也会随着技术的发展而不断推陈出新,因此,单纯培训式的教会学生使用一两种软件测试工具软件的教学,价值也在不断降低。基于软件工程思想的软件测试教学将软件测试课程的学习置于一个更广阔的背景之下,不但对于形成学生的软件测试思想是有益的,而且对于培养学生的规范的软件工程的开发思想也是有益的。目前学习过软件测试的两届学生都对课程的学习留下良好的反馈。今后将继续完善实践部分的实验内容的设置,使其能自成一体,类似于一个具体的软件系统的测试活动的展开,更好地强化教学的效果。
参考文献
[1]程茂,温静,吴玉洁.《软件测试》课程的教学研究[J].湖北师范大学学报(教育科学版),2012(4):40-41.
[2]陈翔,鞠小林.卓越计划驱动下的软件测试技术课程教学改革[J].计算机教育,2013(13):35-36.
[3]李静,赵志升.软件测试专业课程体系建设和教学改革[J].教育与职业,2014(2):135-137.
[4]RogerS.Pressman著.软件工程—实践者的研究方法(第7版)[M].郑人杰,马素霞,等译.机械工业出版社,2011年5月.
[5]浅谈软件测试思想[EB/OL].www.educity.cn/se/524134.html.
[6]邢晓伟.计算机软件测试技术分析[J].计算机光盘软件与应用,2014(23).
[7]闫玮.计算机软件测试技术与深度开发应用[J].时代教育,2016(06).
作者:于述春 林晶 黄斌 单位:怀化学院计算机科学与工程学院