1 of 49

�软件测试�有关“怪兽”的课程

作者:Kari Kakkonen

翻译:周震漪

5.2.2021

版本 1.0

© Dragons Out Oy

1

11.2.2022

2 of 49

关于此演示文档的说明

2

© Dragons Out Oy

3 of 49

关于此演示文档的说明

  • 本演示( presentation )将IT信息技术、编码和软件测试的现实情况与童话故事中的世界进行比较。
  • 本演示旨在支持学校的1或2节课教学。
  • 本演示文稿已获得创作共用许可,即您可自由使用于非商业的目的。
  • 本演示文稿将会不断更新,其最新版本位置如下:
  • 如有改进意见可发送至:
    • feedback@dragonsout.com
  • 让我们一起为培养下一代优秀软件测试员而努力!

© Dragons Out Oy

3

11.2.2022

《滚蛋吧!怪兽》– Kari Kakkonen 编写的软件测试怪兽课程的PPT已获得国际授权的 “创造共同署名 – 非商业性-没有衍生品4.0 执照”。

4 of 49

关于书籍《滚蛋吧!怪兽》

  • 此演示PPT是基于《滚蛋吧!怪兽》书籍的内容和角色。
  • 书籍可以作为学习的有效补充,但在使用本演示PPT教学中并不一定需要使用此书籍。
  • 作者是 Kari Kakkonen
  • 插图制作 Adrienn Széll
  • 中文翻译 周震漪
  • 文字和插图版权归 “Dragons Out Oy”
  • 更多信息: www.dragonsout.com

© Dragons Out Oy

4

5 of 49

关于练习

  • 绘画练习
    • 您需要准备好纸和笔
    • 您可以将您的绘画拍照并上传到服务器 https://padlet.com
      • 教师需要创建一个“挂板”来分享课程。
      • 互动是本课程的一个有趣的部分。
    • 您需要一部手机用来拍照。
  • 测试练习
    • 您需要准备自己的手机或平板电脑,以及任何您想测试的应用软件app。
      • 您也可以与朋友共同使用手机,两人结对进行练习。
  • 每个练习可按5分钟的时长去计划,但您也可以随心所欲地设定您的练习时间。

© Dragons Out Oy

5

11.2.2022

6 of 49

怪兽 / 缺陷

6

© Dragons Out Oy

7 of 49

什么是软件?

  • 软件无处不在,游戏、网店或汽车转向系统中都有软件,就像童话世界里到处都有城堡和村庄。
  • 软件还可以控制设备运行。
  • 软件也称为程序,虽然事实上软件是由很多程序组成。

© Dragons Out Oy

7

11.2.2022

软件 = 计算机代码,它能帮助人们去做某些事,例如玩游戏等,软件同时也称软件产品。

8 of 49

什么是缺陷?

  • 每个软件都可能会有缺陷,因为犯错误是人的天性(软件是由人开发的)。
  • 缺陷造成软件的使用更加困难,就像在童话故事中怪兽骚扰城堡及其居民一样。
  • 软件中的缺陷是故障,必须清除掉,最好是在软件用户正式使用软件并发现缺陷之前。
  • 缺陷经常被称为 bug。

© Dragons Out Oy

8

11.2.2022

缺陷 = 软件代码中导致软件故障的问题,人们有时称之为错误,尽管严格来说,错误是导致代码缺陷的人为行为。

9 of 49

练习 5-15 分钟:

设计您自己的缺陷 –� 画出您自己的怪兽

// 您所需要的:

纸和笔

// 任务

1 想想您所遇到过的一个缺陷。

  • 写下缺陷的名称并对其进行简短描述。

2 想象一个对应的怪兽。

  • 写下怪兽的特性。
  • 如果缺陷是严重的,则怪兽就是大的等等。

3 画出怪兽

  • 最重要的是贯彻您关于怪兽如何代表缺陷的想法。
  • 不需要追求完美的画面。

4 按照约定向他人展示图片。

  • 例如,使用挂板(白板)。

9

© Dragons Out Oy

10 of 49

测试是什么?�软件开发是什么?

10

