软件测试方法和技术实践

spContent=质量是永恒的主题,软件测试则是软件质量保证的重要手段,也是软件研发中最主要工作之一。本课程重点讲授软件测试概念、方法、技术、管理及其实践。学生能够掌握系统的软件测试知识体系,并具备功能测试、性能测试和安全性测试等基本技能,能够独立完成测试设计、执行(包括自动化)和报告等实际工作。

1.特色:

1)主讲老师在软件测试领域工业界的业界实际工作经验;

2)采用“问题驱动式教学”方式,从解决问题出发,引出知识点和解决办法;

3)借助案例讲解,理论和实践联系比较好;

4)依从软件开发过程的业界实践往前推进,使学生学以致用,能够很快适应公司的工作环境;

5)软件测试也是一门实践性很强的课程,强调“做中学,学中做”,重视实验辅导,加强测试工具的使用;

6)课堂以分析问题、解决问题为主,课前学生适当预习知识,课后学生要完成基于问题的练习;

7)使学生能够系统地掌握软件测试的知识,更重要的使学生掌握一个合格测试工程师所需的技能;

8)覆盖从单元测试、功能测试、性能测试到安全性测试、易用性测试等各个方面;

9)教学内容能和业界技术同步,例如探索式测试、敏捷测试等新兴内容也会成为教学的重点;

10)会邀请业界的工程师参与课程的教学与答疑;

11)有测试主讲老师签名的课程证书。

受众:在校软件工程、计算机等专业大学生、在职的测试工程师、希望成为测试工程师的有志青年、大学该课程的年轻教师。

1)优秀证书:最终成绩超过80分(optional:处在本学期被评定的学生前20.0%);

2)合格证书:最终成绩超过60分(optional:处在本学期被评定的学生前20.1-70.0%);

3)需要自己申请,并缴纳证书工本费:168元

《C++程序设计》、《Java程序设计》、《软件工程》或《软件工程导论》

教材:

1)朱少民等,《软件测试方法和技术(第3版)》,清华大学出版社,2014

2)朱少民,《全程软件测试(第2版)》,电子工业出版社,2014

模块/问题域

编号

(分)

主题/要解决的问题

(独立视频)

技能/解决问题

知识点/认知

开篇/序曲

(90分钟)

第1周

(10月20日~

10月27日)

0.1

9

课程介绍

全面了解本课程的特点、内容等

课程特点

课程的考核方式

0.2

29

究竟什么是软件测试?

全面理解“软件测试”

在不同的场景能更好发挥测试的价值

软件测试的价值

测试与调试等区别

缺陷、错误、失效

内部质量、外部质量和使用质量

0.3

15

为什么要学软件测试?

培养质量意识

重视软件测试

缺陷带来的危害

软件测试是不可缺少的活动

0.4

9.5

学这门课的收益?

不局限于课程学习,更注重自己综合能力的训练

SWEBOK测试知识体系

有哪些基本的测试技能

五大测试流派

批判性思维

0.5

如何学好这门课?

理论学习和课外实验有机地结合起来

同步、实践、互动与自学

testzilla.org

0.6

测试达人话测试

进一步理解测试的价值

更清楚如何成长为优秀的开发/测试工程师

0.7

3

两位老师的介绍

了解老师,更好地和老师互动

1.单元测试

(9个主题,

215分钟)

第2-3周

(10月25日~

11月10日)

1.1

我是个很棒的程序员,我的代码就不需要测了吗?

理解测试的必要性

人总是容易犯错误的

错误、缺陷、失效

编译与测试

测试与调试

缺陷发现越早、成本越低

1.2

20

给你一段简单代码,知道如何测吗?

能针对代码实现100%语句覆盖、判定覆盖的测试

语句覆盖

分支覆盖/判定覆盖

验证点

测试用例

结构化(白盒)测试方法

1.3

IF判断语句再复杂一些,如何测?

能针对代码实现条件覆盖、判定/条件覆盖、条件组合覆盖的测试

条件覆盖

