速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

可测试性如何帮助团队提升效率

  • 2016-02-16
  • 本文字数:1248 字

    阅读完需:约 4 分钟

Agile Practitioners 2016 大会上,Huib Schoots 谈了可测试性。他指出,低可测试性(任何导致软件难以测试的东西)会导致团队效率低下,并探讨了如何提高可测试性。

Schoots 谈了软件开发中未知的未知问题。我们无法掌握开发一款产品需要提前完成的一切工作,因此,我们必须确保在软件开发过程中构建洞察力。我们必须知道如何应对复杂性和不确定性。“控制与命令”式的瀑布方法会成为构建洞察力的障碍。

敏捷测试是在敏捷环境中测试。测试不会因为我们采用敏捷而改变,变的是环境。敏捷测试有一些不同,它使用迭代方法,准备提前期变短,测试执行和报告生成变快,而变化非常常见。此外还有角色的变化,Schoots 提到,使用敏捷时,测试经理更多的是一名教练,只做较少的测试。

Schoots 表示,快速测试是一种测试理念和综合技能。快速测试可以减少文档,将更多的精力集中在如何测试上。快速测试是一种通用的测试方法,不仅适合敏捷,也适合任何的项目或产品。

测试是指人们在不确定的情况下通力合作。我们不可能什么都知道,而事情总是在变化。

Schoots 表示,测试的目的是了解产品的状态以及任何威胁产品价值的因素,以便客户可以做出明智的决策。测试人员能够看到事情的真相,并照亮前进之路。他们会把真相告诉团队和项目经理。

检查(与测试相对)是指操作一款产品检查具体的输出。按照 Schoots 的说法,所有的检查都应该尽可能地自动化。检查非常繁琐,自动化可以提高可测试性。

Schoots 提到了 James Bach 对可测试性的定义:

产品实际的可测试性是指在特定的环境中,产品被特定的测试人员及测试过程测试的难易程度。

按照 Schoots 的说法,我们需要可测试性,因为它可以简化测试,提升测试速度,降低测试成本及减少不可再现的 Bug。

Schoots 讲了一个故事,是关于一家他工作过的银行。他们不能使用生产环境的代码进行测试。因此,他们必须创建文本文件来测试钱在“测试银行”之间的转移。Schoots 目睹了测试人员如何手动修改一个用于测试的大文本文件。由于这耗费了太多时间,所以他们决定构建一个工具用于这种修改。经过扩展之后,该工具能够做使用生产环境代码作为输入创建测试文件所需要的所有修改。借助这款工具,测试人员每天节省了大约三个小时,因此,这款工具提升了可测试性。

认知可测试性是指我们知道的东西同我们需要知道的东西之间的差距。认知测试需要具备产品质量的先验知识。据 Schoots 介绍,测试等待的时间越长,差距就越大。一个例子是,了解什么功能已经在单元测试中进行了测试,如果有了这样的知识,那么就不需要在系统测试中再次对它进行测试。

James Bach 认为,测试人员必须要求可测试性。Schoots 对此并不完全赞同,他的观点是,测试人员应该要求更高的可测试性,因为那是一种团队职责,整个团队都会从高可测试性中受益。

Schoots 表示,高可测试性使测试更快、更简单,同时成本更低,每个人都可以从中受益。他建议将可测试性作为冲刺计划的一个主题,团队应该进行可测试性回顾,找出提高可测试性的方法。

查看英文原文: How Testability Can Help Teams to Go Faster

2016-02-16 18:002853
用户头像

发布了 1008 篇内容, 共 392.5 次阅读, 收获喜欢 344 次。

关注

评论

发布
暂无评论
发现更多内容

全网最牛逼的华为信息中心配置命令,建议收藏!

Ethereal

网络技术 信息中心 厂商设备命令

全网最牛逼的华为NTP配置命令,建议收藏!

Ethereal

华为 ntp 网络技术

签名验证反爬,反反爬第二篇博客,Python爬虫120例

梦想橡皮擦

12月日更

模块二作业-朋友圈高性能复杂度分析

圈圈gor

「架构实战营」

第2周学习总结

糖糖学编程

架构实战营

架构实战营 - 第 4 期 - 模块二作业

Evan

架构实战营 「架构实战营」

阿里云消息队列 RocketMQ、Kafka 荣获金融级产品稳定性测评 “先进级” 认证

阿里巴巴云原生

阿里云 云原生 稳定性 获奖

React进阶(十):React 项目启动原理详解

No Silver Bullet

React 12月日更

Kotlin Maps:五个基本函数

坚果

kotlin 28天写作 12月日更

微信朋友圈的高性能复杂度

guodongq

「架构实战营」

消息队列存储-mysql表

🌾🌾🌾小麦🌾🌾🌾

架构实战营

Dubbo-Admin 功能展示与实操解析

阿里巴巴云原生

阿里云 云原生 Dubbo-Admin 功能

【架构实战营】模块二:知识点总结

wgl

「架构实战营」

腾讯云实时音视频(TRTC)SDK使用体验测评

为自己带盐

dotnet 28天写作 trtc-js-sdk 12月日更

架构实战营 - 模块2 - 作业

Pyel

「架构实战营」

[Pulsar] LookUp原理

Zike Yang

Apache Pulsar 12月日更

微信朋友圈的高性能复杂度分析

糖糖学编程

架构实战营

从甲方到乙方,如何做好混沌工程的行业化落地

阿里巴巴云原生

阿里云 云原生 混沌工程 金融行业 行业化落地

DDD领域驱动设计实战(六)-理解领域事件(Domain Event)

JavaEdge

12月日更

模块二作业

黄秀明

Service Mesh 在中国工商银行的探索与实践

阿里巴巴云原生

阿里云 微服务 云原生 服务网格 金融实践

云未来、新可能 - 绿色、无处不在、可信的计算

阿里巴巴云原生

阿里云 容器 云原生 活动 KubeCON

【架构实战营】模块二:命题作业

wgl

「架构实战营」

【LeetCode】找到小镇的法官Java题解

Albert

算法 LeetCode 12月日更

【docker 总结】第七篇 - nodejs项目部署

Brave

Docker 12月日更

微信朋友圈高性能复杂度设计

CH

「架构实战营」

模块二作业

novoer

#架构实战营

从手游中的感悟

搬砖的周狮傅

游戏 日常感悟

性能工具之stress工具使用教程(带源码说明)

zuozewei

Linux 工具 性能测试 12月日更

明年的能力计划之学会咨询

将军-技术演讲力教练

字典树之旅04.Patricia Trie(二)

极客志

Java 自然语言处理 数据结构 算法 字典树

可测试性如何帮助团队提升效率_研发效能_Ben Linders_InfoQ精选文章