本课程为高校和社会学习者而设置,培养软件测试工程师、软件设计开发工程师,准备从事软件测试领域技术、管理各项测试专业工作的从业者。课程既为在校生达到软件测试专业领域‘入门’水平和储备专业深造基础,也为软件测试从业者提升职业能力。
软件测试是软件工程、软件技术等专业的重要课程。课程内容主要包含:软件测试知识概要;经典的软件测试技术原理、方法及应用;软件测试的策略及过程;软件测试管理;软件测试工程实践(组件测试、功能测试、非功能测试、安全测试等);软件测试技术在云计算、移动应用等领域的应用。
课程突出MOOC学习的特点,将理论知识体系与技术应用划分为若干知识点、技能点,体现学习资源的‘颗粒化’和相对‘独立性’,这样,既能系统性学习,也可选择性学习,达到灵活、多样,‘各取所需’,以期最大化实现“能学”和资源共享的课程规划设计理念。
课程学习主要有理论讲解、分析阐述、知识巩固和技术实践,还包括学习讨论、互动交流及学习成果检验考核。
课程64学时(不含课外学时)。
课程学习将联系和运用软件系统及程序设计(Java、C、脚本)等知识和编程能力,较多涉及软件工程、数据库系统、Web应用、移动应用、网络与信息安全、大数据、云计算等领域,同时,也常常关联测试项目的业务知识与流程等。因此,学习本课程对软件工程、软件技术专业相关课程的知识具备是必要的,这将减少学习障碍,以获得更好学习效果。当然,通过课前、课中及课后的有效补充,同样可达良好学习成效的目标。
通过视频学习,研读文档,单元测试、互评作业、讨论交流、课程考试,达到课程考核要求,可获课程主讲教师签名颁发的合格证书或优秀证书。
课程学习总成绩由各项评分汇总得出:
单元测验 45/100
单元作业(含测试实践) 5/100
课程考试 40/100
交流讨论 10/100
课程总分达到60分以上者,可获得本课程合格证书,课程总分达到80分以上者,可获得本课程优秀证书。
1. 《软件测试教程(第3版)》,贺平,电子工业出版社,北京,2014.8 ISBN 978-7-121-23818-5
配套本课程的主教材。该书内容包含本课程约70%的教学内容,建议使用。
2.课程学习及实践会用到多种软件测试工具(平台),限于商业化问题,将尽可能列出具同类功能和属性的开源工具。
3.课程学习内容相关参考资料和技术文献,或给出推荐书目与文献资料。
Q1:学习者常常会问,软件测试课程怎样学和怎样才能学得好 ?
A1:这个问题比较大,涉及面广,建议从以下几方面把握:
-学习软件测试需具备软件技术领域的一定基本知识和技能(实践能力)。最好能在学习课程前作以下知识准备:软件工程、操作系统、互联网、移动应用、信息安全等领域的相关知识。若具备程序设计与编程方面的知识和技能,学习的收效将更好。
-软件测试实际上是一项很有创造性的工作。它并不单纯体现为重复性特点,所有知识领会与技术掌握都需要良好的逻辑思维、分析辨识、以及组织规划能力,这在课程学习后期及未来实际工作的成长中尤为重要。
-目前软件测试基本都涉及采用自动化测试策略运行。仅学会使用测试工具的操作就以为可完成任务,实际上是很幼稚、并不真切了解测试本质的不正确想法。自动化测试及工具的完美运用需要人的操控,而运用于测试问题分析、测试对象的确立、测试规划和测试用例的设计(场景)都与测试思维、测试知识和测试技术息息相关。自动化测试的真正掌握并有效运用,并非易事。这在课程学习中一定会有深切感受。
-软件测试本质是采用各种技术措施和方法对软件存在的缺陷、错误进行探寻、分析的过程,同时也对软件质量特性进行度量的行为。面对成千上万、甚至几百万行程序组成的软件系统,要找出其中存在的各种缺陷、错误,绝非易事。测试的技术原理很相似于医生给病人看病诊断、发现病情和寻求病因,而对软件质量的度量概念又很类似于人的体检过程。通过各种医学技术手段和方法,对预定检查科目逐项检查和测定(试),最终得出综合的体检报告,指出哪些方面存在病症或不良体症,哪些生理指标超标等等。这里,体检过程不仅要涉及各种医疗检测仪器的掌握使用,而更需要汇集医学的各科专业知识。我们有时似认为医生们操作这些检测(试)仪器并不很复杂、也不难掌握,但要从检测结果中发现病症问题就没有那么简单了。软件测试同样需要各种测试工具,仅仅简单会用测试工具则是远远不够的,仍将解决不了什么实际测试问题。因此,学习和运用好测试技术,不仅要‘知其然’,更要‘知其所以然’。深入知识学习和系统掌握方法对解决工程测试实际问题是完全必要的,这是重要的基础。
-软件测试,知名释义,归根到底,是需要实践的学科。测试是一项项活动或过程,已具备工程特征,并按照工程的方法论去考虑问题和策划实际过程。所以,本课程会有大量测试工程的内容,如工程技术规范,工程需求、工程设计、工程实施和工程管理等问题,诸多影响工程的因素。掌握工程方法,需要实践和体会,并反复思考来理解和认识理论,从而为解决实际问题建立基础,自觉思维和遵守技术规范和工程标准,形成测试思维,并以工程方法制定策略。这不仅能参与和解决实际测试问题,也对今后深入学习和发展奠定了基础。
-学习者应明确本课程所介绍的每个实例或项目,基本都为学习活动与工程体验的问题载体。我们追求“举一反三”的能力,而不仅有“西康的牦牛,只认一个毡房”的肤浅认识。这个目标将需要通过认真读书(视听),勤于思考,反复实践(完成作业和项目),参加课程测验,才可能达到。
Q2:需要使用特定软件测试工具才能完成课程的作业与项目任务吗 ?
A2:当前针对每类测试,基本上都能找到相应测试工具或支撑平台。本课程演示会使用一些(特定的)测试工具,但学习者也可运用其他测试工具来完成课程作业和实践项目。这些工具包括但不限于本课程所列举和应用的。
Q3:每周会发布多少学习资源,需要花多少时间学习和掌握 ?
A3:大约按照40分钟/每课时设计学习活动,相当于面授课堂的50分钟。发布的教学资源(视频、文档等)一般会达到或超出这个范围。传统面授,可能需回顾以往授课,解析问题,或即时性交互等,这都需要消耗时间,而线上课程这些环节都不复存在。因此,学习本课程需1.5-2倍的课时安排,这里包括听讲视频、看资料、完成作业、实践活动及复习环节,每周 约5-6小时的负荷,需要学习者进行时间管理。
Q4:学完课程是否可达到某种软件测试专业资格认证的水平,如 ISQTB(国际软件测试认证)证书?
A4:ISTQB证书是目前全球120多个国家认可的最具权威的软件测试工程师资格证书,有初、高、专家级等多个级别和测试领域专项的认证,并不断更新,‘与时俱进’,可以说认证在全球范围内软件测试专业领域通行。本课程内容涵盖了ISTQB-L(基础级)证书的绝大部分内容,并在测试应用和实践方面则远超出‘基础级证书’的内涵要求。基础级认证也是申请ISTQB所有更高级别认证的必要条件。