© Dragons Out Oy

11 of 49

软件开发是什么?

  • 您需要确定,您想要软件做什么?
  • 您必须编码去实现它。
  • 您必须测试软件是如何工作的。
  • 在一个童话故事中,您必须在一个村庄的周围设计和构建城墙,同时要打败来骚扰的怪兽。

© Dragons Out Oy

11

11.2.2022

软件开发 = 为了使软件能工作所需的所有可能的任务,这些任务包括定义需求、编码、以及测试。

12 of 49

测试是什么?

  • 您必须找出缺陷,以便于修复缺陷。
  • 测试活动就是寻找并发现缺陷,这些缺陷就像在童话故事中您站在城墙上看到的怪兽。
  • 作为测试的结果,您有时会发现缺陷。
  • 通过使用软件来进行的测试实际上并没有发现缺陷,而是发现了由代码中的缺陷引起的软件失效。

© Dragons Out Oy

12

11.2.2022

测试 = 以不同的顺序,以不同的方法,用不同的值来尝试、检查或测试,是否有些东西能工作,或工作的效果如何。

13 of 49

练习 5-15 分钟:

设计您自己的软件 –� 画出您自己的城堡

// 您所需要的

纸和笔

// 任务

1 想想您所使用过的一个软件。

  • 写下软件的名称并对其进行简短描述。
  • 写下软件是如何容忍缺陷的。

2 想象一座能抵御巨大怪兽攻击的城堡。

  • 写下城堡的特性。
  • 小,大?城墙?武器?

3 画出城堡。

  • 关键是贯彻您关于城堡是如何代表软件的想法。
  • 不需要追求完美的图画。

4 按约定向他人展示图片。

  • 例如,使用您的挂板。

13

© Dragons Out Oy

14 of 49

测试技术

  • 您可以用多种方式进行测试 – 有多种不同的测试技术。
    • 尝试正确使用软件。
    • 尝试错误使用软件。
    • 探索软件是如何工作的。
    • 观察其他人是如何使用软件的。
  • 您可以同时使用多种测试技术,就像在童话故事中的一个骑士,他不仅可以画一张地图,而且也可以询问人们在哪见过怪兽一样。

© Dragons Out Oy

14

11.2.2022

测试技术 = 是一种通过选择适当测试数量来进行测试,以达到良好覆盖的方法。 有各种各样的技术可以满足不同的要求。

15 of 49

练习 5-30 分钟:

在您手机上测试一个软件

// 您所需要的:

手机,

挂板 或

电脑

// 任务

1 选择一个软件。

  • 例如,一个游戏软件

2 从不同的角度思考软件。

  • 什么是正常的工作?
  • 什么是错误的工作?
  • 怎样算是慢?
  • 有什么奇怪的现象?

3 使用软件时记住这些角度。

  • 写下您的发现。

4 与他人共享您的发现。

  • 进行讨论!

15

© Dragons Out Oy

16 of 49

骑士 – 程序员 和 测试员

16

© Dragons Out Oy

17 of 49

谁测试的最多?

  • 通常,程序员(软件开发人员)对软件进行编码,并进行大量测试。
  • 也有专门从事测试活动的测试人员,他们能更容易发现问题。
  • 程序员和测试人员组成软件开发团队,就像在童话故事中的许多骑士。
  • 一个庞大的软件总是有一个完整的团队,而不会只有一个开发人员。

© Dragons Out Oy

17

11.2.2022

软件开发团队 = 一起开发和测试软件的一组人,简而言之,开发团队。

18 of 49

当怪兽来时,您需要…

故事

  • 斯旺莱克转过身,飞快地骑回栅栏。她向骑士和建筑大师艾丹喊道,怪兽来了。所有削尖的树干都需要紧急转移到栅栏内的洞穴里。无论谁有矛和剑,都应该立即拿来作为武器。所有可用的水都应集中倒入水桶中。然后她去城堡找黄大胡子。

