Building the Testing Pipeline
This essay is a part of my knowledge sharing session slides which are shared for development and quality team. I want to share some contents here and hope that may trigger some brainstorming or thoughts about how could we do better test automation by development team in the software development cycle.
The related sessions:
Quick Index
- Understanding tests better
- Test Strategy
- Catch defect as quickly as possible
- The V Model of Software Development
- Unit Testing
- Component Testing
- System Testing
- Ideal Automated Testing Pyramid
- Testing goes to fragile
- Assembling a Test Pipeline
- Continuous Integration
- Defect Prevention before Defect Detection
- Cause-and-Effect Diagram for error prevention
Understanding tests better

Test Strategy
One of the key decisions is what kinds of tests should be automated and which approach to testing should be used for manual test.

Catch defect as quickly as possible

The V Model of Software Development

Unit Testing
Unit testing can be on little things like methods/functions or bigger things like modules and classes.

Component Testing
Component testing are used for testing packages, individual executables or subsystems.

System Testing
System testing is done at the level of the whole product and can include a range of system sizes:
individual systems or integrated workflows through multiple systems that have to interact.

Ideal Automated Testing Pyramid

Testing goes to fragile

Assembling a Test Pipeline

Continuous Integration

Defect Prevention before Defect Detection
The ultimate goal of any development process is to build the right product of high quality and to build it with minimum waste.
Defect Prevention techniques address how to prevent “error” before it is injected:
- Root Cause Analysis of problem
- Education and training
- Software process maturity and improvement
Defect Detection techniques address how to find the faults:
- Testing
- Reviews and inspection
- Formal verification
Cause-and-Effect Diagram for error prevention

References
- Unit Testing
- Build the Testing Pipeline
- Automating tests vs. Test Automation
- Gmail测试工程经理Ankit Mehta的访谈
- Patterns & Practices Acceptance Test Engineering Guide
- Continuous Integration is backed by several important principles and practices
- Continuous Integration
- What TDD Is and Is Not
- 7 Deadly Sins of Automated Software Testing
- How Is Automation Return-On-Investment (ROI) Calculated?
- Continuous Delivery in a nutshell
- Testing WPF Applications - TestComplete
- Continuous Delivery: Anatomy of the Deployment Pipeline
- Continuous integration is about keeping it all together
- YAGNI - You Aint Gonna Need It
Building the Testing Pipeline的更多相关文章
- Unit Testing with NSubstitute
These are the contents of my training session about unit testing, and also have some introductions a ...
- Reading Notes of Acceptance Test Engineering Guide
The Acceptance Test Engineering Guide will provide guidance for technology stakeholders (developers, ...
- Java Unit Testing - JUnit & TestNG
转自https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaUnitTesting.html yet another insignifican ...
- Tomcat源码分析 (四)----- Pipeline和Valve
在 Tomcat源码分析 (二)----- Tomcat整体架构及组件 中我们简单分析了一下Pipeline和Valve,并给出了整体的结构图.而这一节,我们将详细分析Tomcat里面的源码. Val ...
- 《Continuous Delivery》 Notes 1: The problem of delivering software
What is "Deployment pipeline"? A deployment pipeline is an automated implementation of you ...
- Go 语言相关的优秀框架,库及软件列表
If you see a package or project here that is no longer maintained or is not a good fit, please submi ...
- 50+ Useful Docker Tools
As containers take root, dozens of tools have sprung up to support them. Check out your options for ...
- 重磅开源 KSQL:用于 Apache Kafka 的流数据 SQL 引擎 2017.8.29
Kafka 的作者 Neha Narkhede 在 Confluent 上发表了一篇博文,介绍了Kafka 新引入的KSQL 引擎——一个基于流的SQL.推出KSQL 是为了降低流式处理的门槛,为处理 ...
- Research Guide: Pruning Techniques for Neural Networks
Research Guide: Pruning Techniques for Neural Networks 2019-11-15 20:16:54 Original: https://heartbe ...
随机推荐
- Ubuntu下使用nvm
写在前面:刚写着写着博客就跨年了,希望新的一年大家万事如意,一切向"前"看! 安装 wget -qO- https://raw.githubusercontent.com/crea ...
- RabbitMq应用二
在应用一中,基本的消息队列使用已经完成了,在实际项目中,一定会出现各种各样的需求和问题,rabbitmq内置的很多强大机制和功能会帮助我们解决很多的问题,下面就一个一个的一起学习一下. 消息响应机制 ...
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- VisualStudio2013 如何打开之前版本开发的(.vdproj )安装项目
当你的项目使用早于 visualstudio2013 的版本开发并且使用 Visual Studio Installer 制作安装项目时,在升级至 VS2013 后会发现新安装项目无法打开, VS20 ...
- python中IndentationError: expected an indented block错误的解决方法
IndentationError: expected an indented block 翻译为IndentationError:预期的缩进块 解决方法:有冒号的下一行要缩进,该缩进就缩进
- CSS中强悍的相对单位之em(em-and-elastic-layouts)学习小记
使用相对单位em注意点 1.浏览器默认字体是16px,即1em = 16px,根元素设置如下 html{ font-size: 100%; /* WinIE text resize correctio ...
- SpringMVC_简单小结
SpringMVC是一个简单的.优秀的框架.应了那句话简单就是美,而且他强大不失灵活,性能也很优秀. 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,fi ...
- BZOJ 1146: [CTSC2008]网络管理Network [树上带修改主席树]
1146: [CTSC2008]网络管理Network Time Limit: 50 Sec Memory Limit: 162 MBSubmit: 3522 Solved: 1041[Submi ...
- python之类介绍
python对象销毁(垃圾回收): 1>同Java语言一样,python使用了引用计数这一简单计数来追踪内存中的对象,也就是说,python内部记录着所有使用中的对象各有多少引用,一个内部跟踪变 ...
- 如何让spring mvc web应用启动时就执行特定处理
Asp.Net的应用中通过根目录下的Global.asax,在Application_Start方法中做一些初始化操作,比如:预先加载缓存项对网站热点数据进行预热,获取一些远程的配置信息等等. Spr ...