<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Yuz Tan ma Tabanl , K sa Dongulu, Surekli Entegrasyon ve Kalite Gozetimi?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>O zen O zkaya</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hatice Erdogan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alphan Caml</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Damla Gulen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nihat U k</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tamer Temizer</string-name>
          <email>tamer.temizerg@siemens.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Siemens A.S.</institution>
          ,
          <addr-line>Istanbul 34870</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Yaz l m kalitesinin yuksek olmas , organizasyonlar aras rekabette buyuk oneme sahiptir. Teknoloji dunyas nda yasanan buyuk degisimler goz onunde bulunduruldugunda, tum bu degisimlere adapte olmak ve kaliteyi yuksek tutmak buyuk onem arz etmektedir. Gunumuz dunyas nda, yaz l m surumlerinin surekli entegrasyonu bu ihtiyac adresleyen onemli bir pratik olarak one c kmaktad r. Surekli entegrasyon ile yaz l m n derlenmesi, test edilmesi, dogrulanmas , dag t m ve kalite olcumlerinin otomatik hale getirilmesi hede enmentedir. Kalite metriklerinin olcumu ile, daha yuksek seviye kalite bilgilerinin, yaz l m n her bir surumu icin takip edilmesi; yaz l m kalitesinin art s na buyuk katk saglamaktad r. Bu surecte yasanan genel bir problem ise,olas bir kalite dusuklugunun cok gec farkedilmesi ve yaz l m s onemli miktarda kodun tekrar degistirilmesi ihtiyac n n olusmas durumundur. Bu cal sma ile, surekli entegrasyon sisteminin k sa dongulerle tetiklenmesine iliskin, yuz tan ma bazl bir yontem onerilmektedir. Bu sayede gelistiriciye erken fazlarda kalite geri bildirimi verilebilmektedir.</p>
      </abstract>
      <kwd-group>
        <kwd>Cevik Yaz l m Testi</kwd>
        <kwd>Surekli Entegrasyon</kwd>
        <kwd>Test Otomasyon</kwd>
        <kwd>Cat s</kwd>
        <kwd>Guvenlik</kwd>
        <kwd>Yuz Tan ma</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Face Recognition Based Small-cycle Continuous</p>
      <p>Integration?
O zen O zkaya1 ??, Hatice Erdogan1, Alphan Caml 1, Damla Gulen1, Nihat U k1,
and Tamer Temizer1</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>
        A typical software development process consists of speci cation, design,