解释

  • 故事中,一个村庄的人们正在修复栅栏,这时怪兽来到了村庄。类似地,大多数缺陷都是在软件开发期间,即软件发布之前在软件中发现缺陷。寻找缺陷(测试人员)和修复缺陷(编码人员)的人各尽其职。通常情况下,测试人员会发现缺陷,因此不必等待用户在发布后的使用中发现缺陷。在这个故事中,斯旺莱克是一名测试人员,她发现并确定了缺陷,即怪兽。作为一名测试人员,她这次无法自己修复缺陷,她需要程序员(开发人员)的帮助。

© Dragons Out Oy

18

19 of 49

其他测试员

19

© Dragons Out Oy

20 of 49

用户

  • 任何人都可测试,但人们还是期望程序员和测试人员进行更多的测试。
  • 软件用户可以参与测试,就像在童话故事的村庄内的村民、儿童和成年人都可以找到怪兽。
  • 这种测试类型就是验收测试。
  • 用户也可以帮助构建软件。

© Dragons Out Oy

20

测试员 = 是进行测试的人员,掌握测试技能的人员。测试员可以是全职的测试员、程序员、管理人员或用户。

21 of 49

维护团队

  • 维护团队监管着软件并保持软件的运行,他们维护着软件。
  • 为了达到此目的,他们需要测试并修复缺陷。
  • 他们还要帮助用户。
  • 维护团队通常尝试着自己管理和解决问题,但是他们有时也需要求助开发人员的帮助,就像在童话故事中的猎人也会请求骑士的帮助去杀死怪兽一样。
  • 有时运维人员也是开发团队成员(开发团队变成了DevOps团队)。

© Dragons Out Oy

21

维护团队 = 管理员,他们是在人们使用软件时负责软件操作的人员,也被称为运营团队。

22 of 49

DevOps – 持续交付

  • 在开发(DEV)团队中有运维(OPS)人员,在这种情况下的团队称为DevOps团队,就像在童话故事中,猎人有时与骑士一起工作。
  • 这种团队一直在开发和测试软件,为用户提供新的软件功能,并且同时支持软件的用户使用软件。

© Dragons Out Oy

22

11.2.2022

DevOps = 将软件开发和软件运维结合起来。同一个团队构建和维护软件。

23 of 49

产品负责人(PO)

  • 产品负责人从开发团队订购软件和系统。
  • 他们可以是特定产品的所有者或公司的管理层。
  • 他们定义了软件应该做什么,但会听取开发团队的意见,就像在童话故事中的贵族和女士从骑士那里订购城堡,并与他们一起设计。

© Dragons Out Oy

23

产品负责人 = 是提出要求开发软件产品或软件的人员,产品负责人也可以是一家公司,当然,产品负责人是这个公司的代表。

24 of 49

专家帮助

  • 开发团队并非无所不知,他们往往需要一些特殊领域的专家的支持,就像在童话故事中的智者帮助村民和骑士一样。
  • 典型的专家包括易用性、安全性和性能方面的专家,他们帮助开发团队。
  • 例如,一个易用性专家经常执行或指导易用性测试。

© Dragons Out Oy

24

易用性专家 = 是专门设计具有良好易用性信息系统的人员。

25 of 49

练习 5-15 分钟:

设计您自己的测试员 –� 画出您的骑士

// 您所需要

纸或笔

// 任务

1 思考,什么样的测试员才是一个优秀的测试员。

  • 好奇的?英俊的?快速的?有耐心的?
  • 写下这些特性。

2 考虑能找到怪兽的骑士或其它角色的特性

  • 写下骑士的特性。
  • 驾驭能力?有手段和技能?聚精会神?

3 画出骑士

  • 重要的是贯彻您关于骑士如何代表测试员的想法。不需要追求完美的画面。

4 按约定向他人展示图片

  • 例如,使用挂板。

25

© Dragons Out Oy

26 of 49

不同类型的缺陷

26

© Dragons Out Oy

27 of 49

有不同类型的缺陷

  • 您无法找到所有的缺陷,但您应该努力去找到他们。
  • 有些缺陷是很严重的,而有些很轻微,有些您能轻易去除它们,而又有些缺陷却很难去除,这就像是在童话故事中有不同种类的怪兽。
  • 严重的缺陷必须迅速修复。

