课程详情
课程评价
spContent=软件是人类的智力产品,从需求分析、构思创建、设计实现、运行维护到终结使用,具有生命周期的特征和质量的属性。软件质量保证最主要的策略与方法是持续地开展测试活动。软件测试工程师被誉为‘软件医生’。本课程系统学习软件测试的主要理论、经典技术和在各领域工程应用。欢迎加入本课程的学习!
—— 课程团队
课程概述

本课程为普通高校师生和社会各类学习者而设置。课程目标定位于培养软件测试工程师与软件设计开发工程师,为从事软件测试领域各项工作而应具备的测试专业技能。课程既为在校生达到软件测试领域较高专业的‘入门’水平或者储备继续深入学习的基础,也为软件测试从业者提升职业能力服务。

    软件测试是高校软件工程、软件技术等专业的重要课程。本课程主要内容包含:软件测试基础理论与知识;经典软件测试技术原理与方法;软件测试技术在各软件领域的策略及过程;软件测试管理概要;软件测试的工程实践(本课程主要有组件测试、系统测试及安全测试等)共五个部分。

    本课程突出MOOC特点,将测试知识体系与技术应用进行层次逻辑划分,并组合为若干相关联的知识点与技能点的单元学习模块,体现了软件测试课程资源的‘颗粒化’和相对的‘独立性’,使得课程既可保持系统性学习,也能进行选择性学习,灵活多样和各取所需,以期最大化地实现‘能学、好学’及资源充分共享的课程设计理念。

    本课程教学方法与学习路径主要为通过讲解阐述、方法分析、技术实践与知识巩固(观视频、阅文档、做习题、互动交流和测验考试)等过程及活动实现。

    本课程将随软件测试技术及应用的新发展,内容将不断更新和补充。

    课程安排14周(60-64学时,不含课外)

授课目标
  • 深入认知和理解软件测试主要理论知识

  • 全面学习软件测试经典技术和基本方法

  • 熟练掌握软件测试策略和工程应用实践

  • 培养软件测试专业技能和满足工作需求

课程大纲
预备知识

课程学习将联系和运用软件系统及程序设计(Java/C、各类脚本)、软件工程、Web应用、移动开发及软件信息(网络)安全等领域的课程知识和相关技能,测试项目所关联的业务知识、流程。具备学习本课程相关专业知识将会减少学习困难或障碍,以获更好学习成果。通过课前、课中及课后知识与相关技能弥补,同样可获良好学习成绩。

参考资料

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

      为配套本课程的主教材,该书涵盖了本课程约70%的内容,建议选用。

 

2.课程学习及工程实践将会使用到多种软件测试工具(或平台),限于有些测试工具的商品属性,将尽 可能列出具同类功能的开源测试工具。

3.课程教学内容涉及到的其他参考文献或技术资料,将在课程进行中一并列出。

常见问题

Q1:学习者常常会问,软件测试课程应当怎样学和怎样才能学得好 ?

A1:这个问题涉及面较大,问题也会很多。这里,作为一般性的解答,建议从以下几方面把握:

   * 为获好的学习效果,学习软件测试需具备软件技术领域的一定基本知识或技能(主要为实践能力)。最好能在课前有以下知识预备:软件工程、操作系统、互联网技术、移动APP开发、信息安全等和程序设计、编程技能。

   * 软件测试是一项创造性工作,并非单纯体现简单、重复特点。其所有知识领会与技术运用掌握需要良好的逻辑思维、分析辨识、设计规划及组织实施的能力。这对课程学习后期及未来工作尤为重要。

   * 目前,软件测试都会涉及或采用自动化的测试策略,其能力要求较高,仅以会使用某几个测试工具的操作就能完成测试工作或任务,实际是很幼稚的想法,是对测试本质的不正确、不完整的认识。自动化测试的完美运用既需要人的娴熟操控,更需要对测试问题分析、测试对象确立、测试规划、测试用例(场景)设计,以及测试的执行。自动化测试的娴熟掌握和运用,都与测试思维、测试理解和测试技术息息相关,需不断实践,才可掌握其方略。

   * 软件测试本质是采用各种技术措施和有效方法对软件存在的缺陷、错误进行探寻、分析的过程,同时也是对软件质量的特性进行度量的行为活动。面对复杂的软件系统,要找出其中各种缺陷、错误,绝非易事。软件测试的原理相似于医生给患者检查诊断、发现病情和寻求病因。通过各种医学技术手段和方法,对预定检查科目逐项检查和测定(测试),最终得出综合检查报告,指出哪些方面存在病症或不良体症,哪些生化指标超标了等等。体检过程不仅涉及多种医疗检测仪器掌握使用,更需汇集运用医学各科知识。我们有时似认为医生操作检测(试)仪器并不复杂、也不难掌握,但要从检测结果中发现病症问题就并没有那么简单了。同理,软件测试同样需要各种工具,仅仅简单会用这些工具远远不够,还解决不了什么实际问题。学习运用好测试方法策略,不仅要‘知其然’,更要‘知其所以然’。所以,深入理解专业的测试知识和系统掌握方法(论)对解决实际问题则是完全必须。这是其重要的基础。

    * 软件测试,知名释义,归根到底是需要实践的技术。测试是一项项活动与过程,同时具备工程的特征,应按照工程方法论去考虑测试问题或策划实际过程。本课程设计有大量测试工程的内容,如测试需求、测试设计、测试实施和测试管理等诸多影响工程的问题和因素。掌握和运用工程方法,需不断实践和体会,并反思理解认识理论(这里包含知识、技术、策略、规则、经验和总结),从而为解决实际问题建立基础,科学思维、遵照技术规范和工程标准,形成正确的测试思维,并以工程方法论制定策略。这不仅有能力参与和解决实际测试问题,也为进一步深入专业学习和技能发展奠定基础。

    * 应当明确课程所涉及的测试实例或项目,基本上是为学习的过程与实践体验的载体。学习的高境界是追求“举一反三”能力,而非成就“西康牦牛,只认一个毡房”的肤浅水平。这个目标需通过细听读,勤思考,多实践,方可达到目的。

Q2:需要使用特定软件测试工具才能完成课程作业与项目实践吗

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

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

A3:大约按40分钟/每课时设计学习活动(相当课堂面授50分钟)。每周发布教学资源(视频、文档、作业和讨论等)。线上课程可高效运用时间,可有更多内容和更大的体量。因此,学习消化课程内容需1.5-2倍的课时,学习者须进行自我时间管理。

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

A4ISTQB证书是全球120多个国家认可的最具权威的软件测试工程师资格证书,有初、高、专家级等多个级别和测试领域专项的认证,并不断更新。认证在全球范围软件测试专业领域里通行。本课程涵盖了ISTQB-L(基础级)证书的几乎全部认证内容,在应用和实践方面并超出基础级证书的范围。基础级认证也是申请ISTQB所有更高级别认证的必要条件。