判定/条件覆盖

条件组合覆盖

MCDC-修正判定条件覆盖

1.4

25

“||”写错了怎么都没发现?

能够根据代码规范完成对代码的评审

代码评审

代码规范

质量模型中的内部质量

走查、同行评审

静态测试与动态测试

广义测试概念

1.5

可以自动检查代码吗?

会使用Checkstyle、FindBugs、SourceMonitor等工具

代码复杂度度量

代码分析工具

代码静态检查工具

1.6

面对一个函数,如何测试?

会执行单元测试

桩程序

驱动程序

单元测试

1.7

绕过数据库,如何进行测试?

能够构建mockobject、fakeobject

Mock

Fake

Dummy

1.8

30

JUnit是单元测试神器吗?

如何使用JUnit对Java代码进行单元测试

xUnit测试框架

JUnit构成

JUnit使用

1.9

还有哪些单元测试工具吗?

了解其它编程语言的代码测试工具

HttpUnit、CppUnit、

PhpUnit、MSVTS等

2.持续集成测试

(3个主题,

117分钟)

第4~5周

(11月10日~

11月17日)

2.1

为什么要持续集成?

了解不同的集成模式

持续集成(CI)的益处

CI要做好哪几件事

集成测试

持续集成及其测试

持续交付

2.2

35

如何搭建CI环境?

能够搭建CI的环境

Jenkins、CruiseControl

SVN/Git

Ant、Maven

2.3

27

如何自动验证Build?

能够开发自动部署脚本

设置cronjob

自动部署

BVT-构建验证测试

自动化测试

2.4

如何更上一层楼?

搭建自动化测试框架

对录制的脚本进行优化

自动化测试框架

数据驱动脚本

关键字驱动脚本

3.功能测试

(12个主题,

270分钟)

第5-7周

(11月17日~

12月6日)

3.1

面对一个系统可以胡乱测试一通吗?

基于上下文的思维能力

扮演用户角色进行测试的能力

功能测试

错误猜测法

基于使用的测试方法

基于应用场景的测试方法

基于需求的测试方法(概念)

黑盒测试方法

软件外部质量

3.2

不了解系统结构就没有测试方法了吗?

能运用相应方法设计测试用例

能结合两种方法一起使用

等价类划分方法(EP)

边界值分析方法(BVA)

数据驱动测试方法(概念)

基于输入域的测试方法(概念)

3.3

能优化测试用例

决策表方法

3.4

自动贩卖机的程序又如何测试?

能画出因果图

能将因果图转化为决策表

因果图方法

3.5

一个在线保险销售系统如何测试?

能正确运用合适方法优化测试组合

使用1-2个pair-wise方法的工具

两两组合(pair-wise)测试

正交实验法

3.6

这个地方没改,怎么也出错了?

基本能够运用回归测试策略

回归缺陷

回归测试

回归测试策略

基于风险的测试策略

3.7

功能测试前要做什么准备?

能够积极参与需求评审

在需求评审中能发挥一定的作用

需求评审

用户故事评审

3.8

如何写出规范的测试用例?

能够书写比较规范的测试用例

测试用例各种属性

测试环境

测试数据

前置条件与后置条件

期望结果

TestSuite–测试集

3.9

可以不写测试用例吗?

基于ET循环(设计、执行、分析、学习)进行测试

理解什么时候采用ET比较合适

基于上下文驱动的测试方法

探索式测试(ET)

基于脚本的测试(ST)

敏捷测试与传统测试(概念)

测试依赖于开发

3.10

能让ET更有章法进行吗?

基本掌握SBTNM管理方法

能够完成sessionsheet

SBTM(Session-BasedTestManagement)

3.11

喜欢做重复的测试吗?

基于Selenium进行web功能的测试

回归测试自动化

UI功能自动化测试工具

其它功能测试工具

3.12

如何针对移动App进行自动化测试?

会使用1-2个比较流行的AndroidApp测试工具

移动应用测试的特点

云测试

众测

4.性能测试

80分钟)