© Dragons Out Oy

27

11.2.2022

严重性 = 通常按严重性对缺陷进行分类。一个缺陷是严重的,这意味着这个缺陷很昂贵或损害很大。一个缺陷也有可能不是那么严重。

28 of 49

讨厌的怪兽

  • 颜色:
  • 大小尺寸: 中等
  • 发现他的难度?: 困难
  • 赶走他的难度?: 容易
  • 是否会飞?: 不会
  • 翅膀:
  • 是否会喷火?:
  • 最喜欢的事: 吃羊羔

© Dragons Out Oy

28

11.2.2022

29 of 49

讨厌的怪兽

  • 缺陷名: 内存泄漏
  • 严重程度: 中等
  • 缺陷症状: 电脑会变慢,直到完全无法工作,然后关机
  • 缺陷的原因: 为软件应用而保留的内存在使用结束后没有被释放
  • 根本原因: 开发人员没有仔细、谨慎地释放内存。也有可能不知道怎么做,或可能遗忘了。
  • 测试活动: 在使用软件时可测量已使用的内存。如果使用的内存量一直在增加,则可能存在内存泄漏。
  • 修复: 逐行运行代码(跟踪/调试),直到找到需要修复的位置。内存可用一段适当的代码进行释放。

© Dragons Out Oy

29

11.2.2022

30 of 49

抢劫的怪兽

  • 颜色: 亮绿色或灰色
  • 大小尺寸: 从小到大都有
  • 发现他的难度?: 从容易到困难 都有
  • 赶走他的难度?: 从容易到困难 都有
  • 是否会飞?: 有些会飞,有些不会飞
  • 翅膀: 从小到大都有
  • 是否会喷火?:
  • 最喜欢的事: 抢劫食物和财宝

© Dragons Out Oy

30

11.2.2022

31 of 49

抢劫的怪兽

  • 缺陷名: 功能缺陷
  • 严重程度: 低-中-高
  • 缺陷症状: 软件没有做它应该做的事情,计算出了错误的结果,或用户看到信息的位置错误等。
  • 缺陷的原因: 功能的编码错误。
  • 根本原因: 开发者没有正确理解用户的意思,或者由于疏忽或匆忙而造成缺陷。
  • 测试活动: 正常使用软件,可根据测试人员的经验或需求定义。
  • 修复: 为了能正常工作而修改代码

© Dragons Out Oy

31

11.2.2022

32 of 49

恶毒的怪兽

  • 颜色: 黑色
  • 大小尺寸:
  • 发现他的难度?: 困难
  • 赶走他的难度?: 中等
  • 是否会飞?:
  • 翅膀: 中等
  • 是否会喷火?: 很多
  • 最喜欢的事: 窃取食物和宝藏而难以被发现

© Dragons Out Oy

32

11.2.2022

33 of 49

恶毒的怪兽

  • 缺陷名: 安全缺陷
  • 严重程度:
  • 缺陷症状: 在系统外发现软件内的信息(例如,银行卡信息)。这也可能只是软件运行的错误。
  • 缺陷的原因: 罪犯利用安全缺陷闯入系统,然后盗窃或破坏某些东西。
  • 根本原因: 开发人员没有遵循最新的安全编码原则,也许他们不了解这些原则。
  • 测试活动: 可以通过使用软件或通过安全测试查找软件中的已知漏洞。也可以通过代码评审,已知缺陷的检查表也有很大的帮助。
  • 修复: 已知的漏洞同时也有已知对应的修复,它们在代码中或系统设置中进行修复。

© Dragons Out Oy

33

11.2.2022

34 of 49

快速的怪兽

  • 颜色: 紫色
  • 大小尺寸:
  • 发现他的难度?: 困难
  • 赶走他的难度?: 困难
  • 是否会飞?:
  • 翅膀:
  • 是否会喷火?: 一点点
  • 最喜欢的事: 秘密盗窃金子

© Dragons Out Oy

34

11.2.2022

35 of 49

