广州番禺职业技术学院

软件测试

图片
课程概述

    本课程规划设计为基于培养软件测试工程师、软件设计开发工程师,以及准备从事软件测试领域的技术、管理岗位和完成各项工作任务的专业职业者而设置。该课程也同样适于高校的软件测试课程学习。课程学习结业的合格者将达到进入软件测试专业领域‘门槛’的水平,并储备相应的专业深造基础及职业能力的提升。

    软件测试课程是软件类专业的重要课程。该课程试图理论和实践教学活动的密切结合,相辅相成,并突出工程教育和方法论的特点。课程安排为60学时(不含建议的课外学时)。

    课程内容大体上分为四个部分:软件测试基础理论知识和概要;经典的软件测试技术原理、方法与应用;软件测试的策略及过程;软件测试项目的工程实践(组件测试、功能测试、非功能测试、安全性测试等);软件测试技术在云计算测试、移动应用测试等方面的进展和应用。

    课程教学活动主要为理论讲解、分析阐述、学习巩固和知识深入,软件测试的规划设计、测试技术方法的应用、测试工程的实践、学习讨论和互动交流,以及学习成果的考核等。

授课目标
本课程的授课目标:深入了解和认识软件测试知识;全面学习和掌握软件测试技术;软件测试技术的应用和工程实践;塑造专业技能和满足测试职业工作的需求。
证书要求

通过视频学习,完成测试、实践活动、讨论交流、作业及考试,达到课程要求,可获课程主讲教师签名颁发的合格证书或秀证书。课程学习总成绩由各项评分汇总得出:

   单元测验                       30/100

   单元作业(含测试项目实践)- 互评   20/100

   课程考试                       40/100

   交流讨论                       10/100

         课程总分达到60分以上者,可获得本课程合格证书,课程总分达到80分以上者,可获得本课程优秀证书。

预备知识

       软件测试是一门综合性较强的专业课程。本课程学习涉及软件系统及程序设计(Java或C、脚本编写等)等基础知识和编程能力,以及软件工程、数据库系统、Web应用系统、移动应用、计算机网络与信息安全等领域基本知识,或测试项目相关业务知识与流程等。因此,学习本课程对软件工程、软件技术专业相关课程的知识掌握是必要的。这将会减少学习的障碍,并获得更好的学习成效。当然,通过课前、课中及课后的有效补充,同样可获得良好学习效果的目的。

授课大纲

一、引言

    软件测试是软件工程内涵的重要组成。软件测试的实质是通过各种策略、技术与方法,寻找软件中存在的缺陷(错误、故障)以及对软件系统(产品)的质量进行度量,以保障软件系统的可靠与功效。软件测试存在于软件产品的生命周期。

     软件测试是一项具有创造性的工作,所需专业知识与技术能力,通常需要系统化学习和能力训练培养,本课程针对培养软件测试专业领域的技术与管理人才的职业需求而开设。

二、课程性质、目的与任务

    软件测试是软件类专业的重要专业课程。本课程将主要学习软件测试的基本理论知识、基本技术方法和基本工程实践。通过课程内容组织与贯彻,将认识理解软件测试的主要理论与技术,掌握基本的工程方法并能运用于测试的实际工作,承担和完成相应的测试任务。同时,也为深入学习更深入的软件测试理论和掌握更复杂的测试技术而奠定坚实基础。

三、主要教学内容

    本课程包含软件测试基础理论、基本知识和测试工程的主流技术,有关软件测试行业技术标准与规范。课程内容系统全面,体系完整,逻辑清晰,注重方法论,以期通过知识点的学习,形成系统的知识链,通过技术分析及应用的掌握,形成相应的工程能力。

    教学内容主要有7个方面:

    1.软件测试基本概念与相关基础知识理论、软件质量的概念与度量标准体系;

    2.软件生命周期各层级测试活动及测试内容、测试过程,测试管理的概念与机制;

    3.经典软件测试技术。静态测试原理方法、工程应用;动态测试原理方法、工程应用;

    4.软件自动化测试及应用。自动化测试方法原理,自动化测试工具(平台)的测试应用;

    5.软件测试管理策略方法与过程;

    6.软件测试工程实践,包含组件测试的实施过程,功能测试与非功能测试的实施过程,安全性测试的实施过程;移动应用的测试实施过程等;

    7.软件测试新技术的发展趋势及成果应用。

四、课程学习要求

    本课程贯彻课堂理论教学(知识与技术原理)与课下实践教学(工程与技术运用)紧密结合的教学理念和教学策略。具有成效的学习,表现在能正确认识与理解软件测试的基本概念与基本要素,软件质量概念与标准度量方法,软件生命周期各层级的测试类别、方法及过程;熟悉各类测试的过程及测试准则;把握静态测试与动态测试的适用范围和常用技术,并能够分析和解决测试工程中的各项具体问题;熟悉并正确认识软件测试的主要国际标准和技术规范,并在测试实践中遵循和运用。

    完成本课程学习所要求的各环节活动及任务,分享视频,提交作业,交流讨论,认真实践,积极考评。

参考资料

1. 《软件测试教程(第3版)》,贺平,电子工业出版社,北京,2014.8   ISBN 978-7-121-23818-5

该书内容包含和涉及了本课程的绝大部分教学内容,也是配套本课程的主要教材,建议学习者使用。

