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

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

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

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

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

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

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

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

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

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

课程大纲

第1单元   软件测试概述 (6)

1.1 软件测试产生与演进

1.2 软件测试基本原理

1.3 软件测试基本模式

1.4 软件测试模型分析

1.5 软件生命周期与测试流程

1.6 单元测验与作业

第2单元 软件测试经典技术 (20)

2.1 静态测试概要

2.2 静态测试-评审

2.3 静态测试-数据流分析

2.4 静态测试-控制流分析

2.5 软件复杂度度量

2.6 基于结构的测试-逻辑覆盖测试法

2.7 基于结构的测试-路径测试

2.8 基于规格说明的测试-等价类划分法

2.9 基于规格说明的测试-边界值分析

2.10基于规格说明的测试-因果图与决策表法

2.11基于规格说明的测试-配对测试法

2.12基于规格说明的测试-分类树方法

2.13基于规格说明的测试-状态转换测试法

2.14基于规格说明的测试-用例/场景测试和动态分析

2.15 单元测验与作业(含工程实践)

第3单元 软件测试策略与过程 1-自动化测试/Web测试/GUI测试  (6)

3.1  自动化测试概要-几个基本问题

3.2  软件应用类型测试-基于Web应用系统的测试

3.3  软件应用类型测试-基于GUI(图形用户界面)的测试

3.4  单元测试与作业(含工程实践)

第4单元 软件测试策略与过程 2-基于质量特性的测试    (6)

4.1  基于软件质量特性的测试-软件质量体系

4.2  基于软件质量特性的测试-功能测试

4.3  基于软件质量特性的测试-非功能测试

4.4  单元测验与作业(含工程实践)

第5单元 软件测试策略与过程 3-安全测试  (6)

5.1  基于质量特性的测试- 安全性测试

5.2  强制发掘安全漏洞的模糊测试

5.3  Web应用安全性测试项目实践

5.4  单元测验与作业(含工程实践)

第6单元 软件测试策略与过程 4-基于经验的测试/基于风险的测试  (4)

6.1 基于经验的测试

6.2 基于风险的测试

6.3 单元测验与作业

第7单元 软件测试策略与过程 5-基于移动APP的测试  (6)

7.1 移动APP测试

7.2 单元测验与作业(含工程实践)

第8单元 软件测试策略与过程 6-基于云服务的测试/基于模型的测试  (4)  

8.1 基于云服务的测试

8.2 基于模型的测试

8.3 单元测验与作业

第9单元 软件测试管理  (6)

9.1 软件测试管理-框架管理

9.2 软件测试管理-组织管理

9.3 软件测试管理-计划管理

9.4 软件测试管理-过程管理

9.5 软件测试管理-缺陷管理

9.6 软件测试管理-配置管理

9.7 单元测验与作业

课程结业考试

预备知识

课程学习将联系和运用软件系统及程序设计(Java、C、脚本)、软件工程、数据库系统、Web应用、移动开发、网络安全、云计算等领域课程知识和技能,并会项目关联业务知识或流程。具备学习本课程而相关的专业知识将减少学习的困难或障碍以获更好学习成果,当然通过课前、课中及课后的有效知识弥补及技能衔接,同样可达到良好的学习效果。

证书要求

通过视频学习,文本研读,作业完成、单元测验、讨论交流及课程考试6个环节,并达到课程考核要求可获课程主讲教师签名颁发的课程合格证书或优秀证书

课程学习总成绩由各项评分汇总得出,比例如下:

单元测验与作业       50/100

课程考试                40/100

交流讨论                10/100

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

参考资料

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所有更高级别认证的必须条件。