写点什么

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

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

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

关注

评论

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

助力ARM生态 —Dragonwell新增aarch64支持

阿里云基础软件团队

新的方式-谷歌浏览器插件的使用【天猫超市抢购飞天茅台】

谙忆

漫谈分层架构:为什么要进行架构分层?

AI乔治

Java 架构 高可用系统的架构 高可用架构

我与你地铁高峰期的邂逅,背后竟然是?

脑极体

读《关于中台的思考与尝试》,我竟然懂得了这么多!

李忠良

中台 方法论

python 输入输出

赵开忠

Python 28天写作

12月阿里蚂蚁金服四面(已拿offer)Java技术面经总结:项目+源码+jvm调优+MySQL

Java 学习 编程 程序员 面试

探索 React 合成事件

Geek_z9ygea

大前端 React 28天写作

前端性能优化

roadup

大前端 性能调优

原理竟然是这!GitHub上标星13k的《Android面试突击版》,醍醐灌顶!

欢喜学安卓

android 程序员 面试 移动开发

异步I/O -- posix aio 从入门到放弃的吐血实践

1412

workflow srpc 异步调度 posix aio kqueue

突然明白 npm install xxx 的业务实际用处

blueju

大前端 npm

Spring Boot 使用slf4j进行日志记录

武哥聊编程

Java springboot SpringBoot 2 slf4j 28天写作

重学JS | 改变函数上下文的3种方式

梁龙先森

大前端 编程语言 28天写作

CSS ( Cascading Style Sheets )

roadup

CSS

synchronized只会用不知道原理?一文搞定

Java鱼仔

Java 面试 并发 synchronized

三分钟快速详细安装CentOS

程序员的时光

Linux centos 程序员 28天写作

架构师训练营第七周作业

zamkai

SpringBoot太强了、ShardingSphere上榜

spring 编程 框架

计算机网络基础

roadup

TCP 网络 HTTP 计算机 HTTP3.0

精选算法面试-队列

李孟聊AI

算法 队列 28天写作

Spring5.0源码学习系列之Spring AOP简述

AI乔治

Java spring 架构

数仓建设中最常用模型--Kimball维度建模详解

五分钟学大数据

大数据 数据仓库 数仓 维度建模

网线如何制作和如何使用?

巧合?达摩院2021十大科技是十九世纪那场幻想的升级版?

Java架构师迁哥

redis中的一致性hash

原来不悔

redis 一致性hash

不可多得的干货!耗时两个礼拜,8000字安卓面试长文,内含福利

欢喜学安卓

android 程序员 面试 移动开发

记录一下我离线依赖迁移安装的具体尝试过程

blueju

JavaScript 大前端 npm Node webpack

跨界

张老蔫

28天写作

扫盲帖:聊聊微服务与分布式系统

AI乔治

Java 架构 微服务 分布式系统

Synchronized 精讲

伯阳

Java 多线程 高并发 synchronized java关键字

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