课程详情
课程评价
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基础级认证是申请所有更高级别认证的必要条件。