质量属性:可测试性

目录

一、概念

二、场景

1、通用场景

2、特定场景 

三、Security的策略

1、目标

2、策略


一、概念

Testability:指软件可以通过(通常是基于执行的)测试来演示其故障。

1、具体来说,可测试性是指假设软件至少有一个故障,那么它在下一次测试执行中失败的概率。

2、如果系统中存在故障,那么我们希望它在测试过程中尽快失败。

3、为了使系统能够正确地进行测试,必须能够控制每个组件的输入(并可能操作其内部状态),然后观察其输出(也可能是其内部状态)

二、场景

1、通用场景

刺激源单元测试人员、集成测试人员、系统测试人员、验收测试人员、最终用户,可以手动运行测试或使用自动测试工具
刺激如类、层或服务,由于完成了编码增量而执行一组测试;子系统的完整集成;系统的完整实现;或将系统交付给客户。
制品系统中被测试的部分
环境设计时、开发时、编译时、集成时、部署时、运行时
响应

以下一个或多个操作:

        1)执行测试套件和捕获结果;

        2)捕获导致故障的活动;

        3)控制和监控系统的状态

响应衡量

以下一个或多个:

        1)查找故障或故障类别的花费,达到给定的状态空间覆盖百分比的花费;

        2)下一次测试发现故障的概率;

        3)执行测试的时间;

        4)检测故障的花费;

        5)测试中最长依赖链的长度;

        6)准备测试环境的时间长度;

        7)风险暴露的减少(size(loss) * prob(loss))

——翻译自《软件架构实践》第3版

2、特定场景 

单元测试人员在开发过程中完成一个代码单元,并执行一个测试序列,测试结果被捕获,在测试3小时内提供85%的路径覆盖率。

——翻译自《软件架构实践》第3版

刺激源单元测试人员
刺激执行单元的测试序列
制品被测试的代码单元
环境开发时
响应执行一个测试序列,测试结果被捕获
响应衡量3小时内提供85%的路径覆盖率

三、可测试性的策略

1、目标

在软件开发的增量完成时允许更容易的测试。

2、策略

1)Control and Observe System State(控制和观察系统状态)

  • Specialized Interfaces: 通过自动化测试工具 或正常执行来控制或捕获组件的变量值。
  • Record/Playback:捕获跨越接口的信息,并将其作为进一步测试的输入。
  • Localize State Storage:要以任意状态启动系统、子系统或模块以进行测试,如果该状态存储在单个位置,则最方便。

  • Abstract Data Sources:抽象这些接口可以让您更容易地替换测试数据。
  • Sandbox:将系统从现实世界中分离出来,使实验不受担心必须撤销实验后果的影响。
  • Executable Assertions:断言(通常)手工编码并放置在所需的位置,以指示程序何时和何处处于错误状态。

2)Limit Complexity(限制复杂性)

  • Limit Structural Complexity(限制结构复杂性):避免或解决组件之间的循环依赖关系,隔离和封装对外部环境的依赖关系,以及减少一般组件之间的依赖关系。

  • Limit Non-determinism(限制不确定性):找到非决定性的所有来源,如无约束并行性,并尽可能地淘汰它们。

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值