Practical Continuous Testing Sample
Practical Continuous Testing Sample
Zhimin Zhan
This book is for sale at http://leanpub.com/practical-continuous-testing
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean
Publishing process. Lean Publishing is the act of publishing an in-progress ebook using
lightweight tools and many iterations to get reader feedback, pivot until you have the right
book and build traction once you do.
1. Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 My Continuous Testing journey . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 What’s unique about this book? . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Who should read this book? . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 How to read this book? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Send me feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.1 What is Continuous Testing? . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Continuous Testing is the trend . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Continuous Testing vs Continuous Integration . . . . . . . . . . . . . . . . . 4
2.4 Separate CT from existing CI/CD . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Continuous Testing vs DevOps . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Reality Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7 Why will this book help? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Why is CT important? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1 Continuous Testing is the key to Agile . . . . . . . . . . . . . . . . . . . . . 19
5.2 Detect regression errors quickly . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.3 Reduce/eliminate the needs for Defect Tracking . . . . . . . . . . . . . . . . 19
5.4 Try new ideas / upgrades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.5 CT is vital for the maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.6 Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.7 Benefits for All Team Members . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.8 Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9. Manage a project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.1 Build Step Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
9.2 Common Pre-Functional-Testing Tasks . . . . . . . . . . . . . . . . . . . . . 31
9.3 Clone an existing project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.4 Build Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.5 Enable the project’s API key . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9.6 Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.7 Project Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.8 Hide a project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
21. Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
21.1 Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
21.2 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
22. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1. Preface
Continuous Testing, simply speaking, is to run all automated functional tests as regression
testing multiple times a day, to help software teams deliver high-quality software to
production frequently. Continuous Testing (CT in short) was lesser known as Continuous
Integration (CI) or Continuous Delivery (CD). Since last year (2019), we hear people talking
more about CT, as it is the key process of DevOps.
“Too many jargon words!”, some may say. I don’t like using jargon words either. Unfortu-
nately, anyone who works in this area needs to understand these terms, because you are
going to hear them a lot. In this book, I will use plain English to explain and illustrate
techniques, with easy-to-follow hands-on exercises.
The prerequisite of CT is automated functional testing, obviously. If you are new to test
automation, please read my other book “Practical Web Test Automation¹”. It puzzled me
when I realized some self-proclaimed DevOps/CI specialists had never written a single
automated functional test.
My interest in automated functional testing started with HtmlUnit (GUI-less browser testing)
in 2005. Shortly after, I discovered Watir, a framework that supports real and visible
functional testing in an Internet Explorer browser. Nowadays, I use Selenium WebDriver
to test web apps, Appium + WinAppDriver to test Windows Desktop apps and standard
Ruby for non-UI functional testing.
Back to my early days on test automation, I was quite happily developing new automated
tests and running them individually. Not long after, a big challenge (so obvious but I had
never thought of) came: how can I run all test scripts efficiently?
3. Run in CI Server
In 2006, there was only one CI server available: CruiseControl, developed by Thought-
Works. I set up a CruiseControl server to run our Watir test suite. Initially, it worked
well. The team could trigger a build easily, view changelog, and build results, all on
CruiseControl’s web interface. We could act quickly based on feedback.
However, with a growing number of test cases, it was getting harder and harder to pass
all tests (a green build). The nature of UI tests, comparing to unit tests, is fragile. A
single test step failure, maybe due to an issue on the server or the build machine, failed
the whole build. At the same time, the project had become dependent on passing all
tests, as the gatekeeper, to release to the production server. Moreover, when a build was
failed, developers were not allowed to check in new features, which would complicate
the fixing process.
The team embraced automated regression testing, as the benefits were obvious.
However, we could not cope with the growing test suites. As a result, the development
halted.
When I studied the “Operating Systems” course at university in 1996, I was deeply impressed
by the textbook’s author, Prof. Andrew S. Tanenbaum, who actually implemented an
operating system: Minix, for teaching purposes. (Prof. Tanenbaum’s book and MINIX were
Linus Torvalds’ inspiration for the Linux kernel [wikipedia²]). I gained a lot of insights into
CT by designing BuildWise, as well as implementing CT with BuildWise for myself and the
clients. I believe that if I do a good job of explaining, readers can benefit from my experiences.
Over the last decade, I have mentored a number of programmers/testers on different projects,
and I learned a lot from their perspectives. I built these understandings into BuildWise
server as well. For instance, to help new-to-CT professionals to gain confidence, setting up
a BuildWise server (from scratch) to run a suite of Selenium tests can be done under 30
minutes.
It is important to note that readers shall focus on the techniques, rather than the actual
uses of BuildWise. These techniques are generally applicable, may be implemented in other
CT servers, just like what I did to CruiseControl 14 years ago. Treat BuildWise server as a
reference implementation, to help you understand the whys and hows, but not limited to it.
BuildWise server is free and open-source, you may enhance it or add new features as well.
The example test scripts used in this book are in Selenium WebDriver, the dominant
test automation framework for web applications, with RSpec (Ruby binding). Most CT
techniques are independent of test automation and syntax frameworks. Three other test
syntax frameworks Mocha (JS), PyTest (Python) and Cucumber (Ruby) are covered in
Chapter 16.
People with a basic understanding of the software development cycle will find the texts are
easy to follow. Prior experience with automated testing and continuous integration is not
necessary. Basic scripting knowledge will help, but again, not necessary.
Zhimin Zhan
Brisbane, Australia
2. Introduction
If you are already familiar with the concept of CI/CD and cannot wait to set up your own
Continuous Testing (CT) server to run automated functional tests (in a Chrome browser),
please feel free to move onto Chapter 2: setting up a Continuous Testing server to run a set
of Selenium WebDriver tests. After getting it done (in about 30 minutes), come back and
read this introductory chapter. It will probably make more sense to you then.
• 1999.07 - “Refactoring” book by Martin Fowler, a process of refining code design backed
up comprehensive automated unit testing.
• 2001.02 - “The Agile Manifesto” was written by Kent Beck and other 16 wise software
development practitioners
• 2007.07 - “Continuous Integration” book by Paul Duvall, Steve Matyas and Andrew
Glover
• 2009.01 - “Agile Testing” book Lisa Crispin and Janet Gregory (Author)
Quite clearly, the trend of software development is moving towards frequent releases
backed up by automated functional testing.
4. Testing for better code quality ⇒ Testing for overall quality and frequent releases
This movement shall not come as a surprise, as being able to push out software releases
frequently with high quality is every software project pursuing. You might have heard of
“Quality at speed”.
It is worth noting that the practices above (such as unit testing, refactoring, functional testing,
and CI/CD) are complementary, rather than as replacements. For example, in a software
team that embracing a whole-team-involved continuous testing process, programmers are
still encouraged to do automated unit testing with TDD.
Introduction 4
Can’t wait to see running some UI tests in a CT server? you may skip to Chapter
2 (to set up one yourself).
CI Reality
I remember at one CITCON (Continuous Integration and Testing Conference) in 2009, a
delegate talked about why he attended the conference: “I want to know how other projects
are doing CI? The closest CI experience I ever encountered was that one machine was
assigned to do it, then ticked the box. No one touched the machine again.” Many agreed
with him.
A decade later, most software claimed “doing CI” is no more than building (code) and
deployment (package), with little or no execution of automated tests …
Demystify CI
“Continuous” in CI means doing integration frequently when the software is ready, NOT
“doing it all the time”, which is simply impossible and unnecessary. “Integration” in CI
means packaging the team’s work together (along with dependent third party products)
into a release candidate and verify the software works as a whole, the keywords here are
‘integrate and verify’. What is the point of integrating a web app 100 times a day but keep
showing ‘Internal Error’ on the home page?
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier
to find and remove” – Martin Fowler
Introduction 5
As Martin Fowler pointed out, the main purpose of CI is to help the team to find and fix bugs
quicker and easier (via executing automated test scripts), in other words. Automated testing
is an essential part of a proper CI process. Now the question comes, why do we rarely see
the execution of automated tests in CI?
If we examine the typical CI tasks in a real CI process, it becomes quite clear why
incompetent CI specialists exclude the execution of automated tests: it is hard.
This only applies to compiled languages such as Java or C#, You don’t need this step if
using a dynamic language such as Ruby.
Deployment needs to be simple, reliable, and quick. With the popularity of cloud
deployment, new deployment technology emerges such as Chef, Docker/Kubernetes
containers. Unfortunately, many DevOps engineers (by the way, I think it is a wrong
title for a person who solely does deployment, as deployment is only counted for about
5% of DevOps work from my experiences) don’t use them well. More often than not,
they make deployment over-complicated, and as a result, fragile and slow.
In 2019, all projects I witnessed using Docker/Kubernetes containers were not good.
One was particularly bad, I have never seen a deployment process that was so fragile
(and slow) in my over 20 years of IT career (even worse than the dark days using EJB
containers). The test servers (a batch of containers) can barely function properly for
one day. But I did learn one thing new: “run out of inodes” error (I learned from the
Operating System course at Uni) can actually happen.
I am not against new deployment technologies, given they can indeed increase
productivity and simplify the work. If the end results are completely opposite to
your goal, stop and revert it back until you find the right person who can actually
do it properly. There are plenty of costly lessons in the software industry of blindly
following new hypes.
The deployment script (under 160 lines) performs the following tasks:
1. Get new code (git pull),
2. Update/install dependent libraries, not necessary in this case.
3. Database migration, no need for this deployment as
4. Precompile JS/CSS assets, no need for this deployment.
5. Package for release
6. Stop queue process (Sidekiq)
7. Start the queue process
8. Verify/Update cron job
9. Reload the app
If there are database changes or new libraries to be installed, the scripts will apply
installations as necessary.
For my every CI build, our deployment steps will deploy the updates to 9 test servers:
ci1.whenwise, ci2.whenwise, …, ci9.whenwise. Then automated tests will be run
against these test servers. We will cover the set up in later chapters. Here, I just
want to emphasise the importance of quick and reliable deployment, which is the
prerequisite task of CT.
https://github.com/mina-deploy/mina
Introduction 9
Apart from the success/failure indicator, build results might also highlight failed test cases
and artifacts (files generated out of the build process). Most CI servers keep the build history,
which can be generated into pretty charts for reporting purposes.
As you can see, there are three hard tasks (in the order of difficulty): “Database Migration”,
“Unit Testing” and “Functional Testing”. Few will deny the needs of these steps, though
most probably have never seen them done properly.
Introduction 10
This book is to help you to implement CT, the most challenging and rewarding task in CI:
execution automated functional tests.
• Database Migration
Study the database migration approach in Ruby on Rails, you might be able to work
out a feasible approach. For one Java project, I embedded Ruby on Rails’s database
migration scheme directly in the project code, then use JRuby to invoke database
migration in CI.
• Unit Testing
There are plenty of books and on-line resources on this topic. However, in practice,
despite majority programmers acknowledging the benefits of unit testing, unit
testing is mostly done adhocly. The fundamental reason, I think, is that programmers
lack knowledge of good unit testing practices. Please read ‘A Set of Unit Testing
Rules by Michael Feathers.
https://edgeguides.rubyonrails.org/active_record_migrations.html
https://www.artima.com/weblogs/viewpost.jsp?thread=126923
CI has been so messed up in practice that it is becoming meaningless. That is why a new term
comes up “Continuous Delivery” (CD in short, which later quickly lost its meaning as well),
somehow people find it fancier to say these two terms together “CI/CD”. In every project I
visited over the last decade, agile coaches/architects talked a lot about CI/CD and did not
do hands-on test automation, their continuous integration processes were all embarrassing
failures.
Once I worked at a software company, they had a Bamboo CI server with a number of
projects, which seldom ran and virtually no sign of executing automated tests. However,
they claimed they were providing CI consultancy to one of the top four banks in Australia.
If CI’s main purpose is to build a releasable software package, this has been achieved years
ago with build scripts, like an Ant task generating a deployable war file (back to J2EE days).
Triggering a build from a web interface and seeing build results (on CI server) is nice, but
Introduction 11
don’t you think there is not much to brag about? The purpose of CI is to ensure quality
releases by running automated tests against release candidates. The testing is the main part.
Some people might say “Continuous Testing” could be the next ruined ‘talker term’. Yes, that
could well be true, and probably already is. At this moment, we have run out of terms, sadly.
I will settle with the term “CT”, because of its emphasis on testing.
So what is the relationship between CT and CI? In simple words, CT is a part of CI, the most
important and difficult part. If a CI process is implemented well, there is no need for “CD”
or “CT”.
particular server product), without a doubt, the perspective has been set in unit testing,
which is wrong.
I have never seen a single successfully implemented CT using Jenkins, Bamboo,
TeamCity, GitLab, …, etc, these so-called popular CI servers. This does not mean CT
is impossible with them. Back in 2006, I implemented most of the techniques in this
book as a Java plugin to CruiseControl (the first CI server), with a good outcome. So
technically, it is possible with all CI servers. However, this requires quite a lot of work.
“By 2020, DevOps initiatives will cause 50% of enterprises to implement continuous testing
using frameworks and open-source tools.” – Predicts 2017: Gartner Report³
If I ask you the hottest term in the software development industry in the past 2 years, many
will say “DevOps”. Frankly, I think the term DevOps is quite vague (as opposing to ‘10-minute
build’ and ‘pair programming’), therefore, is open to interpretation.
I have heard a few DevOps talks, however, they left no marks on my brain. For one project
I witnessed in 2019, the executives got sold by the ‘impressive talk’ by a ‘DevOps talking-
expert’, engaged the consulting company to implement DevOps. These consultants were busy
talking, presenting, introducing new software …, for a few months. The result was a total
disaster, in the end, the teams were told to revert back to the old way. The reason is simple:
the foundation of DevOps is Continuous Testing. It is easy to understand, just imagine a
pipeline producing poor quality products in a factory. As we know, the quality problems
magnify in an order of magnitude.
³https://www.gartner.com/doc/3525622/predicts--application-development
Introduction 13
Let’s switch the focus to DevOps’ objective (instead of its definition). I resolve to Wikipedia⁴:
“It (DevOps) aims at establishing a culture and environment where building, testing, and
releasing software can happen rapidly, frequently, and more reliably”. This sounds quite like
the objective of Continuous Integration, doesn’t it? Except with an emphasized focus on
quality releases and feedback to the team. For example, if you set up a Jenkins or TeamCity
project to build software and run a few unit tests (i.e. programmer tests), you might call it
CI, but it is incomplete in terms of DevOps, as it does not include regression testing (at the
functional level) for releases.
I don’t mind DevOps at all. As a matter of fact, I have been developing software this way
(releasing high-quality software frequently with comprehensive automated testing) since
2007, and have shared my experience in numerous presentations. Only at that time, the term
“DevOps” and “CT” did not exist yet.
• When was the last time your project pushed a release to the production?
In the context of DevOps, the correct answers for the above are “Yesterday” and “At least
once a day”.
I have my reasons for using 99%+. Alan Page, the first author of “How We Test Software
at Microsoft” book, said this at Test Talk PodCast #44, March 2015⁵ “95% of the time, 95%
of test engineers will write bad GUI automation just because it’s a very difficult thing to do
correctly”. Alan’s view remains unchanged since 2008, when he wrote on his blog⁶ “For 95%
⁴https://en.wikipedia.org/wiki/DevOps
⁵https://testguild.com/podcast/automation/44-alan-page-testing-software-at-microsoft-lessons-learned/
⁶https://angryweasel.com/blog/gui-schmooey/
Introduction 14
of all software applications, automating the GUI is a waste of time. For the record, I typed
99% above first, then chickened out. I may change my mind again.”
Alan used ‘99%’ there, I added ‘+’ because most software companies won’t match Microsoft
on
Furthermore, Continuous Testing adds more challenges, by running the whole test suite as
regression testing frequently.
I know some might think: “if CT is almost mission impossible, how could I believe that you
can do it?”. I understand no matter what I say, it probably won’t be enough to convince
you. Instead, I write this book (and produced videos on the book site) to guide you in
implementing CT step by step.
In the next chapter, I will show you how to set up a CT server and run a set of Selenium
WebDriver tests, under 30 minutes.
3. Set up a CT server to run
Selenium tests in minutes
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
3.1 Objectives
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
3.2 Prerequisite
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
4.1 Terminology
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
4.6 Review
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
5. Why is CT important?
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
5.6 Training
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Business Analysts
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Why is CT important? 21
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
5.8 Review
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
6. Set up your own build project
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
How to succeed in CT? 25
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Freedom
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Affordable
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
How to succeed in CT? 26
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Quick Feedback
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Auto retry
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
How to succeed in CT? 27
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
How to succeed in CT? 28
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
8. The Magic - Build Script
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Reset data
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Common CI tasks
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
9.6 Notifications
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Ruby script
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Build Log
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Step Log
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
11. Sequential E2E Test Execution
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
11.2 Pre-requisite
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Prepare task
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Sequential E2E Test Execution 39
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Cleanup task
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Server
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Browser
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Headless mode
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Configure - Application
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Parallel Test Execution 43
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
15.2 Cost
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Operating Systems
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Parallel Testing Lab 48
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Parallel Testing Lab 49
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Parallel Testing Lab 50
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Be aware of limitations
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
15.8 Wrap up
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
16. Why do most projects fail in CT?
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Long feedback
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Why do most projects fail in CT? 54
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Why do most projects fail in CT? 55
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
17. CT with web app testing in
other frameworks
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Prerequisite
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
unittest
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
CT with web app testing in other frameworks 57
pytest
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Preparation
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Sequential Build
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Preparation
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Sequential Build
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
CT with web app testing in other frameworks 58
Preparation
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Sequential Build
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
17.6 Review
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
18. CT with Native apps and
Microservices
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
19. Other Uses
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Sequential Build
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Parallel Build
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Other Uses 61
19.6 Utilities
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
Other Uses 62
19.7 Wrap up
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
20. Appendix 1 CI Steps
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
21. Resources
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
21.1 Books
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
21.2 Tools
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.
22. References
This content is not available in the sample book. The book can be purchased on Leanpub at
http://leanpub.com/practical-continuous-testing.