快速的怪兽

  • 缺陷名: 性能缺陷
  • 严重程度: 中等
  • 缺陷症状: 软件速度比应该的要慢
  • 缺陷的原因: 部分代码工作效率低下或完全错误,设置也有可能是错误的,软件有可能尝试做些不必要的事情,而这需要花费时间。
  • 根本原因: 在编码时没有考虑性能。开发人员可能不了解编码环境的所有可能性,或无法访问软件的其它部分。
  • 测试活动: 一个用户或多个用户在同一时间正常使用软件,通常会用性能测试软件进行测试,需要测量速度,也就是响应时间。
  • 修复: 修改代码中工作缓慢的部分,在修复后再次测试速度。

© Dragons Out Oy

35

11.2.2022

36 of 49

炫耀又令人痛苦的怪兽

  • 颜色: 绿色
  • 大小尺寸:
  • 发现他的难度?: 容易
  • 赶走他的难度?: 困难
  • 是否会飞?:
  • 翅膀:
  • 是否会喷火?: 很多
  • 最喜欢的事: 跟踪黄金并保护它自己的领土

© Dragons Out Oy

36

11.2.2022

37 of 49

炫耀又令人痛苦的怪兽

  • 缺陷名: 易用性
  • 严重程度:
  • 缺陷症状: 软件很难使用,但还是能运行。
  • 缺陷的原因: 编码时仅仅考虑了功能性,或许是最简便的方式。
  • 根本原因: 在设计和编码时没有考虑用户的要求,可能没有理解易用性。
  • 测试活动: 正常使用系统,收集关于哪些是容易使用,哪些是难用的意见。
  • 修复: 修改代码使其更容易使用,尊重易用性测试的结果。

© Dragons Out Oy

37

11.2.2022

38 of 49

隐秘的怪兽

  • 颜色: 棕色
  • 大小尺寸:
  • 发现他的难度?: 容易
  • 赶走他的难度?:
  • 是否会飞?: 不会
  • 翅膀:
  • 是否会喷火?: 很多
  • 最喜欢的事: 寻找容易的事物并食用

© Dragons Out Oy

38

11.2.2022

39 of 49

隐秘的怪兽

  • 缺陷名: 硬件的缺陷
  • 严重程度:
  • 缺陷症状: 计算机的部分或全部不能正常工作。
  • 缺陷的原因: 一部分硬件随着时间的推移而损坏。
  • 根本原因: 一部分硬件可能存在质量问题,所以它们不能维持应有的正常工作时长。也可能部分硬件无法与其它硬件兼容,因此会损坏。
  • 测试活动: 正常使用系统,观察硬件,使用与真正用户将要拥有的环境类似的测试环境。
  • 修复: 将损坏的部件更换位新的部件,或更换为更能与其它部件兼容的部件。

© Dragons Out Oy

39

11.2.2022

40 of 49

仅是影子还是怪兽?

  • 颜色: 灰色
  • 大小尺寸:
  • 发现他的难度?: 容易
  • 赶走他的难度?: 容易
  • 是否会飞?: 不会
  • 翅膀:
  • 是否会喷火?:
  • 最喜欢的事: 迷惑人

© Dragons Out Oy

40

11.2.2022

41 of 49

仅是影子还是怪兽?

  • 缺陷名: 易测试性缺陷
  • 严重程度:
  • 缺陷症状: 看上去像是功能性工作错误,例如计算结果错误。
  • 缺陷的原因: 测试人员使用了错误的测试数据或错误的测试环境。
  • 根本原因: 测试人员可能急于去发现缺陷,测试环境和测试数据可能根本还没正确规划好。
  • 测试活动: 正常使用软件,观察测试环境和数据。总是观察和思考,运行的测试是否正是缺陷的原因。
  • 修复: 可以更好定义测试环境和数据,也可以从错误的警报(假阳性)中学习。

© Dragons Out Oy

41

11.2.2022

42 of 49

友好的怪兽

  • 颜色: 亮绿色
  • 大小尺寸:
  • 发现他的难度?: 容易
  • 赶走他的难度?: 容易
  • 是否会飞?:
  • 翅膀: 中等
  • 是否会喷火?:
  • 最喜欢的事: 吃动物和帮助人类

