最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 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:002655
用户头像

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

关注

评论

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

看东鹏饮料如何从150亿条数据中洞察先机 | 精选案例

亚马逊云科技 (Amazon Web Services)

Python基础之:Python中的模块

程序那些事

Python Python3 程序那些事

网络连接之协议栈

Kylin

协议栈 3月日更 21天挑战 网络连接

亚马逊云科技和德甲为 2021 赛季新推出三项赛况统计数据,强化实时比赛分析

亚马逊云科技 (Amazon Web Services)

异步机制和CPU架构对 Redis 性能的影响

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

【LeetCode】删除排序链表中的重复元素 IIJava题解

Albert

算法 LeetCode 3月日更

基于深度学习的两种信源信道联合编码

华为云开发者联盟

深度学习 通信 编码 信源编码 信道编码

如何定义错误码

编号94530

Java 错误码 错误处理

第十二周作业

MR.X

数据去哪了?:从一次生产事故聊聊并发编程原子性问题

海拉鲁

Java 并发编程 多线程

Rust从0到1-基础概念-数据类型

rust 数据类型

智慧公安信息化管理系统,重点人员管控系统的搭建

13828808769

智慧交通

区块链六大应用场景,推动政府信息化发展

13828808769

区块链+ #区块链#

用 Redis 实现消息队列是一个好主意么?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

初识Golang之声明函数

Kylin

3月日更 21天挑战 Go 语言

通俗讲解分布式锁,看完不懂算我输

Java小咖秀

Java 分布式 多线程 并发

[译]用@WebMvcTest测试MVC Web Contorller

麦芽面包

spring unittest

搞懂 ZooKeeper 集群的数据同步

HelloGitHub

Java zookeeper ZooKeeper原理

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(上)

亚马逊云科技 (Amazon Web Services)

一段java代码执行旅程

华为云开发者联盟

JVM class 指令 java代码 java栈

分布式锁的实现方案

360技术

设计与思考,关于资源和生命周期

程序员架构进阶

设计实践 生命周期 28天写作 3月日更 池化技术

QCon全球软件开发大会:推动创新,实现技术落地

博文视点Broadview

华为云PB级数据库GaussDB(for Redis)揭秘第六期:Feed流场景中的应用

华为云开发者联盟

数据库 redis 华为云 GaussDB Feed流

Wireshark数据包分析学习笔记Day21

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

在全面拥抱人工智能前,这 6 步您的公司做到了吗?| 云途专栏

亚马逊云科技 (Amazon Web Services)

镜像仓库学习笔记

lenka

3月日更

Worktile 前端工程化之路

PingCode研发中心

大前端

Redis - 缓存穿透、缓存击穿、缓存雪崩

insight

redis 3月日更

Gas费用持续攀升!NA公链NAC公链如何破解高额Gas费用的困局?

区块链第一资讯

区块链BaaS应用平台搭建,助力企业运用区块链解决业务问题

13828808769

区块链 区块链+ 区块链发展 #区块链#

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