2.该课程的学习及实践当中,将会涉及到多种软件测试工具或测试平台,限于(商业化工具平台)软件知识产权等问题,在教学活动中将尽可能列出同类功能、性质的开源软件(工具)的相关链接,并便方便获取、学习和测试应用。

3.本课程教学的内容,目前均有相关的参考资料和技术文献,因涉及的种类很多,再此不一一列举。或给出推荐书目和参考文献资料。

常见问题

Q1:软件测试课程怎样学,学得好?

A1:这个问题比较大,涉及面广,建议从以下几方面把握。

     (1)学习软件测试需要具备软件技术领域的一些基本知识和基本技能(实践应用能力)。即,最好能在学习课程前具有以下知识准备:软件工程基本知识,操作系统基本知识及应用,数据库系统、计算机网络、移动应用开发、信息安全领域等方面的知识。还有,比较重要的是,具有程序设计与编程方面的知识和实践体验。

   (2)软件测试实际上是一项很有创造性的工作,不单纯体现为重复性的特点。所有知识的领会与技术的掌握都需要良好的逻辑思维、分析辨识和组织规划的能力,这在课程学习后期及未来实际工作成长中尤为显得重要。

   (3)有人说,目前软件测试大部分都采用自动化测试工具运行,会使用工具操作就可以完成工作任务了。实际上这是很幼稚的、并不真切了解软件测试本质的不正确想法。自动化测试(含工具)的完美运用是需要人为操控的,而运用于测试问题分析、测试对象确立、测试规划、测试用例设计(场景)等都与基本测试知识和测试技术息息相关。自动化测试真正掌握并能有效运用,并非易事,你在本课程的学习中一定会有深切的感受。

   (4)软件测试实质是采用各种技术措施和方法对软件存在的缺陷、错误进行探寻、分析的过程,同时也是对软件质量的特性进行度量的行为。面对成千上万、几百万、甚至上千万行程序组成的软件系统,要找出其中存在各种问题,绝非易事。软件测试的技术原理与医生给病人诊断、发现病情和寻求病因很为相似,而其质量度量的概念又很类似于人的体检过程。通过各种医学技术手段、方法对预定的检查科目逐项检查测定,最终得出一个综合体检报告,指出哪些方面存在病症或不良体症,哪些生理指标超标等等。这里,体检的过程不仅要涉及各种医疗检测仪器的掌握使用,而更需要医学的各科专业知识。我们有时似看医生门操作这些检测仪器并不很复杂、不难掌握,但要从检测结果中发现问题就不那么简单了。软件测试同样需要各种测试工具,因此,仅仅简单会用测试工具是远远不够的,还解决不了什么实际项目中的测试问题。学习和运用好软件测试技术,不仅要‘知其然’,更要‘知其所以然’。深入知识学习和系统的方法掌握,对解决工程测试问题是完全必要的,这是重要的基础。

   (5)软件测试,知名释义,归根到底,是需要实践的学科。测试是一项活动或过程,目前它已越来愈具备工程的特征,并按照工程的方法论去考虑问题和策划实际的过程。所以,本课程会有大量测试工程的内容,如,工程技术规范,工程需求问题、工程设计问题、工程实施问题和工程管理问题等诸多影响工程的因素。掌握工程方法,需要实践和体会,并反复思考,理解和认识测试理论,从而为解决实际问题建立基础,自觉思维和遵守技术规范和工程标准。认识和形成对测试的思维,并能以工程的方法制定策略,不仅能参与和解决实际测试问题,也对今后深入学习和发展奠定了基础。

   (6)学习者应明确,本课程所介绍的每个实例或项目,基本上都为学习活动与工程体验过程的问题载体,学习本课程,我们追求的是“举一反三”的能力,而不是仅有“西康的牦牛,只认一个毡房”的肤浅认识。这个目标将需要通过认真读书(视听),勤于思考,反复实践(完成作业和项目)才可能达到。  

Q2:需要安装特定的软件测试工具才能完成该课程的作业与项目任务吗?

A2:针对每类测试,目前基本上都能找到相应的软件测试工具或支撑平台。课程演示会使用一些(特定)测试工具,但学习者完全可运用其他测试工具来完成课程作业和实践项目。这些工具包括但并不限于本课程所应用和列举。

Q3:每周会发布多少学习的资源,需要花多少时间来学习和掌握?

A3:按照40分钟/每课程左右设计教学活动。所发布教学资源(视频、文档等)一般会达到或超出这个限定范围。通常面授时,可能需要回顾上次授课内容,解答学生反馈问题,或即时性的问答等,这些过程都需要消耗时间。而线上课程,这些环节都不存在了。本课程教学设计,一般需1.5-2倍的课前、课后时间,这里包括了预习、完成作业、项目实践及复习环节,所以,学习本课程,每周约需 6-8小时的时间安排及管理。

Q4:学习完该课程是否可达到某项软件测试专业资格认证的水平,如 ISQTB(国际软件测试工程师)证书?

A4:ISTQB证书是目前全球100多个国家认可的最具权威的软件测试工程师资格证书,有初、高、专家(级)多个认证的级别,是对全球范围内从事软件测试专业领域岗位及工作的一个很通识的认证。本课程教学内容基本涵盖了ISTQB-L(基础级)证书的绝大部分内容,而在测试实践(项目)方面则已远远超出了‘基础级证书’的内涵及要求。另外,想要达到ISTQB所有级别的专业认证,均需要以获得‘基础级认证‘为申请认证的必备条件。

授课老师
贺平

贺平

教授

分享