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

本课程为普通高校师生(多层次)与社会学习者而开设。课程既为在校学生获得软件测试专业技能较高的‘入门’水平或继续深造奠基,也为软件测试从业者提升职业能力服务。

本课程定位于软件测试/软件开发工程师,为学习培养从事软件测试各项工作而应具备的专业技能而设立具体目标。

课程涵盖软件测试基础理论、经典测试技术、各软件领域应用场景的测试策略及测试过程,以及测试工程的实践共五个部分。课程内容覆盖面广、层次多样、内涵丰富,并尽力体现‘与时俱进’。

课程突出MOOC特点,依据软件测试内在联系与逻辑层次进行整体构建,并有机组合为知识点、知识链及相关的技能训练为单元课程或模块内容。课程资源具备‘独立、联系、颗粒’的特征,使学习者既能保持系统性的递进方式,又能采取自主灵活的选择性模式进行学习,‘量体裁衣,各取所需’。课程以期最大化地实现‘能学、好学、资源共享’的课程设计理念。

本课程教学策略及学习路径大体为:讲解阐述、分析引导、方法解析、技术实践及认知巩固5个步骤,阅文档、观视频、作习题、交流互动和测验考试均为保证学有所获的必要环节。

    本课程本期安排17周(76学时,仅线上)


授课目标
  • 深入认知软件测试基础知识理论

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

  • 熟悉掌握软件测试工程应用策略

  • 精心引导软件测试专业技能培养


课程大纲
预备知识

若具备学习本课程相关知识与必要技能基础,将有助于减少学习的困难与障碍。通过课前、课中及课后对其的弥补,会有利于降低学习的难度。

该课程预备知识大体要求:1. 软件系统、程序设计(Java/C、脚本语言等)、软件工程、Web / 移动APP开发、信息安全等领域知识技能;2. 与软件测试相关联的应用场景及业务背景知识。

参考资料

1. 主配教材 《软件测试教程(第3版)》,贺平,电子工业出版社,北京 2014

   ISBN 978-7-121-23818-5  涵盖课程内容约 55%。

   附助教材《软件测试  一个软件工艺师的方法(原书第4版)》 [美]  保罗 C.乔根森  著

   机械工业出版社,背景,2019   ISBN 978-7-111-58131-4  

  (主配) (附助)

2. 课程教学运用多种测试工具/平台,限于某些测试工具的商品属性,遗憾不能提供,将尽可能给出具有同类功能的开源测试工具或网络链接。

3. 课程涉及的其他参考文献、技术资料,将尽在课程文档中列出。

常见问题

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

A1这个问题涉及面较大,问题很多。这里仅作一般性回答,建议学习者可从以下六个方面把握:

   * 为获得较好学习成效,学习软件测试需具备软件技术领域的基本知识或技能(主要为实践能力)。在课前有一定基础和认知预备:软件工程、操作系统、程序设计(编程技能)、Web前端技术/移动APP开发、信息安全等。实践证明,在有限的学时制约下,这个基本要求是必要的。毕竟本课程的起点和教学要求都较高。

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

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

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

   * 软件测试,知名释义,包含着实践的成分。它是由一项项的活动与过程组成,并同时具有工程的特征。所以,软件业界是按工程方法去考虑问题或策划解决方案的。本课程设计了一些测试工程(或部分片段)的内容,如测试需求、测试设计、测试实施和测试管理等诸多影响工程的问题与项目。掌握和运用工程方法,需要必须的不断实践与体会,并提升认知水平(包含知识、技术、策略、规范、经验和总结等),从而为解决实际问题建立科学测试思维的过程,遵循技术标准和工程规范的约束,以此制定测试策略及实施方案。实践是深入专业学习与技能发展的奠基。

   * 课程涉及的测试实例或项目(案例),是基于学习活动与实践体验的‘载体’,完成各种实践是很重要的。我们学习的终极目标与‘高境界’是并真正具备了‘举一反三’能力,而非仅仅收获了‘西康牦牛只认一个毡房’的结果。

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

A2针对每类测试,目前业界基本上都能找到相应的测试工具或平台。本课程教学演示限于各种制约使用了某(特定)测试工具,重点是理解原理和掌握方法(论)。当然,学习者也可用其他同类工具来完成学习及实践。实际上现今可获取的测试工具不限于本课程的所列。

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

A3:大约按50分钟/每课时来设计学习活动(内容),每周发布视频、文档、作业和讨论等教学资源。依据学习者的现有不同基础和掌握程度,学习并消化这些内容可能需1.5-2 倍的课时。课时进度是一个大致的安排,学习者可自行时间管理。

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

A4ISTQB证书是全球120多个国家认可的最具权威的软件测试专业资格证书,在全球范围软件测试领域和业界通行,有初、高、专家级等多个级别及多个测试领域的专项认证,并在不断发展与更新。本课程涵盖了ISTQB-L(基础级)认证的大部分内容,并在应用和实践方面远超出了'基础级证书'的范畴。完成本课程,会有一个良好的认证基础。这里,须提醒准备认证者,获取基础级认证是申请所有更高级别或专项认证的必备条件。