第8周

(12月7日~

12月13日)

4.1

能够评审系统性能指标

知道什么适合需要做性能测试

软件非功能特性

系统性能及其指标

性能测试

设计评审

负载模式

负载测试

4.2

如何做web的性能测试?

能够使用JMeter完成基本的性能测试

性能测试过程

JMeter使用

4.3

还想了解更多的性能测试吗?

能够区分稳定性测试和性能测试

性能验证测试、部署规划测试、容量测试

压力测试

稳定性测试

5.安全性测试

第9周

(12月14日~

12月20日)

5.1

听说过“白帽黑客”吗?

能够识别软件产品的安全等级

针对不同的安全等级,知道要做哪些安全性测试

软件产品安全性等级

安全性功能

安全漏洞

安全性测试

5.2

Web有哪些安全漏洞?

了解web安全漏洞模式

OWASP最近列出的十大安全威胁

OWASPTestingGuide

5.3

如何进行web安全性测试

会使用WebScarab等工具进行安全性渗透测试

安全性功能测试

渗透测试

Web安全性测试工具

Web安全性测试方法

6.其它非功能性测试

(2个主题,

40分钟)

第10周

(12月21日~

12月26日)

6.1

怎么不兼容了?

掌握数据兼容性测试方法

掌握系统兼容性测试方法

兼容性测试

数据兼容及其测试

系统兼容及其测试

系统迁移

数据迁移

6.2

这个系统太不好用了!

能够基于用户的体验进行测试

用户体验

使用质量

易用性测试

7.验收测试

35分钟)

7.1

上线前还需要做什么测试?

理解生产环境和研发环境的差异而能正确地完成验收测试

验收测试

生产环境和研发环境的差异

敏捷开发中验收测试

7.2

可以进行在线测试吗?

识别要监控的参数

软件在线测试的能力

在线测试(TiP)

α测试与β测试

主动测试与被动测试

8.测试管理

(4个主题,

125分钟)

第11~12周

(12月27日~

元月9日,2016)

8.1

如何更好地掌控测试全局?

完整地理解测试体系能理解当前所处的阶段协助团队做好测试管理和测试改进

测试生命周期,如W模型/TMap测试级别测试类型过程改进,如TMMi/TPI

8.2

预则立,如何做好测试计划呢?

基本能够写一个完整的测试计划

能够识别测试的主要风险

能够确定测试项的优先级

测试计划

测试需求分析

测试项

测试优先级

测试估算

测试风险

测试策略

8.3

如何将一个Bug报告清楚?

能够准确、清楚地报告缺陷

Bug的基本描述

Bug严重性和优先级

缺陷与质量的关系

8.4

缺陷如何跟踪与管理?

能够协助开发团队跟踪缺陷

通过缺陷分析,帮助开发预防缺陷

缺陷状态

缺陷生命周期

缺陷度量

缺陷分析

测试报告

9.总结

45分钟)

第13周

(元月10日~

元月16日)

考试

9.1

总结

能处理好测试周围的环境客观辩证地理解测试方式和方法能够因地制宜采用正确的测试方式和方法

静态测试与动态测试黑盒测试与白盒测试手工测试与自动化测试ET与ST传统测试与敏捷测试开发与测试关系测试与QA的关系

9.2

100

1)LisaCrispin等,孙伟峰等译,敏捷软件测试:测试人员与敏捷团队的实践指南,清华大学出版社,2010

2)GlenfordJ.Myers,张晓明等译,《软件测试的艺术》第3版,机械工业出版社,2013

3)AlanPageken等,张奭等译,《微软的软件测试之道》,机械工业出版社,2009

4)JamesW.,《Google软件测试之道》,人民邮电出版社,2013

5)StephenVance,《优质代码:软件测试的原则、实践与模式》,人民邮电出版社,2015

6)AndrewHunt,《单元测试之道java版——使用junit》,电子工业出版社,2005

7)王磊等,《Windows软件测试探秘》,电子工业出版社,2013

