View on GitHub

中山大学软件测试

蔡国扬2021年课程

Assignment 2

姓名 学号 学院 专业
米家龙 18342075 计算机学院 软件工程

1. 综述软件测试的16条公理

有些人反对软件测试公理的概念,他们认为所有测试规则、原理、技术和方法都是启发式的;启发式方法在可用性和准确性方面受到限制,是有限并且不可靠的。

测试公理分成三部分:

利益相关者公理

测试是测试者(代表测试利益相关者)执行的信息或者情报收集活动

1. 利益相关者公理:测试需要利益相关者

确定并招募能将要使用我们提供的测试证据并且能从中获益的组织/人员;需要明确如下问题:

2. 价值公理:测试的价值是为利益相关者提供决策依据

不管来源如何,测试的结果和测试证据的提供方式决定了价值;需要明确如下问题:

3. 范围管理公理:如果我们不约束测试的范围,我们永远无法符合利益相关者的期望

测试者需要明确并同意项目范围内外的项目,并随着时间推移来管理规模;有这些具体问题:

4. 足够好公理:测试和验收的范围始终是妥协的结果

利益相关者和测试者必须共同认识到:测试缺少限制,并且软件的验收决定永远是基于不完整的证据;而实际上,基于利益相关者已知的信息,即使有特定的证据,软件的验收仍可能发生;需要明确下列问题:

测试设计公理

测试是一个创建环境、系统、人性和测试本身的思维模型的过程。测试设计则是为了寻找对利益相关者最有价值的测试的过程。通过测试基础,我们可以选择测试系统的哪些方面,测试基础是不可靠的;测试模型能够帮助测试者以系统的方式选择测试。

5. 测试设计基于模型

需要选择能够得出对利益相关者有意义的测试的测试模型;同时需要认识到测试模型本身带有的局限性和模型做出的假设;需要明确如下问题:

6. 测试基础公理:测试者需要知识来源以选择测试内容

需要识别并且同意识别测试内容所需的只是来源。使用多个知识来源,并比较和交叉检查他们。有如下需要明确的问题:

7. 先知公理:测试者需要知识来源以评价被测对象的实际产出或行为

明确并同意能够决定预期结果所需要的知识来源。使用多个知识来源,并比较和交叉检查他们。有如下需要明确的问题:

8. 覆盖公理:测试需要一个或多个覆盖模型

测试者需要一种对利益相关者有意义的方式来评估所选测试模型相对于测试的彻底性或完整性

9. 优先公理:测试需要一种机制来排序测试优先级

测试人员需要能够按价值顺序对测试进行排名,并确定哪些测试最有价值;需要解决如下问题:

10. 易失性公理:测试的知识来源是模糊且不完整的

测试基础,模型,先知和优先级划分方法是容易犯错误的,因为定义和使用它们的人员容易出现错误。因此需要明确如下问题:

测试执行与交付公理

充足的证据才能支持接受决策的信心;而证据的价值则取决于决策者的判断

11. 信心公理:通过利益相关者做决策时的信心来衡量测试的价值高低

测试者必须了解测试证据与利益相关者的决定之间的关系。测试应着重于给利益相关者能够有信心做出决策的证据。因此需要解决这些问题:

12. 重复测试公理:一些重复测试是不可避免的

决策者需要制定并同意重新测试和回归测试的政策,并在预算和计划中允许重复测试的存在。

13. 执行排序公理:先执行最有价值的测试—否则可能没有时间执行它们

如果执行时间有限或测试已停止,则顺序测试可确保运行最有价值的测试。需要考虑如下问题:

14. 环境公理:测试执行需要明确、可控的测试环境

该公理要求测试者需要确定对环境和用于测试的测试数据的需求和要求,包括及时管理该环境的更改的机制

15. 事件公理:测试永远不会按计划进展,测试所得到的证据按照离散量子化的模式出现

16. 永无止境的公理:测试永远不会结束,只会停止

测试通常是有时间限制的,可能无法完成

2. 结合你所熟悉的一套软件,针对上述公理表述你的见解

软件选择飞书,飞书以一个主要目标用户为企业的即时通讯系统,集成了大量的效率管理和协作应用。

利益相关者相关

  1. 公理1、公理2:飞书目标用户企业/组织之间的交流,明确了目标用户和利益相关者,便能够选择出合适的测试人员,从而推进测试的进度和方向
  2. 公理3:由于该软件本身是在不断更新的,会不断添加有利于企业协作/效率的工具,因此测试者需要不断适应并测试更新的程序,同时将测试者测试的范围约束在企业内部,从而保证决策者能够接收到合理的反馈,并对下一步的开发提供帮助
  3. 公理4:飞书的功能设计和实际完成效果(即测试效果)并不能完美契合,但是在敏捷开发的过程中,很多功能日程安排并不会给开发有足够长的时间修复和完善,而测试也并不能够有足够完善的能力覆盖所有的功能,即新加功能是否会和前面冗杂的功能有矛盾等;因此决策者和测试者不得不进行妥协

测试设计相关

  1. 公理6,公理7:如果只从开发者的角度对软件功能进行测试,那么在测试的时候很难得出符合目标用户需求的结论
    • 测试者需要企业员工的知识,从企业员工的角度分析测试的内容和结果是否符合预期
    • 测试者需要信息安全相关的知识,从信息安全的角度分析通讯和软件能否符合信息安全要求
  2. 公理9:飞书本质上是一个即时通讯系统,因此通讯相关的功能优先级更高,其他工具的优先级相较而言就低一些
  3. 公理10:在绝大多数开发项目中,都存在这样的问题:需求质量很差,测试设计所依赖的许多知识:如应用场景,如系统在异常下的行为和结果,都是不明确的,这也是我们一直希望测试能够尽早投入,通过详细的测试设计来提升需求质量,达到预防缺陷的根本原因

测试执行与交付

  1. 公理12:一些重复测试是不可避免的;由于版本的更新与功能的增加,以及环境和使用技术的变化,需要有重复的测试来保证软件在上面变化的过程中依然能够使用,避免新代码的加入导致整体的缺陷与漏洞;并且由于测试的不完善性,重复的测试有利于发现原本忽略掉的漏洞,从而减少相关损失
  2. 公理13:先执行最有价值的测试;由于软件开发周期的限制,对于飞书这样一个体量庞大的系统,如果每次更新都对全部功能细节都要进行一次测试的话,将会消耗大量的成本,因此根据公理9,测试的优先级和高优先级优先测试是有必要的
  3. 公理14:测试执行需要明确、可控的测试环境;为了更加明确的寻找问题,控制变量法是最简单方便的对比方法,有一个稳定、可控的环境能够大大降低测试的随机性,从而提供更加稳定的测试结果
  4. 公理16: 测试永远不会结束,只会停止。无论何时,只要你进行测试,就一定会发现更多缺陷。因此,测试是被动停止而不是主动完成,停止的原因是因为我们提供了足够的证据,使得决策者认为剩余的产品风险已经可以承担,已经满足客户的应用期望,因此测试不是“盖章放行”,不是质量的“看门人”。
TOP