implementation, veri cation, validation, and maintenance. In literature, various
software development process models are proposed such as waterfall [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], spiral [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
and agile [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Agile approach suggests to manage changes by veri cation and
release of projects in small periods. To be able to manage this integration and
release cycles wisely, an automated continuous integration system is essential.
With this perspective, agile testing approach is mostly applied over continuous
integration principle. Continuous integration helps to increase release cycle rate
with more quali ed software and more e cient team work [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Even it is
obvious that establishing a continuous integration system has many advantages, it
comes with hard challenges in practice. One of the most aspect in this challenge
set is when and how to trigger continuous integration system in an optimal way.
This question is not properly adressed in literature. In this study, we aimed to
adress this issue with a new trigger approach.
      </p>
      <p>In this paper, we describe an identi cation system with face recognition
method within continuous integration approach. The system identi es
developer during the time spent in front of the development computer (or working
desk) and when developer leaves the computer, system detects it and after a
while system triggers the continuous integration pipeline including code format
checking, automated building, automated testing, quality measurement and
dependency reporting. After developer comes back, the system identi es developer
again and presents results to developer in a well organized report format. Even
the face recognition algorithm itself is not the contribution of this study, it will
be explained in further sections.</p>
      <p>The main aim with this system that is proposed in this paper is to test at
the earliest feasable time and use spare time of developer instead of allocating
extra time for veri cation of software. In addition to this, in the long run, we
target to motivate developers not to leave from their computer with incomplete
development. Because incomplete code could not be fully tested, an error report
is shown about that code. Empirical results showed that by using the proposed
system developers tend to leave their computer with buildable code and ready
for automated integration, instead of leaving in the middle of their work and
getting error noti cation about incomplete integration and veri cation results.
This tendency emprically resulted to a less number of bugs in the code.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Background</title>
      <p>
        Philip B. Crosby who is one of the contributors of quality management has
de ned quality as conformance to requirements [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Crosby has adopted "Do
it Right the First Time" and "Zero Defects" approaches [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. He has proposed
for the quali ed system that requirements must be analyzed well and prevented
errors instead of being detected later on. According to Crosby, "Zero Defect" is a
performance method in regard to people deal with each details and aim to avoid
errors. In that way, people adopt zero defect goals [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Joseph M. Juran who
is a missionary for quality management has de ned quality with two critical
de nitions. First of them is "Quality" means to meet customer requirements
and provide customer satisfaction, second de nition is that "Quality" is related
to "freedom from de ciencies" [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Juran has adopted quality planning, quality
control and quality improvement approaches in order to manage quality. W.
Edward Deming who is a quality expert has de ned quality as the customer's
current and future needs [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Deming's philosophy is to purify inconsistent parts
of the system and provide defect free process with continuous improvement [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>
        Agile methods along with continuous integration and test automation has
shown that increasing software quality without compromising cycle times and
development e ort is possible [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In order to reach higher levels of quality,
the agile methodologies are presented in 2001 [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Martin Fowler has described
continuous integration as "Continuous Integration is a software development
practice where members of a team integrate their work frequently; usually each
person integrates at least daily leading to multiple integrations per day" [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. In
continuous integration system, testing should start as early as possible as agile
methodology, when each change is integrated to system, automated tests run in
parallel. Common practice in continuous integration is developers commit daily
and build early. After a commit which is made into the mainline branch, a set
of tests starts to run. The duration of the tests needs to be small enough to
encourage developers to commit and build in small phases with smaller blocks
of codes [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-4">
      <title>Related Works</title>
      <p>
        One of the most essential software development practices of today is the
continuous integration. Continuous integration is a well-established practice where
development team integrates their work frequently. This integration is done by
automated builds, automated tests, quality measurements, and further checks
to detect integration errors, pitfalls or drawbacks as soon as possible [
        <xref ref-type="bibr" rid="ref10 ref13">13, 10</xref>
        ].
Continuous integration is reported to improve release frequency, predictability,
developer productivity, communication and it is reported to reduce risks and
defects [
        <xref ref-type="bibr" rid="ref15 ref20 ref23 ref9">23, 15, 20, 9</xref>
        ]. Continuous integration and agile testing are closely related
that a continuous integration system is often considered as a key practice
supporting agile development and testing environment [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        Continuous integration systems generally include quality measurement and
monitoring phase. So, measuring and monitoring software quality is as easy as
checking the integration build results which shows the quality metrics and quality
model calculations over the time [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. This process is practically applied by using
the tools like Jenkins, Atlassian Bamboo, and Teamcity [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. In this paper, all
of the studies are applied in the Jenkins environment.
      </p>
      <p>
        Build frequency of continuous integration systems is a very important
parameter in practice [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. A very low frequency will break the continuity of the
integration and a very high frequency will bring a huge integration overhead,
preventing team to advance. In literature, the major approach to determine
frequency of continuous integration is mostly the release frequency. In most of the
cases, continuous integration system is triggered on each check-in (or commit).
The main idea is here to trigger continuous integration process when source code
changes [
        <xref ref-type="bibr" rid="ref16 ref18 ref22 ref7 ref8">18, 7, 22, 16, 8</xref>
        ]. However, current practice on triggering continuous
integration on each commit is not su cient as most of the time a big amount of
code is pushed out and furthermore, it becomes too late to restore a pitfall. Of
course, triggering continuous integration each time code changes is not a good
idea because it will create a huge integration overhead. This paper presents a
face recognition based identi cation trigger for continuous integration systems
to provide reasonably small cycle integration.
      </p>
      <p>
        As the system uses face recognition based identi cation of developer (or
tester), a real time face recognition system over webcam is developed and
deployed on each development computer. A very good feature to describe facial
features is local binary patterns [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Eigenfaces [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] and Fisherfaces [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] are also
very popular methods which are used in face recognition systems.
      </p>
      <p>
        Another complete solution on face recognition is Openface, which is a
general purpose face recognition library which relies on deep learning [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. As it has a
proved success and it is easy to deploy, Openface can be used for face recognition
in practice. In this study, there is no aim of developing a new face recognition
approach; so any face recognition (or any other identi cation) system may be used
instead. Local binary patterns based face recognition algorithm is implemented
in this study which will be explained in the next section.
4
      </p>
    </sec>
    <sec id="sec-5">
      <title>Face Recognition Based Small-cycle Continuous</title>
    </sec>
    <sec id="sec-6">
      <title>Integration</title>
      <p>We present here our approach for providing a small cycle continuous integration
system. The reason behind the need of a smaller integration cycle is that in most
of the cases it becomes too late to redirect quality of the project with current
integration cycle approach. Current approaches on literature mostly suggest to
trigger continuous integration system once a code is released to repository. In
this paper we suggest to trigger the continuous integration epoch by detecting
the inexistence status of developer or tester.</p>
      <p>System is deployed with a webcam which looks towards the face of the
developer. In this process, system continuously captures the view of the developer
in real time and it runs a face detection and then face recognition algorithm
to identify if the developer is sitting across. No action is taken while developer
is recognized by the system. Accordingly, while developer leaves the work place
resulting being not recognized by the system for a while, system triggers the
continuous integration process autonomously.</p>
      <p>Once continuous integration process is triggered, system tries to build the
local version of the code rstly. If the code is buildable, then artefact executables
are used to run the automated tests. Even the code is buildable or not, quality
metrics of the code is measured and higher level quality models are calculated
by using the lower level metrics. In the next step, documentation of the code
and resulting reports of continuous integration system are auto-generated.</p>
      <p>After continuous integration epoch is completed, a summary pop-up window
is shown in the screen to inform the developer about the continuous integration
results, once developer comes back to the working desk and re-identi ed by the
webcam based face recognition system.</p>
      <p>In this process, developer is informed on each break and quality is measured
and monitored with a smaller-cycle. On each break, developer observes where
quality goes, which modules are a ected with the change and also the test
results are shown if code is left buildable. In gures 1 and 2 you will nd the
overall diagram of the setup for the proposed face recognition based small cycle
continuous integration system.</p>
      <p>Process ow of the described system can be summarized in gure 3.</p>
      <p>In the study revealed in this paper, face recognition is used as person
identication as it is pervasive and easy to use but surely other identi cation methods
like ngerprint, retina scan or even OS login may be used for the same purpose.</p>
      <p>
        Since implementing a novel face recognition algorithm is not the one of the
contributions of this study, a local binary analysis based face recognition
application is developed. As the evaluations of the face recognition
implementation resulted with %92 success ratio, it can be considered as highly succesful in
recognition for the application purpose. OpenFace framework is also evaluated
during the development but it is not preferred because of its dependencies to
side packets. It is shown that OpenFace provides near-human accuracy on the
LFW benchmark and it is always a choice for high precision recognition needs.
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In gure 4 you can nd the architecture of the OpenFace framework.
      </p>
      <p>As the continuous integration platform Jenkins is used in this study as it is
highly customizable, easy to use, open source and it has a signi cant amount of
plug-in support. Once trigger is arrived to continuous integration server, the rst
step is to check the code format. This process is done by using a formatter called
"uncrustify" and comparing the properly formatted code with original code. If
di erence between the les produces an empty set, then format test is assumed
to be passed. Otherwise di erence le is added to format report.</p>
      <p>The second step is to build the code. This step is usually achieved by using
Make les. Once code is the compiled, other supporting artefacts like con
guration les or databases are combined to deploy the system. Deployment test is a
smoke test of the application which checks if vital feature like bring up works
properly. Then all the automated tests including unit tests, feature tests and
memory usage tests are executed and reported. If code is not buildable, then
test report only includes the information of build errors and warnings.</p>
      <p>Even code is buildable or not, code quality analysis is executed. In this step,
source code is statically scanned and basic quality metrics like McCabe
complexity, QMin and duplication ratio are extracted for the project modules. This
metric set can be extended according to the needs. In most of the cases, a higher
quality model is constructed by using the basic quality metrics. At the end, a
quality report is generated which includes not only the current quality
measurements but also the change of the quality with previous release.</p>
      <p>Similar to the quality measurement step, a dependency analysis is statically
analysed for the source code version and newly created (or removed)
dependencies are reported.</p>
      <p>Finally, all the reports are attached to an e-mail and sent back to developer
to inform the developer about the result of continuous integration cycle.</p>
      <p>In practice, proposed system is built for embedded software projects while
it can be used for any type of software development projects. The di erence of
embedded software is that codes are mostly written in C or C++ languages.
Because of this fact, all the infrastructure is specially built to support C and
C++ based projects.</p>
      <p>Even it is possible to extend the quality model, in this study we used a basic
quality model which will be common for both C and C++ projects. Because
of these reasons, McCabe complexity, Qmin and duplication ratio are used as
quality metrics.</p>
    </sec>
    <sec id="sec-7">
      <title>Empirical Evaluation</title>
      <p>We empirically evaluate the face recognition based small cycle continuous
integration and quality monitoring approach by comparing it to traditional
continuous integration approaches. Our experiments address the following research
questions:
{ RQ1: How it is better to pick epoch cycle in continuous integration systems?
{ RQ2: What can be a useful trigger for continuous integration?
{ RQ3: What works better to intervene quality when it goes worse?
{ RQ4: What are the pros and cons of proposed system?</p>
      <p>Empirical evaluation is executed for 4 project teams with 17 team members
(developers) in total. Even it is hard to extract hard-numerical results,
development teams made signi cant observations about the e ects of the study.All the
feedbacks are collected from the team members and quality of change is tracked
for 2 weeks.</p>
      <p>The rst empirical result of the study addresses the rst research question.
If too large continuous integration cycle is preferred, then it would be too late
for the corrections in the system and quality. In this scenario, agility of the team
decreases sharply. On the other hand, when a too small continuous integration
cycle is preferred, then continuous integration overhead come o dramatically
which again decreases the agility of the team as development progress is slowed
down by unnecessary continuous integration attempts. Both of too small and
too large epoch cycle scenarios shows that just periodical trigger management
is not a good solution. Empirical results are also verifying this conclusion.</p>
      <p>Code commit based continuous integration trigger is usually hurts quality
management in continuous integration process as each commit is done after a
substantial amount of code is already written. There is no doubt in this case a
smaller cycle continuous integration trigger approach is needed but the problem
is that continuous integration overhead should not waste developer's
productive time. In this stage, second research question emerges as a better trigger
approach is essentially needed. Our approach which is proposed in this paper
does not waste productive time of developers as it triggers the continuous
integration system basically in developer's spare time. Our empirical evaluation
of face recognition based continuous integration trigger approach is an optimal
solution in terms of epoch cycle as all the process is executed when developer
leaves the working desk, our solution creates zero integration overhead. In this
manner, solution proposed in this study perfectly solves the research problem of
picking an optimal epoch cycle in continuous integration systems.</p>
      <p>Additionally, as face recognition based existence recognition system triggers
the continuous integration process on developer's spare time, it is obvious that
inexistence (of developer) based trigger is an optimal solution for continuous
integration triggers. This empirical result leads to a clear answer to second research
question.</p>
      <p>Our empirical evaluations also showed that, face recognition based trigger
triggers the continuous integration system 9.2 times a day on average. In this
process, continuous integration epoch is 52 minutes on average. This time is
experimentally observed as the interval of implementation of a small software
module. When developer leaves the place for a break up or a meeting, all the
continuous integration pipeline is executed and reported back. As the
implementation made in this interval is observed as a small software module, module's
integration report is immediately reported back to developer when coming back
to the desk. This optimal small cycle approach gave developer the opportunity
to intervene quality when it goes worse. Hence, third research question is also
answered with successful empirical outcomes. When comparing with previous
month, quality measurements are boosted by %76 on average for all of the 4
projects.</p>
      <p>As you can see from the gure 3, continuous integration system tries to build
the application after code format check are done. In our empirical experiences,
code is not always buildable when developer leaves the working desk. Even in
this case, format checking, metric calculation over static code analysis, partial
dependency analysis and related documentation is automatically executed by
the system. Only run time tests and memory analysis are not done in this case
as code is not left buildable, but all other steps are proceeding and developer
informed with related reports.</p>
      <p>After using the proposed system below, developers interestingly tend to left
their desk with buildable code to be able to get more detailed reports and
verication results of their implementation. After the rst week of evaluation, %84
of the continuous integration triggers are executed on buildable code according
to Jenkins logs. This tendency created fascinating outcomes as number of bugs
per code line is sharply (%42) decreased when comparing with previous months.
When trying to interpret the results, an important feedback is retrieved from the
developers about a di erence in their tendencies. After using the proposed
system, a while, developers used to leave their desk with buildable code, it means a
packed outcome of their studies and as their concentration is not broken during
the block implementation, we observed fewer bugs in the projects. This outcome
of the proposed system creates a huge impact on software development cycle
and code quality. As each bug comes with additional development costs, our
approach clearly decreases project costs while improving the quality sharply. This
experiences answers the forth research question; even unbuildable code
integration attempt can be seen as a con of the system, changing developer's tendencies
to leave their desk with buildable code created a great positive impact.</p>
      <p>One of the cons of the system occurs as false positive triggers. In some cases,
developers sits in front of computers but does not actively write codes.
Documentation or high level design tasks are good example of such cases.
6</p>
    </sec>
    <sec id="sec-8">
      <title>Future Work</title>
      <p>In this process, small CI phases can as early as possible to give result. And each
breaks will share CI result instead of waste of time. CI parts can be extended with
developers' behaviour. Because day by day each developers will be learned to
leave good, clean code as buildable, executable, runnable before giving a break.
And this behaviour will get into habit of doing for developers. And with this
habit CI will be more useful for software with early feed-back to developers for;
improving Code Quality, developing the traceable software, unit test, etc. We
can also improve small CI cycles even adding smoke Tests and getting its result
too. So, we can observe the test phase, if development sends package to test, test
can start or not?
7</p>
    </sec>
    <sec id="sec-9">
      <title>Conclusions</title>
      <p>In the software world, each day is coming with new steps and innovations. All of
us who has a role in this world should catch the innovations and one step forward.
And if we combine new ideas with the new features which are coming with new
technologies, we can be a part of the future creation team of the software world.</p>
      <p>In this paper, we focused on Continuous Integration part for building the
automation, testing, veri cation, deployment, and quality of the software. But
nowadays, analyzing the quality is only possible at the end of the CI (Continuous
Integration) for each releases. In the aproach revealed in this paper is written for
small CI cycles based on face detection of the developers. In each break of the
developers system will be triggered with face recognition automatically for CI,
and results will be shared with them when they will sit in front of the computer
again.</p>
      <p>For reaching the result in this paper face recognition method is described for
triggering the CI. And it shows each break is appraisable and it can be returned
with a result.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>AB</surname>
            ,
            <given-names>J.J.G.</given-names>
          </string-name>
          :
          <article-title>Juran's quality handbook (</article-title>
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ahonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hadid</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pietikainen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Face description with local binary patterns: Application to face recognition</article-title>
          .
          <source>IEEE transactions on pattern analysis and machine intelligence</source>
          <volume>28</volume>
          (
          <issue>12</issue>
          ),
          <year>2037</year>
          {
          <year>2041</year>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Amos</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ludwiczuk</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Satyanarayanan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Openface: A general-purpose face recognition library with mobile applications</article-title>
          .
          <source>CMU School of Computer Science</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beedle</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Bennekum</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cunningham</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grenning</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Highsmith</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hunt</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Je</surname>
            <given-names>ries</given-names>
          </string-name>
          , R., et al.:
          <article-title>Manifesto for agile software development (</article-title>
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Benington</surname>
          </string-name>
          , H.D.:
          <article-title>Production of large computer programs</article-title>
          .
          <source>Annals of the History of Computing</source>
          <volume>5</volume>
          (
          <issue>4</issue>
          ),
          <volume>350</volume>
          {
          <fpage>361</fpage>
          (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.W.:</given-names>
          </string-name>
          <article-title>A spiral model of software development and enhancement</article-title>
          .
          <source>Computer</source>
          <volume>21</volume>
          (
          <issue>5</issue>
          ),
          <volume>61</volume>
          {
          <fpage>72</fpage>
          (
          <year>1988</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bowyer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hughes</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Assessing undergraduate experience of continuous integration and test-driven development</article-title>
          .
          <source>In: Proceedings of the 28th international conference on Software engineering</source>
          . pp.
          <volume>691</volume>
          {
          <fpage>694</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. Dosinger,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Mordinyi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Bi</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Communicating continuous integration servers for increasing e ectiveness of automated testing</article-title>
          .
          <source>In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering</source>
          . pp.
          <volume>374</volume>
          {
          <fpage>377</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Downs</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plimmer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hosking</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          :
          <article-title>Ambient awareness of build status in collocated software teams</article-title>
          .
          <source>In: Proceedings of the 34th International Conference on Software Engineering</source>
          . pp.
          <volume>507</volume>
          {
          <fpage>517</fpage>
          . IEEE Press (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Duvall</surname>
            ,
            <given-names>P.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matyas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glover</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Continuous integration: improving software quality and reducing risk</article-title>
          .
          <source>Pearson Education</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Fisher, R.:
          <article-title>The use of multiple measures in taxonomic problems</article-title>
          . Ann. Eugenics. v7 pp.
          <volume>179</volume>
          {
          <fpage>188</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Fitzgerald</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stol</surname>
            ,
            <given-names>K.J.:</given-names>
          </string-name>
          <article-title>Continuous software engineering: A roadmap and agenda</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>123</volume>
          ,
          <issue>176</issue>
          {
          <fpage>189</fpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Foemmel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Continuous integration</article-title>
          . Thought-Works) http://www. thoughtworks. com/Continuous Integration. pdf
          <volume>122</volume>
          ,
          <issue>14</issue>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Galin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Software quality assurance: from theory to implementation</article-title>
          .
          <source>Pearson Education India</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Goodman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elbaz</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>" it's not the pants, it's the people in the pants" learnings from the gap agile transformation what worked, how we did it, and what still puzzles us</article-title>
          .
          <source>In: Agile</source>
          ,
          <year>2008</year>
          . AGILE'08. Conference. pp.
          <volume>112</volume>
          {
          <fpage>115</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Janus</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmietendorf</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumke</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Jager, J.:
          <article-title>The 3c approach for agile quality assurance</article-title>
          .
          <source>In: Proceedings of the 3rd International Workshop on Emerging Trends in Software Metrics</source>
          . pp.
          <volume>9</volume>
          {
          <fpage>13</fpage>
          . IEEE Press (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Je</surname>
            <given-names>ries</given-names>
          </string-name>
          , R.,
          <string-name>
            <surname>Anderson</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendrickson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Extreme programming installed</article-title>
          . Addison-Wesley
          <string-name>
            <surname>Professional</surname>
          </string-name>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tan</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
          </string-name>
          , H.:
          <article-title>A uni ed test framework for continuous integration testing of soa solutions</article-title>
          .
          <source>In: Web Services</source>
          ,
          <year>2009</year>
          .
          <article-title>ICWS 2009</article-title>
          . IEEE International Conference on. pp.
          <volume>880</volume>
          {
          <fpage>887</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Meyer, M.:
          <article-title>Continuous integration and its tools</article-title>
          .
          <source>IEEE software 31(3)</source>
          ,
          <volume>14</volume>
          {
          <fpage>16</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A hundred days of continuous integration</article-title>
          .
          <source>In: Agile</source>
          ,
          <year>2008</year>
          . AGILE'08. Conference. pp.
          <volume>289</volume>
          {
          <fpage>293</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Monnappa</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Pioneers of project management: Deming vs juran vs crosby (</article-title>
          <year>2017</year>
          ), https://www.simplilearn.
          <article-title>com/deming-vs-juran-vs-crosby-comparison-article</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Pesola</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tanner</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eskeli</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parviainen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bendas</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Integrating early v&amp;v support to a gse tool integration platform</article-title>
          .
          <source>In: Global Software Engineering Workshop (ICGSEW)</source>
          ,
          <year>2011</year>
          Sixth IEEE International Conference on. pp.
          <volume>95</volume>
          {
          <fpage>101</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Stahl</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bosch</surname>
          </string-name>
          , J.:
          <article-title>Modeling continuous integration practice di erences in industry software development</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>87</volume>
          ,
          <issue>48</issue>
          {
          <fpage>59</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Stolberg</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Enabling agile testing through continuous integration</article-title>
          .
          <source>In: Agile Conference</source>
          ,
          <year>2009</year>
          . AGILE'
          <volume>09</volume>
          . pp.
          <volume>369</volume>
          {
          <fpage>374</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Suarez</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          :
          <article-title>Three experts on quality management: Philip b</article-title>
          . crosby, w. edwards deming, joseph m.
          <source>juran. Tech. rep., TOTAL QUALITY LEADERSHIP OFFICE ARLINGTON VA</source>
          (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Turk</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pentland</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          :
          <article-title>Face recognition using eigenfaces</article-title>
          .
          <source>In: Computer Vision and Pattern Recognition</source>
          ,
          <year>1991</year>
          . Proceedings CVPR'
          <fpage>91</fpage>
          ., IEEE Computer Society Conference on. pp.
          <volume>586</volume>
          {
          <fpage>591</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>