前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件测试项目总结范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
软件质量重于泰山
软件质量重于泰山,软件质量是核心竞争力之一。现在和未来软件企业的竞争力不仅体现在产品类型的多样性,产品功能的先进性,更多的体现在产品质量的稳定性和可靠性。软件应用的领域不断深入,设计的复杂程度逐步增加,开发的周期不断缩短,质量的要求水涨船高,软件企业面临着巨大挑战。
用户对软件产品质量的要求不断提高,促使软件企业把提高软件质量作为增强竞争力的策略。提高软件质量要素在哪里?可以通过采用软件设计技术,加强软件过程管理,实施软件测试等方法。从提高软件质量的显著程度、投资回报率和可实施性等方面比较,实施有效的软件测试,提高软件测试的效率,是保证软件质量的显著方法。
软件测试是通过技术、流程、工具、人员以及管理手段,检测软件文档、软件中间产品和最终产品,查找和报告软件缺陷、错误以及隐患的专业技术。通过跟踪缺陷、错误及隐患的修正过程,确保软件产品、中间产品和文档符合软件工程过程需求和用户的最终需求。
软件测试创新之道
软件测试在国内仍处于起步阶段,各种软件测试的方法、技术和标准都还在探索阶段。国内软件行业规模普遍偏小,缺乏大型软件产品经验,开发过程不够规范,这决定了国内软件质量和测试行业,必须根据国内行业现状,确定软件质量目标和测试策略方法,而不是照搬照抄国外成熟软件企业的测试方法。
观念创新
提高软件质量的决定因素不是软件测试技术,而是对软件质量和测试的思想观念。只有把提高软件质量上升到企业战略发展的高度,才能从根本上解决问题。长期以来,国内软件行业对软件质量重视程度不足,对于软件测试的作用认识不够,造成项目因质量问题造成进度推迟甚至失败。
为了彻底改变这种被动现象,企业高层管理人员必须从管理思想、资源支持等方面为软件质量和测试部门提供全力支持。软件项目经理必须坚持软件开发和软件测试并行处理并且互相协调。软件开发人员重视和配合软件测试人员。
观念创新不要仅停留在口头上,而要落实在具体行动上,通过软件质量和测试的有效流程进行推动,通过过程改进进行提高。通过有效组织管理,形成“以重视软件质量为荣,以轻视软件质量为耻”的工作氛围。
流程创新
测试流程决定软件质量。软件测试如同软件开发一样,需要经过收集测试需求、确定测试策略、设计测试、执行测试、分析测试等流程。软件测试不是软件开发的最后阶段,而是贯穿于软件项目的整个生命周期。
软件测试流程既不是僵化的生搬硬套,也不是随机的增添取舍。软件企业的质量管理部门和项目开发团队需要根据公司技术、资源现状,针对项目的特点和客户需求,从保证软件质量、项目进度和测试成本等方面,进行优化设计并且不断改进流程管理。对于项目周期长、应用领域广、对质量要求高的软件,必须制定和遵守严格的测试流程。
测试流程创新的目标是在公司内部制定和执行完善的项目质量管理体系。优化项目生产方式,跟踪和度量生产过程和产品,使得生产过程和各阶段产品处于可控制和可度量状态,保证产品符合客户的功能和进度需求。
技术创新
软件测试是一项软件工程领域的专业技术,而不是简单的把软件测试认为随便找个人运行几次软件,就可以发现全部的软件问题。前文已经提到,软件测试需求和测试设计是决定软件测试效果的关键因素,因此,加强测试技术创新的重点是在测试需求和设计设计的创新。
在软件测试技术创新方面,要避免陷入过度追求自动化测试技术的误区。自动化测试确实可以在某些方面显著提高测试效率和准确性,但是自动化测试只适合测试软件的某些方面的质量,80%左右的软件缺陷是靠测试人员手工测试发现的。
对于某些特别需要自动化测试的软件特性,需要加强开发软件测试工具,而不是全部依赖市场上的现有测试工具。这是因为商业工具功能繁多,价格昂贵,培训和学习周期很长,选择不当就会造成巨大浪费。
管理创新
软件测试管理的目标是实现软件质量、进度、成本之间的最佳平衡。有效的测试管理需要企业管理层、软件开发团队、质量保证与测试团队通力合作,采用计划、组织、领导、控制等手段,组建高效团队,制定完善的测试流程,做好测试设计,有效执行测试,加强过程跟踪,从而顺利完成质量保证和测试任务。
测试管理创新的核心是软件质量和测试的团队建设,软件质量和测试是技术密集型活动,团队的知识结构、创造力和凝聚力是保证测试流程、测试技术充分实施的基础。质量和测试团队建设的重点是设置和培养各类技术和管理人才,进行有效交流,形成良好的评估和促进机制。
测试管理创新的另一个重点是测试管理平台建设。包括构建测试项目管理的集成系统,实现公司产品和项目数据信息的有效管理和顺序控制,使项目数据透明化,技术知识有效传承,项目质量和进度数据化、图形化。可以根据公司的现状,购买软件测试管理的商业工具,也可以内部开发软件测试管理工具。
软件测试技术路线图
如果把软件测试之道成为测试战略,要发挥测试战略的现实意义,需要把测试战略转化为测试战术。测试的“道”与“术”的无缝集成,才能显著地、持续地、逐步地提高软件产品质量。实施软件测试的战术是一系列过程的组合,涉及测试团队建设、流程设计、测试平台、测试管理等多个方面。
测试团队建设
测试团队可以是测试部,也可以是测试组。公司规模决定了测试团队的大小和组织形式。测试团队建设需要执行两个原则:第一,测试团队必须独立于开发团队,而不是附属于开发团队,实现测试的独立性和公正性;第二,测试团队必须具有明确的工作目标,即发现和报告软件缺陷,推动和确认缺陷修正,协助软件开发的过程改进,提高软件整体质量。
软件测试团队根据规模可以设置多个职位,每个职位具有明确的岗位职责。例如,测试部门经理、测试项目经理、测试组长、测试架构师、高级测试工程师、测试工程师等。对于刚刚成立的测试团队,可以一个人兼任多个职位,完成多项测试任务。测试人员的总数应该与开发人员相适应,最好在1:1到1:2之间。
流程设计
测试流程设计必须与软件设计流程相对应,基本测试流程包括测试需求分析、测试计划设计、测试用例设计、测试执行、测试评价、测试总结等。
根据软件需求和软件设计规格说明进行测试需求分析,测试需求分析的目的是明确需要测试的对象、特征、范围和方法,从而制定测试计划,确定测试策略。
测试计划设计是为了有效配置测试过程、人员和工具,充分利用现有的资源,按照项目计划进度,组织有效的测试。测试计划设计的输出结果是测试计划文档,它是指导软件测试活动的纲领性文档。
测试用例设计是指导具体测试内容和方法的关键内容,如果需要执行自动化测试,还需要依靠测试用例设计生成对应的测试脚本。测试用例设计的输出结果是不同类型的测试用例,这些测试用例必须以标准、一致的形式设计、评审、存储、更新。
测试执行是报告软件缺陷的阶段,根据软件计划的进度,分配测试内容,构建测试环境,依靠测试用例运行测试程序和程序文档。测试执行的输出结果是缺陷报告、测试进度报告等。
测试评价是度量软件测试执行效率和有效性的过程。测试评价的输入是测试用例的执行情况,软件缺陷的报告数据。测试评价的输出包括测试用例的有效性分析,软件缺陷的类型和有效性分析等,测试进度和有效性分析等。
测试总结包括测试过程每天或者每周的过程总结,也包括测试项目结束后的测试项目总结。测试总结的输出是测试总结报告,总体评价软件质量,指出测试存在的问题,提出改进的方法和进程,总计测试的有效经验。
测试平台设计
测试平台设计包括测试技术平台设计和测试管理平台设计。测试技术平台包括设计测试环境,设计或设置测试工具等。测试管理平台设计包括测试文档系统设计、测试版本配置管理、缺陷数据库设计、测试进度和质量分析系统设计。
测试技术平台设计需要根据测试计划的测试内容和测试环境要求,组织软件、硬件、数据库和网络等,这经常是一项较为耗时的工作,同时它影响着测试的正确性,必须尽快在测试开始阶段完成,最好采用有效的方法把搭建的测试环境进行备份保存,以便今后可以快速恢复,重复利用。
测试管理平台设计,影响测试管理的复杂度,好的测试管理平台可以使测试管理人员,方便地跟踪、查询、分析测试进度,评估测试人员的工作绩效,评价测试的总体质量。对于测试技术人员而言,可以方便的寻找测试对象和测试文档,报告和输出测试结果,共享测试数据,提高测试效率。
测试管理
测试管理关注人员、过程、产品三要素的互动与变化,测试管理包含项目计划和组织结构管理,测试阶段管理,时间、资源和质量管理,文档管理和团队管理等。测试部门经理、测试项目经理和测试组长是测试管理的主要执行者,需要与测试团队成员、开发人员、公司管理人员密切配合。
为了加强测试管理,需要确保测试数据信息流通畅,使测试团队、开发团队、质量保证团队之间有效交流。测试管理的其他内容包括团队成员参与各种培训,客观积极的绩效评估,识别项目测试风险,实现人尽其才,信息共享,进度可控,规避风险,降低成本,提高质量。
Abstract: With the development of software companies, software testing plays an increasingly important role in improving the quality and maintainability of software products. In the construction process of software system, the project management plays a vital important role in the success of the entire project.
关键词: 软件系统;测试;安全性;质量;问题;影响;管理
Key words: software systems;testing;safety;quality;problems;influence;management
中图分类号:TP311 文献标识码:A 文章编号:1006-4311(2014)19-0204-02
0 引言
随着软件市场的发展越来越成熟,人们对软件作用的期望值逐渐增高,就使得人们将关注点转移到软件的质量和功能的可靠性上,因此软件产业在中国市场产品测试领域有着严重的不足。我们不得不承认,国产软件市场相对国际先进的软件来看,无论在质量上还是成熟度上都存在着一定的差距。尽管国外软件也存在不少错误和漏洞,但是很少存在由于低级失误或大意而出现的软件产品质量问题。但是国内由于低级错误而造成的严重产品质量问题却时常发生,为了改变中国软件产业的前途和命运必须提高软件测试水平。因此,软件测试对软件产品质量、控制成本、软件可靠性、企业的竞争力等方面起着重要的作用。
1 什么是软件测试及软件测试的目的
随着软件规模的不断增大和软件复杂性的日益增加,软件测试也显得越来越重要,软件测试工作是非常讲究策略和方法的工作,需要我们努力学习达到先进领域的顶峰。软件测试就是在受控制的条件下对系统或应用程序进行操作并进行评价操作结果的一个过程,其中所谓控制条件主要就是两种,即正常条件与非正常条件。而软件测试主要是为了进行“探测”,通过探测发现软件自身的毛病,加以改进。软件测试贯穿于软件开发的整个周期,其中软件的规格说明书和结构设计的程序编码等,都属于软件测试的对象。进行软件测试的主要目的就是为了保证软件产品的最终质量,因此,我们在进行软件开发的过程中,就需要对产品的质量进行控制,以避免出现不合格的产品。
2 加强对软件测试工作的项目管理
2.1 软件测试的关键问题 软件测试的关键问题就需要我们从以下四个方面进行分析:首先,测试由谁来执行。因此软件产品的开发设计通常由软件开发者和软件测试者两种角色组成。一般开发者主要通过开发形成产品,然后由测试者来检验产品中是否存在缺陷。通常的测试工作是由开发者负责完成自己所开发的代码单元测试,然后测试者承担系统测试。其次,测试什么。通常测试经验表明,程序中的故障,并不一定是由于编码导致的问题,所以为了排除故障就要追溯到前期的工作。但是很多时候,软件需求分析、设计和实施阶段是软件故障的主要来源。第三,什么时候进行测试。软件进行测试可以在开发中进行测试,可以在各个模块完成一个整体的程序后进行测试。最后,怎样进行测试。对软件进行测试就是根据软件的功能和规范说明以及程序的实现,就需要我们进行各种测试,然后生成有效的测试用例,对软件进行测试。
软件测试的目的就是为了证明程序中是否有故障存在,以此找出解决的问题,所以在进行测试的时候,要有周全的计划,这样才能从软件中找出缺陷和错误,然后通过发现的问题进行处理。软件测试的原则就是尽早并及时测试应用软件,然后由专业人员进行软件的测试,测试用例应完整完全,严格执行测试计划,保存测试的分析报告以备今后应用。
2.2 软件测试方法管理 软件测试的方法主要有白盒测试法和黑盒测试法两种。其中白盒测试法又称之为结构测试、基于程序的测试和逻辑驱动测试,白盒测试法大部分用于单元测试中。而黑盒测试法又被称为功能性测试、数据驱动测试或给予规格说明的测试,多数用于独立测试中,并不考虑程序结构和内部特征,只在于检查输入与输出之间的关系是否符合要求。
测试信息流程,测试过程中需要三类输入:
①软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。
②测试配置:包括测试计划、测试用例、测试驱动程
序等。
③测试工具:为了提高测试效率,就需要我们采用测试工具以支持测试的工作,主要包括测试数据自动生成程序、驱动测试的测试数据库等。但是测试工具不是万能的,工具只能解决工具的问题,使用工具的毕竟是人。工具在解决效率问题上是非常擅长的。这个就类似我们看的武侠小说中宝剑和剑谱的关系,没有武功心法,你拿到宝剑也没用。
软件测试的周期是测试改错再测试再改错这样一个循环的过程测试终止的依据主要有五类标准:
①测试超过了预定时间,则终止测试。
②执行了所有的测试用例,但没有发现故障,则终止测试。
③使用特定的测试用例设计方案作为判断测试终止的基础。
④正面指出终止测试的具体要求,即终止测试的标准可定义为查出某一预定数目的故障,如规定发现并修改了多少个故障就可以终止测试。
⑤根据单位时间内查出故障的数量决定是否终止
测试。
3 小结
综上所述,软件测试的事务性操作较多,但是进行这些操作,我们需要有一个良好的心态去对待。其中良好的团队合作才能保证开发过程的顺利进行,在工作过程中还需要我们进行总结,对于问题我们需要有则改之,无则加冕。因为软件开发是一件比较辛苦的事情,我们只有在工作中对经验多总结,才能找到符合自己的方式方法,才会在工作中事半功倍。在软件开发中应掌握其中蕴含的软件测试流程思想,并有效的将测试管理融入到项目管理中,优化软件开发流程,提高产品质量。
中国软件公司的规模和产品的开发层次在不断的完善和发展中,因此很多公司开始谋求国家软件的订单,因此外包业务成为软件行业一个新的增长点。但是由于国内的软件测试水平与国外用户的要求相差甚远,就需要我国软件行业无论是在人力、管理还是组织或技术上都有大幅度的提升,重视软件测试,使之能够与世界先进的软件公司测试标准接轨,这也是我国软件能够迈出国门的重要前提前提因素。
参考文献:
[1]孙俊若,席晓强,叶波,林洁.机载雷达软件开发全周期测试技术研究[J].现代雷达,2010(01).
[2]徐宗云,王世伟.基于SOA架构的PDM系统与制造管理系统集成设计与实现[J].冶金自动化,2010(01).
[3]祝莎莎,陈勇,齐永阳,陈戈.虚拟现实软件VRGIS的项目进度管理研究及应用[J].中国高新技术企业,2010(01).
[4]斌斌.挣值分析法在信息系统项目中的应用[J].网络与信息,2010(01).
[5]张琦,林碧英.浅谈软件开发过程管理中的进度管理[J].中国电力教育,2008(S2).
关键词 软件测试 服务外包 人才培养模式
中图分类号:G710 文献标识码:A
1 软件测试外包人才需求状况
当前,软件产业已经成为国际竞争的焦点和各国竞相发展的战略性先导产业。早在2007年,教育部等部门出台的《关于进一步加强国家重点领域紧缺人才培养工作的意见》,将软件等确定为12个国家重点领域紧缺人才培养。而在软件行业中,为了提高软件质量,降低软件开发成本,分散软件外包风险,软件测试就成为重要推动力。但软件测试业却面临着自身的严峻考验——人才紧缺。据前程无忧招聘网统计,国内120多万软件从业者中,真正能担当测试职位的不足5万,人才缺口已超20万并向30万大军挺进,并随需求逐年增长。在国外,一般软件测试人员与软件开发人员的岗位设置比例是1:1。软件测试人才需求量的加大,除了受产业先行的波及外,长期以来业界对软件测试的不重视,导致高校未有效开展软件测试人才的培养,出现教育滞后。教育滞后体现在多方面,包括专业设置、人才培养模式、人才培养方案的滞后与不协调等。
2 软件测试职业发展及能力需求分析
2.1 软件测试外包的特点
随着软件产业的发展,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心。几乎每个大中型IT企业的软件产品在前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的软件测试工程师这样专业的人士来完成。单独设立测试部门,对测试人才有强烈需求的企业大多是规模较大的一些IT企业,外资企业居多。而一些企业为了降低软件开发成本,专注于核心业务的发展,或因测试力量匮乏,往往会把软件测试工作外包给专业的测试机构来完成。软件测试外包的特点,一是涉及行业多,知识面广。二是测试团队比较大。三是接触到大项目的机会比较多,软件测试的类型包括行业应用软件的测试、本地化和国际化测试、嵌入式软件测试等。在行业软件中,以手机、家电嵌入式软件为代表的通信行业软件和汽车、电子行业的中间件成为具有潜力的软件外包领域。所以软件测试外包对测试人员的素质提出了更高的要求。
2.2 软件测试职业发展及能力需求分析
根据软件测试职业岗位与工作内容的分析,综合学院、企业、培训机构专家访谈结果,网络资料查询调研结果,不同行业、不同企业同一岗位,其岗位工作任务不同,职业能力需求的侧重点也不同。同一职业岗位在不同的行业领域对知识的要求也不同。按照软件测试为岗位主线,通过对不同行业企业所需人才岗位工作职责、能力知识需求进行系统的分析与研究,总结提炼出软件测试外包专业毕业生踏入工作岗位从初级测试工程师到成长为有丰富工作经验的测试项目经理所具有的能力与素质要求。
初级测试工程师的工作职责是按照软件测试方案和流程对产品进行功能测验;检查产品是否有缺陷;报告和跟踪缺陷及进行验证。其能力素质要求是熟悉常用的软件测试方法、软件工程知识;熟悉常用的软件开发环境,编程工具;有良好的英语阅读能力,具有良好的沟通能力。
中/高级测试工程师的工作职责是设计测试用例;搭建测试环境;根据测试设计对产品进行性能、功能等全面测试;测试工具等的开发、撰写测试报告。其能力素质要求是掌握软件测试原理流程、方法与规范;熟悉测试工具;熟练地编写测试脚本,能够进行缺陷分析及预防。具有较强的文档编写能力;较强的学习能力;高度的责任心,较强的沟通能力。
测试组长及测试主管:设计测试计划及进行测试项目的管理;项目及测试流程和工具的选择及优化;测试项目质量和进度控制。其能力素质要求是有一定的软件测试经验;能够独立完成各类测试任务;具有较好的解决问题的能力;有一定的分工协作能力。
软件测试项目经理:构建测试团队及进行测试团队的管理;制定项目测试方案和测试计划;协调测试资源,并对各种资源进行计划、分工和管理;测试项目的质量及控制。其能力素质要求精通软件测试理论、软件测试管理和自动化测试技术;熟悉软件测试开发和测试平台、自动化测试与性能测试工具;较强的测试组织管理能力、沟通协调能力;有流利的英语读写表达能力;善于团队合作,执行能力强。
3 构建并实施一站式人才培养模式
改革现有的软件外包测试人才培养落后状况,探索并实践新型人才培养模式成为软件测试外包人才培养的重中之重。烟台职业学院对此作了多方面的探索与实践,构建并实施一站式人才培养模式,为软件测试外包人才规模化培养积累经验。
3.1 软件测试外包专业人才培养目标
根据企业的人才需求特点,学院、培训机构、企业三方共同确定的高职软件测试外包专业的培养目标为:培养掌握计算机基础、软件测试专业知识、熟悉软件测试的基本方法、流程和规范,了解服务外包行业知识、发包方文化、商务礼仪,能利用测试工具对软件产品进行功能和性能测试,设计和维护测试系统,对测试方案可能出现的问题进行分析与评估,具有软件编程能力及软件工程应用能力,可从事软件外包及服务外包企业软件测试、运行、维护及质量管理等岗位工作,具有较强的外语应用能力,良好的沟通能力、协调能力和语言表达能力的技能型人才。
其岗位的主要业务范围是: 依据需求文档及设计文档,编写测试用例;依据测试用例执行测试,完成产品的手工测试、集成测试与系统测试,反馈跟踪产品BUG及用例缺陷;根据测试计划,搭建测试环境; 测试工具/系统的研究和应用。软件测试专业可考取的证书:计算机等级考试四级软件测试工程师、ISTQB国际软件测试工程师(初级)。
3.2 一站式人才培养模式内容
经过多年的实践与总结,构建了以政府为引导,实行与培训机构联姻、与企业合作的一站式人才培养模式,完成毕业即就业的角色转换。
政府引导:以我院牵头成立的烟台市服务外包职教集团为平台,与当地政府、服务外包园区建立框架性战略合作关系,根据政府出台的优惠政策,提供的各种信息资源,通过学院与企业及产业园区的互动,形成校企双方人力资源的可持续性需求供给与输出。由政府协调当地服务外包企业,与学院建立紧密型的人才培养合作联盟,联盟单位派员参与专业建设指导、人才培养,并作为学院学生的实习实训基地。
一站式培养的关键是学院通过与知名培训机构、与企业实行三方合作,通过协议等约定方式,按企业所需的人才数量与规格,采用“联合招生、委托培养、定向就业”的形式,实现人才培养的直接输入与对口输出。“联合招生”指三方共同协商确定学生来源、招生数量、招生方案;“委托培养”指招收的学员全部在学校学习、在培训机构实训,培养目标受企业委托进行;“定向就业”指学生培养结束经过综合考核评定,并参加由工信部全国注册服务外包专业认证中心设置的面向服务外包产业的专业认证项目,获得工信部相关技术等级认证,根据认证等级,由合作企业正式录用为公司员工,安排到合适的岗位就业,不能直接就业的可推荐安置到合作联盟单位或由合作企业、培训机构推荐到其他单位就业。
3.3 课程建设及实施路径
课程体系的构建和课程建设是人才培养中的关键因素。服务外包软件测试专业课程集服务外包知识课程群、信息技术专业课程群、软件测试专业课程群、管理课程、专业外语课程于一体,着力培养复合型软件测试外包人才。按照课程之间的逻辑顺序和人才职业成长规律安排课程。实施中采用分段式安排,教学团队专兼教师合作授课。部分课程安排成为选修课,学生可以根据自己的就业意向和兴趣选择学习。图1为主要课程框架体系图及实施路径。
技能储备阶段构建完整的工程知识体系。利用案例和项目强化学生对于各种知识点的理解,并通过实践训练达到一定熟练程度与规范性,完成基本知识的积累及基本技能的训练。校企各有侧重地承担教学任务,通用专业基础课程及其相关实践课程由校内专任教师承担。专业核心课程及相关实训由企业人员承担。时间安排为第一到第四个学期。
技能提升阶段主要是针对外包项目的仿真实训,建立学生的项目工程思想,根据项目分工完成工作任务,使学生充分演练项目中的多种职业角色,具备企业要求的基本职业素质。该阶段的教学任务主要由企业人员在校内实训基地完成,专任教师辅助教学。时间安排为第五学期的前半学期,同时开展软件测试等级认证培训。
岗位实训阶段,由仿真项目实训逐步向真实产业外包项目实训转变。此阶段根据学生的水平,将学生编入各项目组,参与到真实项目。通过完成外包项目,感知企业文化,熟悉工作环境,接受企业的管理,达到实战训练的岗位能力要求。这一阶段的培养任务主要由企业人员承担,专任教师协助辅导,企业工程师担任项目经理。该阶段的实训任务主要在培训机构完成,时间安排为第五学期下半学期。本阶段完成软件测试技术等级认证。
顶岗实习阶段是根据学生的职业特长及发展需求,安排学生到合作企业实习,根据学生的水平及实习企业的用人计划,成绩优秀者可直接与企业签约就业,学生的实践情况由专人跟踪帮助。对不合适的岗位,重新安排到其他企业实习就业。根据企业岗位标准的不同,时间安排为第六学期。
3.4 实行任务驱动、工学一体教学模式
树立学习就是工作,工作就是学习的理念,采用任务驱动、工学一体教学模式开展教学活动。精选典型项目或案例作为教学内容,每一项目安排1~5个不等的任务,每一任务有针对性地包括一个或几个必须掌握的知识点,学生的学习过程就是完成任务的过程,按照自主学习,仿真应用、工程应用的流程,完成学习任务。在自主学习阶段,先给学生布置任务,然后指导学生展开自主学习,根据班级人数情况,灵活选择以学生2~4人为一组的形式,进行咨询、讨论、制定工作计划、提出任务实施方案,再指导学生进行仿真设计和测试,最后在实训基地中指导学生进行工学结合实训。每一任务完成情况选2~3组有代表性的作品进行展示与答辩,然后由其他组学生进行评价,提出意见与建议。不同组完成同样的任务可能采用的方法不同。每一个项目完成后,提交项目报告,根据日常表现、实训情况、创新能力、报告的完整性与准确性,给出评价结果。
4 结束语
软件测试是一个新兴职业,其具有的就业竞争小、薪资水平高、职业发展多元化的特点,吸引越来越多的人从事软件测试工作,这为软件测试人才的培养提供了很好的发展机遇。学院与企业、培训机构合作,共同培养软件测试人才可以实现毕业即就业的一站式人才培养。这种模式,把学院的教育资源、生源优势,培训机构的教学内容,企业的实训优势及就业优势结合在一起,实现强强联合、三方共赢。但在合作中,合作的各方要加强沟通,通过一定的机制规范和约束合作行为,并通过一定的保障措施确保合作持续长久。
基金项目:中国高等职业技术教育研究会“十二五”规划项目 《基于校企合作服务外包人才培养模式的探索和实践》编号:GZYGH2011014 主持人:姜永华
参考文献
关键词:计算机;软件测试;面临问题;对策
随着信息技术不断发展进步,软件规模越来越大,复杂性也随之提升,要想保证软件质量,就要加强对软件测试工作的重视。我国软件测试工作起步相对较晚,还存在很多问题,需要不断完善优化,才能提高计算机软件行业的竞争能力。软件开发行业发展前景广阔,受到各大企业的青睐,加强对软件开发技术的研发,而计算机软件测试则是其中的重要内容,对软件质量有着直接的影响。本文先介绍软件测试工作的重要性,再总结软件测试面临的问题,提出合理的对策。
1软件测试工作的重要性
软件测试工作的重要性主要体现在两大方面:一是软件测试可以提升开发效率。在软件工程项目进行过程中,一般将质量、进度作为核心评价指标,很多项目负责人都会尝试各种先进方法技术,以期望可以加快开发进度,一旦出现返工现象,会对项目进度产生巨大影响,这就突出软件测试重要地位,可以通过合理的测试发现存在的问题,加快开发进度的同时避免出现返工现象。软件测试工作拥有很多测试项目,其中包括集成测试、单元测试,可以第一时间发现软件存在的BUG及实际问题,这样就可以提供充足的修改时间,减少开发工作量。二是软件测试可以保障软件质量。在开展计算机软件项目时,关注进度的同时还要关注质量,通过常规的软件测试,可以发现系统问题,但是无法发现系统BUG,这时候就需要展开集成测试,可以让模块之间拥有更高的集成度,减少软件错误。
2计算机软件测试面临的问题
2.1软件测试自动化程度较低。
近些年,计算机软件行业处于一个高速发展的状态,也出现了自动化测试工具,但是这类工具本身技术不够成熟,存在较多的缺陷,需要花费大量的成本费用,操作难度相对更高,无法实现快速拓展等,没有达到大规模应用的要求,仅仅运用到一些软件测试的特殊工作,在实际的软件测试过程中,还需要大量的测试人员,特别是在嵌入式测试这一部分内容中,基本无法使用自动化测试软件,需要人工校对测试,由于信息技术发展较为迅速,为计算机软件开发提供充足的技术支持,软件开发水平越来越高,软件工程规模也在随之扩张,但是现阶段软件测试仍然以人工测试为主,一方面会提高开发成本,导致人工费用占比不断扩大,另一方面无法保证最终的软件质量,人工测试很难达到零差错,影响软件质量,同时降低测试效率,增加项目运行风险。
2.2测试工作介入时间较晚。
正常情况下,软件开发和测试呈现出相辅相成的关系,两者相互搭配完成软件开发工作,才能得到高质量的计算机软件。为了充分发挥软件测试的作用,就要控制好开发时间和测试时间,但是就调查发现,很多企业将全部精力都放在软件开发工作上,缺乏对软件测试环节的重视,经常将测试工作安排在较后的位置,导致软件测试介入时间过晚,无法实现对软件质量的科学管控。由于软件测试介入时间较晚的原因,在开发后期才发现软件存在的缺陷问题,只能展开返工,增加不必要的花费。
2.3测试方案与案例的利用率较低。
现阶段,软件测试管理体系还不够完善,存在较多的漏洞,在软件开发过程中,无法提供专用的测试案例库,在后续的软件测试期间,经常出现重复利用测试案例的现象,这就会造成不小的资源浪费。同时,现阶段没有完善的测试程序归档规范,在测试结束后没有按照要求完成归档任务,导致测试案例库得不到及时更新,只保存一些较为老旧的案例,无法发挥实质作用。在软件测试的后期阶段,即使发现与前期相似的测试工作,也没有可以参考借鉴的案例,还需要重复测试工作,投入更多的时间精力,浪费资源的同时还会耽误开发进度。
2.4缺乏稳定高效的测试团队。
在软件开发过程中,软件测试成本占比较高,可以达到总开发成本的30%左右,需要一支专业的测试团队,才能顺利在规定时间内完成测试任务。但是现阶段项目开发期间过于重视开发,对于软件测试较为忽视,缺乏足够的专业测试人员。在此同时,项目给软件测试拨下的经费相对较少,甚至出现经费短缺的现象,导致软件测试工作进展缓慢,逐渐发展成形式化工作。除此之外,由于忽视软件测试的原因,无法培养出足够的软件测试后备力量,很多测试人员长时间重复同样的测试工作,无法提升综合能力,掌握的技能相对较为单一。可以看出,现阶段大部分的软件开发项目都缺少专业的测试团队,测试人员掌握的专业技能较少,无法保证软对的稳定性,这些都是急需解决的问题。
3计算机软件测试工作的解决对策
3.1灵活使用软件测试方法。
(1)强化自动化测试手段。虽然现阶段自动化测试手段较少,但是仍然有一些较为成熟的手段,在软件测试期间应该加强对这类手段的重视,选择技术更为成熟的自动化测试手段。在选择测试方法时,要展开综合性的评估,考虑到软件开发项目的实际情况,选择最适合的一种,才能达到预计的测试效果,加快开发进度的同时提高软件质量。在选择自动化测试手段时,考虑到系统架构、数据库平台、软件规模、复杂程度等,选择适合的评估项,才能选择最适合的开发工具,一方面可以提高测试质量,另一方面可以加快测试效率。同时,还要加强对软件自动化测试手段的研发,结合市场需求推出新型产品,弥补市场上的空白。(2)学习借鉴及自主研发。在软件测试过程中,要加强对先进案例的学习,国外一些发达国家的软件开发工作起步更早,已经积累了丰富的开发及测试经验,研发出完善的软件自动化测试工具,要加强对宝贵经验的借鉴,结合我国软件开发测试的实际情况,取其精华去其糟粕,不断提高我国软件测试水平。同时,企业要可以加强对软件自动化测试工具的研发,要考虑到自身的规模和需求,通过自主研发的方式,获得的测试工具更符合企业需求,可以大幅度提高测试效率。
3.2构建软件测试标准及软件测试体系。
一是标准化软件测试规范及体系。明确规定软件测试工作流程、团队建设模式、软件测试不同阶段工作内容以及预期取得的成果,统一化软件测试工作文档格式及内容,对软件测试工作的不同阶段内容制定可行性较高的标准体系。二是构建软件测试案例库。持续完善软件测试案例库,有助于提升软件测试案例的利用率,能够尽早确定系统问题的来源,缩短问题分析及问题解决方案制定所需要的时间,避免此类问题再次发生,真正提升软件测试效率,保障软件质量。
3.3软件项目更加重视测试管理工作。
可以从两方面入手:一是加强沟通交流。就调查发现,很多软件项目的测试工作介入时间相对较晚,并且开发人员和测试人员基本不存在沟通交流,为了避免上述问题,就要加强沟通交流,这样可以让测试人员更快了解测试内容,快速找到软件存在的问题点,与同事分享发现的问题,将所有的问题归类处理,录入案例库,设计人员在受到测试报告以后,可以与测试人员沟通交流,共同讨论出一个科学的解决方案,这样可以加快开发进度,提高软件质量。二是加强测试团队的建设。软件测试面临的最大的问题就是“重开发轻测试”,甚至出现测试资金不足的现象,为此要摒弃这种不合理的思想,加强对测试人员的合理培训,引进一些先进的测试技术及方法,不断提高测试人员综合素养,掌握更多的专业测试技能。同时,还要注意改善薪酬福利结构,让测试人员感受到公司的重视,全身全意投入工作。
关键词:案例教学法;软件测试过程;测试文档
目前我国软件测试人才严重匮乏,人才缺口达到30万,造成这一结果的主要原因是国内软件测试人才教育相对滞后[1]。但实际上,很多学习了软件测试课程的学生却找不到工作,业内专家称之为人才的“结构性过剩”[2],而滞后的原因不仅仅是教育机构开设软件测试课程时间的滞后,主要是教学内容和教学效果与实际需要的差距产生的滞后。外包开发行业快速发展,对人才在代码和文档方面的规范性、技能和工具的熟练程度要求越来越高[2],而这些要求正是软件测试人才教育的薄弱环节。因此,如何顺应市场需求,培养出企业所需的软件测试人员,成为软件测试课程改革创新的目标。
1教学现状
随着软件测试人员市场需求的不断增加,各大高校、职业技术学校及IT培训机构纷纷开设了“软件测试”课程。然而,在师资方面,讲授软件测试课程的教师多数是由软件工程的教师承担,这些主讲教师能很好地讲解软件测试理论和介绍软件测试方法,但缺乏软件测试的系统案例和软件测试经验[3]。在理论教材方面,虽然各种软件测试的教材相继出版发行,但教材中技术实现的内容较多,对常用的软件测试文档书写介绍很少,且缺乏文档模板;对自动化测试工具,基本也是简略介绍其功能。在实验教材方面,目前还没有配套的软件测试实验教材问世,在教学过程中基本是任课教师自行设计实验教学内容。对于实践性较强的课程,主讲教师如果没有大量的实际项目开发经验作为支撑,就难于用恰当的实例来解释相关理论,更难设计出实用有效的实验内容,导致在校学习的知识与实际工作脱节的现象。要顺应软件测试人才市场的需求,软件测试课程的教学必须面向企业的实际需要,使学生能学到实际工作中常用的技能,以“经验者”的身份进入人才市场参与竞争。
2改革和创新
笔者以日企工程经验为依据,针对软件测试课程教学中缺乏系统案例、重技术实现轻文档工作、测试工具流于产品说明等问题[4],设计了一套软件测试实验,帮助学生利用软件测试技术搭建测试环境;根据测试规格说明书进行测试;练习测试用例的设计、执行与跟踪并高效地进行回归测试;熟悉常用测试文档的书写方法;掌握如何保存测试用例和有效的测试结果;准确地书写缺陷报告;通过思考题的方式启发学生利用计算机技术开发自动化测试工具。
2.1教学进度的调整
计算机课程的实验教学,通常和理论课同步或延迟几周进行。对于软件测试这门课程的实验教学,如果与理论课同步进行,前期的实验内容安排就缺乏理论支持,如果比理论课迟后几次,即在讲述白盒测试和黑盒测试后开始实验教学,就可以将各种测试方法融入实验中进行,但由于软件测试过程及技术、测试文档书写相关内容还未讲述,实验内容的安排显得孤立,没有整体感。为了让学生体验软件测试在实际工作环境中的实施过程,将理论课讲述的知识有机地融入到完整的案例中进行实验,就需要系统地学习完理论知识后,再结合实际案例系统地进行实验。
我们打破传统的周四学时,即“理论2+实验2”的排课模式,将一个学期分为理论上半学期,实验下半学期,上半学期周四学时用于结合案例进行理论教学,下半学期周四学时针对理论课讲述的案例进行实验教学,以便学生能够模拟实际工作环境进行系统的软件测试实验。
2.2实验教学的创新
2.2.1实验素材的创新
现有的软件测试教材,通常会在最后章节给出一个案例,针对该案例利用教材上介绍的各种测试方法有针对性地进行测试用例设计。但是教材对案例的描述基本只限于项目背景介绍、子系统介绍、子系统功能分析、子系统性能及可用性要求方面的资料,基本没有提供可运行案例系统的代码,同时也缺乏必要的供测试使用的文档。实际工作中,软件测试过程与软件设计周期有相互对应的关系,软件测试过程中的单元测试、集成测试、系统测试、验收测试分别对应软件设计中的详细设计、概要设计、系统设计和需求分析[5]。因此,要完成一个系统的较完整测试过程,不仅要提供被测系统的完整代码及数据,还必须提供全套的设计文档。
我们以一个开发完整的以C/S模式实现的“小区物业管理系统”和B/S模式实现的“图书馆管理系统”作为测试案例,在理论课教学中主要以“小区物业管理系统”作为案例进行理论知识的讲解,与网站测试和面向对象测试相关的内容以“图书馆管理系统”作为案例进行讲解。这样,进行完理论教学,学生对案例系统的功能基本了解。在实验教学中,我们提供给学生在测试中需要的代码、开发规范、需求分析、系统设计书、概要设计书、详细设计书,具备了以上资料,便可模拟实际工作模式,将理论教学中讲述的测试策略和方法、测试文档的书写方法运用到该案例的测试实验中。
2.2.2实验内容的创新
由于实验教学学时和学生能力的限制,在本实验的设计中,我们主要针对初、中级测试工程师级别设计实验内容,这些实验内容就是同学们踏上测试岗位要动手干的实际工作。而针对高级测试工程师和测试管理者担当的工作,比如测试计划的制作、各种设计的验证、测试评估和总结,需要经历初中级测试工程师的实战,积累大量经验才能承担,这一部分内容,我们只在理论教学中简单讲述,不在实验教学中安排实验内容。
我们设计了表1所示的实验内容,本设计旨在让学生经过实验的训练,以“经验者”的角色参与求职应聘,因此,我们以项目管理者培养“新人”的方式来安排实验内容和进度。虽然软件测试贯穿于软件生命周期的全过程,但对于刚毕业的大学生来说,从人才培养角度出发,项目管理者通常是按照以下流程在工作过程中培养人才:单纯性测试的实施、测试设计(书写测试规格说明书)、测试环境搭建等,按照单元测试、集成测试、系统测试的顺序循序渐进地深入测试工作,因此我们按如下进度设计了以下实验内容,并在提供的素材中人为地制造缺陷,以便学生发现缺陷、分析缺陷、修改缺陷。
通过上述8个实验,让学生牢固掌握单元测试和集成测试的设计和实现方法,了解常用测试工具的使用方法,同时对系统测试实施有基本了解。严格经过这8个实验的训练,学生基本能以初级测试工程师的身份投入到测试工作中。