International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056
Volume: 03 Issue: 11 | Nov -2016 www.irjet.net p-ISSN: 2395-0072
© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 793
Perceptual Difference for Safer Continuous Delivery
Ankit Ramakrishnan, Dr. Manjula R
Undergraduate, School of Computer Science and Engineering, VIT University, Vellore, Tamil Nadu, India
Professor, School of Computer Science and Engineering, VIT University, Vellore, Tamil Nadu, India
---------------------------------------------------------------------***---------------------------------------------------------------------
Abstract - Perceptual Difference is a proposed continuous
integration tool to enable safer Continuous Delivery. Existing
Continuous Delivery tools used for automated testing of Web
Applications are inherently dependent on code based testing
that uses algorithmic testing and is devoid of human
perception. Perceptual Difference combines concepts of
Computer Vision and CI to enable recognition of UI/View
based changes, assisting human testers to check development
branches with added scrutiny before deploying the
application.
Key Words: Continuous Delivery; Perceptual Difference;
Automated Testing
1. INTRODUCTION
Continuous Delivery and Continuous Integration are
common Software Engineering Paradigms used in the
Software Industry. They rely on a set of processes and
workflows that enable multiple programmers or developers
to access the Codebase and submit changes and revisions.
Continuous Delivery (CD) is a superset of Continuous
Integration (CI). Every change on the Codebase is
immediately deployed to production in CD after terse and
often very stringent testing and approval mechanism. Most
Penultimate processes in CD Involve testing and approval. As
a result of CI practices, Testing is majorly automated and
requires little to no human intervention. Testing is usually
followed by Quality Assurance (QA) which entails approval of
the currently staged branch of the Codebase. Perceptual
Difference (Perceptual Diff) is intended to reduce this QA
time by assisting in identifying changes in the UI. This enables
faster and safer CD.
The main aim of this methodology is to increase reliability
of automated tests. This will greatly increase speed and
accuracy of user acceptance tests, thus, resulting in faster
deployment rates. Faster release cycles are essential in a
market with increasing number of competitive agents that
are forever on the lookout for stumbles that a vendor makes
in an attempt to gain market share from their competitor’s
loss.
We shall focus on key aspects of perceptual image
difference, CD integrations and other metrics to determine
the efficiency of the proposed tool.
2. CONTINUOUS DELIVERY
Continuous Delivery as defined by the Agile Alliance is an
extension of the Continuous Integration methodology (CI)
that tries to reduce the cycle-time (lead time), which is the
time taken for a line of code written in development to be
used in the live version of a product which is targeted to
users. CD methods often involve the creation of Delivery and
Deployment Pipelines which are a series of integrations from
the point of authoring code to the final deployment to a
production environment.
These Integrations form the basis for Continuous Integration
(CI). In multi author projects that have a large number of
developers that have access to the development branch of the
project, it is necessary to have integration mechanisms in
place such that no single merge can compromise the state of
the production branch.
Fig-1: Anatomy of the Deployment Pipeline [1][2]
2.1 Continuous Integration
CI in the above scenario become absolutely necessary. CI
entails that the developers on the developer branch merge
their code to the main repository at regular intervals. After
merging this code a variety of build and test automation tasks
are performed to ensure build integrity. A CI pipeline is
usually centrally coordinated with a CI Server. Every revision
of the codebase triggers a central build test for that revision.
If approved the revision is merged with the
staging/production branch. If the tests or the build process