8)赵卓,《Selenium自动化测试指南》,人民邮电出版社,2013

9)段念,《软件性能测试过程详解与案例剖析(第2版)》,清华大学出版社,2012

10)PacoHope,傅鑫译,《Web安全测试》,清华大学出版社,2010

11)史亮等,《探索式测试实践之路》,电子工业出版社,2012

12)ElisabethHendrickson,徐毅译,《探索吧!深入理解探索式软件测试》,机械工业出版社,2014

13)杨莉等,《软件自动化测试——入门、进阶与实战》,电子工业出版社,2012

14)Graham,D.等,朱少民等译,《自动化测试最佳实践:来自全球的经典自动化测试案例解析》,机械工业出版社,2013

15)肖利琼,软件测试之魂:核心测试设计精解,电子工业出版社,2013

16)MattWynne等,《Cucumber:行为驱动开发指南》,人民邮电出版社,2013

17)......

国内软件测试界的领军人物和资深专家,出版了十多部著作,包括《全程软件测试》、《软件测试方法和技术》等。曾任思科网迅(中国)QA高级总监,

THE END
1.2024版软件测试最新系统教程从基础入门开始学习测试工程师速成在2024最新版的软件测试教程中,学习目标被定义为掌握软件测试的基本概念、测试类型、测试用例设计、测试管理工具以及性能和GUI测试等关键领域。此外,还包括了对白盒测试、UI自动化、接口测试等高级主题的深入理解。 以下详细解析每个核心学习目标: 1. 软件测试基本概念 https://www.94cto.com/search/content/id/127842
2.软件测试基础教程概念篇城下秋草软件测试工程师 难度入门 时长3小时 2分 学习人数111740 综合评分9.57 简介:系统介绍什么是软件测试,从软件测试的定义、原则以及测试阶段、测试模式、测试手段和测试类型分别详细说明软件测试中的各种测试概念,帮助你深入、清晰地理解软件测试。 第1章 课程介绍 https://www.imooc.com/learn/700
3.全网最全最新软件测试基础入门教程什么是测试用例 ? 测试用例:是为测试项目而设计的执行文档 测试用例的作用 防止漏测 实施测试的标准 用例设计编写格式-2023-5-13 正确的、能成功的就是P0 课堂例子: 我写的: 老师写的: 软件测试全栈系列课程 https://edu.csdn.net/course/detail/30898 https://blog.csdn.net/m0_37449634/article/details/136294692
4.软件测试入门Coursera由University of Minnesota 提供。完成本课程后,您将了解软件测试的基本原则和流程。您将积极创建测试用例,并使用自动化测试工具运行它们。完成本课程后,您将能够 - 描述验证和确认之间的区别 - 解释测试的目标 - 免费注册。https://www.coursera.org/learn/introduction-software-testing
5.软件性能测试零基础入门视频课程共90课时性能测试课程如何更快的入门性能测试,如何从功能测试人员过渡到性能测试人员,本套课程将针对以上总总问题进行阐述和剖析。带领有志成为性能测试工程师的广大测试人员走向性能测试之路。 课程简介: 课程目标: 随着软件测试行业的崛起,性能测试也随之水涨船高。如何更快的入门性能测试,如何从功能测试人员过渡到性能测试人员,相信是很多https://edu.51cto.com/course/course_id-2218.html
6.LoadRunner操作入门课程资源软件测试该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本,最后生成相关的报告以及分析图点赞(0) 踩踩(0) 反馈 所需:1 积分 电信网络下载 含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度 2024-12-18 12:37:57 积分:1 https://www.coder100.com/index/index/content/id/2726223
7.软件测试职业规划书(通用11篇)软件测试职业规划书 1 软件测试职业发展的各个阶段: 这是国外公司的职位分布,国内一些走在前列的公司,也差不多在国内可能要快的多。 发上来勉励一下自己,当然,自己的路还要自己去走! 初级测试工程师 刚入门的拥有科学学位的个人或具有一些手工测试经验的个人。 https://www.gdyjs.com/jiuye/zhiyeguihua/191170.html
8.软件测试机构,推荐亲身经历,不是托。软件测试学习攻略:软件测试机构,推荐亲身经历,不是托。 软件测试学习攻略:选择合适的培训机构,让你的职业发展之路更加顺畅!随着互联网和计算机软件行业的发展,软件测试人才的需求日益增长。软件测试不仅入门门槛相对较低,而且薪资待遇高,发展前景广阔,被誉为未 - 编程测试小尚https://www.douyin.com/note/7397332968236191030
9.软件测试视频教程原互联网 Java 架构师中国计算机学会专业会员 CSIA中国软件行业协会专家委员会委员 Oracle Java 认证专家 TiDB开发者官方认证讲师高校大学生毕业设计校外导师教程下载 隔壁老王 千锋软件测试总监 中航集团测试主管多家公司测试项目负责人“全栈软件测试”教学体系奠基人“蜜锋班”测试系列课程主理人创立业内首个“全栈软件https://video.mobiletrain.org/rjcs/
10.济南博为峰软件测试主页软件测试培训长期免费试听课:软件测试、数据分析、超全栈开发等入门训练营课程试听 4.8很好 查看4条评价> 机构简介: 博为峰已先后为7000多家国内外企业输送软件测试骨干及软件技术精英,未来还将根据产业变迁和技术革新开设更多的紧缺人才实训项目:帮助更多的应届毕业生和职场新人找到满意,实现职业梦想;帮助更多的用人单位轻松招到可用https://www.xuemanfen.cn/school/jn/10422/
11.什么是软件测试?零基础入门知识要点总结篇。5分钟带你快速了解什么是软件测试? 软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。 通俗来讲,“软件测试”就是软件测试人员验证软件是否满足用户的需求。最终交付的产品是否和用户本来的需求一致,如果不一致,需要找https://www.jianshu.com/p/1d1802271935
12.广州软件测试培训班广州软件测试培训机构软件测试线下实战培训班 简介:理解产品的功能要求,并对其进行测试,检查软件有没有缺陷,测试软件是否具有稳定性、安全性、易 校区分布:天河区 其他 4.3/5分 379人看过0人预约 详询 返54元 查看详情 软件测试基础入门培训课程 简介:软件测试是用来**软件质量、提升用户体验、降低软件运维成本的一种技术手段。理https://www.91goodschool.com/kc-gz-rjcs/
13.软件测试必读的经典书籍软件开发最课程为您提供与软件测试必读的经典书籍相关的文章内容,出版社: 机械工业出版社。我所见过的最好最经典的软件测试入门书,有一个别名叫“软件测试的本质”。这本书可以作为夯实测试基础的教材,建议阅读。建议先看过上面介绍至少三本基础类的,并有了一些实际测试的经验https://aiqicha.baidu.com/qifuknowledge/detail?id=10100252550
14.测试开发实战训练营,软件测试精品教程(视频+资料155G)本套课程测试开发实战训练营(霍格沃兹测试开发),实战驱动全面提升软件测试与测试开发技能,课程共分为14个大的章节,文件大小共计155.69G,文章底部附下载地址。 本课程主要包括软件测试基础、Linux和数据库基础、Web功能测试技术实战、Python基础、JAVA基础、接口自动化测试、Web自动化测试、APP自动化测试、Docker容器化技术https://www.vipc6.com/16388.html
15.全网最牛软件测试学习路线图(含学习路线图+学习阶段+学习视频+小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法,并应用到实际中。 小编整理了一些零基础入门软件测试到精通全套自学资料,还有不少工具和视频的【https://www.1000bd.com/Article/Index/905049
16.软件测试面试题柠檬班自动化测试软件测试培训柠檬班是全国领先的在线软件测试培训机构,坚持“创新教学、用心教学、专业实用”的教学理念,提供功能测试、性能测试、自动化测试、测试开发等领域构筑“针对性”的教学优势,免费为学员提供更加优质、实用、专业的教学课程。http://www.lemonban.com/