© Dragons Out Oy

42

11.2.2022

43 of 49

友好的怪兽

  • 缺陷名: 缺陷植入、变异测试 – 故意制造一个缺陷
  • 严重程度:
  • 缺陷症状: 看起来是个功能性工作的错误,例如计算结果的错误,所以,这个缺陷看起来像是一个功能缺陷。
  • 缺陷的原因: 测试人员或程序员故意在代码中植入缺陷。
  • 根本原因: 这个想法是,当所有故意植入的缺陷都被找到,则所有缺陷也都能被发现了。
  • 测试活动: 正常使用系统并尝试发现所有故意植入的缺陷,这样也能发现真正的缺陷。如果找出最后一个植入的缺陷,也可以停止测试。
  • 修复: 切记,也要修复植入代码内的缺陷,就像修复真正的功能缺陷一样。

© Dragons Out Oy

43

11.2.2022

44 of 49

难以去除的怪兽

  • 颜色: 亮绿色
  • 大小尺寸:
  • 发现他的难度?: 容易
  • 赶走他的难度?: 困难
  • 是否会飞?:
  • 翅膀:
  • 是否会喷火?:
  • 最喜欢的事: 不断骚扰人类

© Dragons Out Oy

44

11.2.2022

45 of 49

难以去除的怪兽

© Dragons Out Oy

45

11.2.2022

  • 缺陷名: 版本管理缺陷
  • 严重程度: 中等
  • 缺陷症状: 已经修复的缺陷再次出现,这应该算是一个功能性的缺陷。
  • 缺陷的原因: 版本管理的失败,程序员使用了软件中旧的部分,而应该是使用新的部分,也许因为这个新的部分内容包含了其他开发人员对一个缺陷的修复。
  • 根本原因: 时间压力和太多人产生的缺陷。版本管理可能根本不存在。
  • 测试活动: 正常使用系统,如果发现一个缺陷,需要检查,此缺陷是否已经修复。如果是已经修复的缺陷,则要调查版本管理是如何工作的。
  • 修复: 改进版本管理的工作方式,开始使用版本管理软件。

46 of 49

迷惑的怪兽

  • 颜色: 亮绿色
  • 大小尺寸:
  • 发现他的难度?: 容易
  • 赶走他的难度?: 容易
  • 是否会飞?:
  • 翅膀: 中等
  • 是否会喷火?:
  • 最喜欢的事: 骚扰大怪兽

© Dragons Out Oy

46

11.2.2022

47 of 49

迷惑的怪兽

  • 缺陷名: 文档缺陷
  • 严重程度:
  • 缺陷症状: 功能的工作与文档中描述的不一样。
  • 缺陷的原因: 计划和指南与软件不一致。
  • 根本原因: 在编码过程中,有些决策或更改后造成了与原计划不同的软件。文档是按老的计划创建的。
  • 测试活动: 正常使用系统。如果发现缺陷,应该考虑是否软件或文档有错。
  • 修复: 您可以更改软件或文档,使他们相匹配。

© Dragons Out Oy

47

11.2.2022

48 of 49

练习 5-15 分钟:

设计您自己好的缺陷 –� 画出您自己好的怪兽

// 您所需要

纸和笔

// 任务

1 想一想一个有助于您理解软件某些方面的缺陷(或您可以想一想任何缺陷,如果您愿意的话)。

  • 写下缺陷的名称并简单对他进行描述。

2 想象一个类似的怪兽。

  • 写下怪兽的特性。
  • 如果缺陷是严重的,则怪兽是大的等。

3 画出怪兽。

  • 最重要的是贯彻您关于怪兽代表缺陷的想法。
  • 不需要追求完美的画面

4 按约定向他人展示图片。

  • 例如,使用挂板。

48

© Dragons Out Oy

49 of 49

谢 谢!

如果您对这本书也感兴趣,您可以在此订购:

https://www.dragonsout.com/p/order-dragons-out-book.html

关注和分享图书项目:

https://www.dragonsout.com

提问:

kari.kakkonen@dragonsout.com

© Dragons Out Oy

49