<!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>Automation in software testing, can we automate anything we want?</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Ternopil Volodymyr Hnatiuk National Pedagogical University</institution>
          ,
          <addr-line>2, Maxyma Kryvonosa Str., Ternopil, 46027</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>0000</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>The article considers the problem of test automation software. The authors analyze testing tasks that can be automated. They also cite cases where the use of automation is inappropriate. The key factors of using automation are time and cost savings. According to the authors, the advantages of automated tests are: the ability to check the latest changes in the application (regression testing), speed of execution, saving the time of testers, the ability to create selftests by developers. The disadvantages of automatic tests are: insufficient reliability, need for support, fewer errors detected, a false sense of product quality. The following processes are identified, which can be automated: background processes, file logging, database entry, registration and payment systems, load tests, data entry operations, long-end-to-end scripts, checking complex mathematical calculations, checking correct search. The article provides statistics on the use of programming languages for developing automated tests. A comparative analysis of ready-made software products for automated testing is offered. Based on research analysis and experience, the authors believe that human intelligence is always required to validate the program. So, the authors justify the need to perform a manual and automated test.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Testing</kwd>
        <kwd>Quality Assurance</kwd>
        <kwd>Manual Software Testing</kwd>
        <kwd>Automation of Software Testing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Testing is a very important stage in software development life cycle (SDLC). This
process ensures that most errors are found. However, one of the principles of testing is
that all errors cannot be found – exhaustive testing is impossible [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Therefore, IT
experts believe that the end product (software or hardware) works as it should, if it is
as close as possible to certain functionality, reliability, performance.
      </p>
      <p>
        As the research and practical experience shows, the software development lifecycle
takes place during the following stages – analysis, design, development,
implementation, testing, deployment, and support (Fig. 1) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        As the speed of software development is increasing today, there is a need for quality
and timely testing. But some of the testing tasks are too time-consuming to perform
their manually. In addition, more and more companies are moving to work according
___________________
Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC BY 4.0).
to agile methodology. An agile process begins with initiating the project; in the
activities that follow, the software will be developed and deployed into the user
environment through multiple iterations. In most agile methodologies, maintenance
does not appear as a separate phase, but is rather performed through further iterations
of the main development phases [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. That’s why automation is becoming more
important than ever [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
Even 5 years ago, testing automation in Ukraine was economically unattractive.
      </p>
      <p>
        In article [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] Nikolay Alimenkov writes: “… look who supports conferences for
automated testers? And almost none. In large companies, this does not fit into the
"strategic development plan". Small is simply not interesting. As a result, automated
testing in Ukraine lives on thanks to the enthusiasm of the automators themselves” [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Today the situation has changed. Almost every company wants to have a automated
tester, no matter if it's a big company or a small one. Today, automation is not only
relevant in startups. As a result, writing self-tests is usually not time consuming. In
general, startups may not even have test cases. The growing numbers of communities,
forums, channels where automated testers discuss their problems, can also testify to the
great development of automation.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Relevance of the study</title>
      <p>
        Automated testing is now evolving rapidly. This is due to the fact that automated,
debugged processes will require less money, which is one of the key factors in IT. As
experience in the early days of the introduction of automation shows, it requires more
material costs, while fewer tests are performed instead. However, over time, it is
possible to significantly increase the number of test runs without significant investment.
The popularity of automated testing is also explained by the fact that more and more
“manual” testers want to develop in programming. Automation is a next stage of their
development. “The job was pretty boring. We were just supposed to look at flagged
differences and decide if they were a big deal or not. I wasn’t happy with that. I wanted
to know what caused the differences, so I started digging a little deeper", – John Sonmez
talks about it in the article “Going from QA (or Another Technical Role) to Software
Developer” [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In the paper reports an empirical study on the relationship between
code visibility and testability. The authors claim for manual testing, code visibility does
not necessarily affect test code coverage and fault detection rate. However, for
automated testing using testing tools, low code visibility often leads to low code
coverage and poor fault detection rate [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Based on our own experience, we can say that the process depends largely on the
project. One can often hear among testers that manual testing is not a tedious process,
but an approach is important.
      </p>
      <p>
        Systematic and automated approaches have shown capable of reducing the
overwhelming cost of engineering automated tests. Industrial success cases have been
openly reported and academic interest continues to grow as observed by the increasing
number of researchers in the field. While there exist various trends on evolving the
automation in software testing, the provision of sound empirical evidence is still needed
on such area [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The authors of [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] describes a strategy to develop automated testing suites to assess
the correctness of consent and revocation. This strategy is based on a formal language
in order to provide rigorous and unambiguous consent and revocation specifications,
and comprises of two novel procedures that facilitate the process of eliciting testing
requirements for privacy properties and creating automated privacy-testing suites.
      </p>
      <p>The purpose of the article. The dynamic pace of development of automated testing
requires the answer to the question “can we all automate?” What is the role of manual
testers in modern software development processes?</p>
    </sec>
    <sec id="sec-3">
      <title>Automated testing, its advantages and disadvantages</title>
      <sec id="sec-3-1">
        <title>Types of testing</title>
        <p>
          Software testing can be performed for different purposes. According to the purpose
there are such types of testing [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]:
─ Functional Testing is a type of software testing whereby the system is tested against
the functional requirements/specifications.
─ Usability Testing is a type of software testing done from an end-user’s perspective
to determine if the system is easily usable.
─ Security Testing is a type of software testing that intends to uncover vulnerabilities
of the system and determine that its data and resources are protected from possible
intruders.
─ Performance Testing is a type of software testing that intends to determine how a
system performs in terms of responsiveness and stability under a certain load.
─ Regression testing is a type of software testing that intends to ensure that changes
(enhancements or defect fixes) to the software have not adversely affected it.
─ Compliance Testing is a type of testing to determine the compliance of a system with
internal or external standards.
        </p>
        <p>All these types of tests can be performed both manual and automated.</p>
        <p>
          Researchers identify such phases of the software testing process [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]:
1. Preliminary Testing phase is conducted especially for testers to clarify the
specification requirements of the customer. Preliminary testing is performed during
the following steps: review requirements specification, prepare test plan, prepare
software tool, prepare test environment, prepare test case, prepare test automation
tool, determine acceptance test tool.
2. The testing phase is a separate phase which is conducted by a different test team after
the implementation is completed.
3. User acceptance testing phase which provides for checks integration testing, test
strategy document, integration testing signoff, repair and coordinate release.
Note that manual and automated testing can be used together at different stages of
software quality verification.
        </p>
        <p>Automated testing or testing automation is a method of testing software. The method
involves the use of special software tools to control the performance of tests. Then the
actual test results are compared with the predicted ones. Most operations are performed
automatically, with little or no intervention by the test engineer. Automated testers write
scripts (so-called automated test cases) that have a set of actions and checks. Properly
written automated tests can have many benefits and can be very useful for the project
and organization. However, there are some disadvantages of automated tests that you
should also be aware of.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Features and benefits of automated testing</title>
        <p>
          Regression testing. Automation testing is the most common for this type of testing.
Regression testing is a type of testing aimed at checking changes made to an application
or environment (debugging, code merging, migration to another operating system,
database, web server), to confirm that existing functionality is still working. Regression
can be both functional and non-functional tests. Typically, regression testing uses test
cases written in the early stages of development and testing. That is, regression
automated tests are performed at a predetermined time interval. They are usually
downloaded after every successful compilation (in small projects) or every night or
every week. This guarantees that the changes to the new version of the program do not
damage the already existing functionality. In the paper [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], authors discuss the
advantages and drawbacks of using UML diagrams for regression testing and analyze
that UML model helps in identifying changes for regression test selection effectively.
        </p>
        <p>Speed of execution. Automated verification scripts may take some time. However, it
takes less time to complete them than the person who would perform these checks
manually. Therefore, self-tests help to provide quick feedback to the development team.</p>
        <p>Time saving for testers. Test automation frees up testers' time. Therefore, they may
be more focused on exploring new features. Automated checks can be started
automatically with minimal supervision, or without any supervision, or manually.
Usually when you do not want to use automated tests there is a cyclical situation of lack
of time (Fig. 3).
Ability to create automated tests by developers. Automated tests are usually written in
the same language as the product being tested. As a result, the responsibility for writing,
conducting and performing tests becomes a shared responsibility. Everyone in the
development team, not just testers, can contribute to the quality of the software.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Disadvantages of automated testing</title>
        <p>False sense of product quality. For this reason, it is worth paying special attention to
successfully passed automated tests. This is especially important for user-level (UI) or
system-level functionality testing. The automated test only checks what is programmed
to be tested.</p>
        <p>All automated tests in the test suite may pass, but some mistakes may be not
identified. The reason for this is that this test was not designed to detect these specific
failures.</p>
        <p>Insufficient reliability. Automated checks may not be successful due to many factors.
For example, automatic checks can be broken by changing the user interface, shutting
down a service, or having a network problem. These problems do not directly affect the
program being tested, but may affect the outcome of automated tests.</p>
        <p>Need for support. It should be understood that automated tests require maintenance.
Automated checks are short-lived. Failure to update them will cause crashes. It is also
possible that some checks are no longer relevant or that they do not correspond to new
implementations of the software. These failures can affect the test results.</p>
        <p>Writing an automated test case is not a one-time effort. To get the most out of
automated tests, they need to be updated and up-to-date. This usually takes time, effort
and resources.</p>
        <p>Fewer errors detected than manual testing. Most errors are detected “accidentally”
or during exploratory testing. This type of testing involves the simultaneous study of a
software product, the design of tests and their execution. Its specificity is that at each
exploratory testing session there is an opportunity to test the application in different
ways.</p>
        <p>On the other hand, automated checks always follow the set path, sometimes with the
same test dataset. One can mention here one of the principles of testing – the “paradox
of the pesticide”. It is that by performing the same tests over and over again, we face
the fact that they find fewer and fewer errors. This is due to the development of the
system, as a result of many found defects are corrected and old test cases no longer
work. This in turn reduces the likelihood of finding new defects in the product.</p>
        <p>“Test automation is not always testing”. Here, it is understood that testing is a
research activity. Testing requires specific knowledge, a purposeful mind, and a
willingness to learn the application. Unfortunately, many people are wrong about the
importance of test automation. They get a test automation tool and want to get rid of all
the “manual testers”. But this is not possible because testing is not simply about
performing a set of predefined testing steps and comparing actual results with expected
results. The most recent tasks are automated checks.</p>
        <p>
          Ability to group failures into clusters. In the paper [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] present an approach to
automatically detect passing and failing executions using cluster-based anomaly
detection on dynamic execution data. The key hypothesis underlying the approach is
that failures will group into small clusters whereas passing executions will group into
larger ones.
        </p>
        <p>A person’s intelligence is always required to validate the program. Here’s how
Tommy Wyher says it: “Every day, we see hundreds of new apps and products out in
the market. A lot of testing takes place before they are released to the public. Automated
testing can speed up the process and is often seen as a replacement for manual testing.
However, manual testing still has a critical role in the QA process. By dedicating your
QA resources to only one of these approaches, you’ll miss many opportunities to
improve quality. Using manual and automated testing together will lead to a higher
quality, more stable product” [15].
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Tests that can be automated</title>
        <p>Let’s look at software components and processes that can be automated.
1. Hard to reach places in the system: background processes, file logging, database
entry.
2. Frequently used functionality where there is a high risk of errors: payment systems,
registrations, etc. Automation of critical functionality checks ensures fast errors,
since the test takes an average of several minutes.
3. Load tests that test the functionality of a system with a large number of requests.
4. Template operations, including data searches, input of forms with many fields,
checking their preservation.
5. Validation messages: fill in the fields with incorrect data and validation check.
6. Long end-to-end scenarios. For example, an online store scenario that involves: user
registration, product detail page (PDP), shopping cart, shopping cart, product
purchase, and confirmation of purchase.
7. Verification of data requiring accurate mathematical calculations, eg accounting or
analytical processing.
8. Checking the correctness of the data search.</p>
        <p>Although newer automated testing tools are emerging, it is still difficult to test the
functionality of the user interface. It is also not possible to automate the testing of a
new feature without at least one manual test run. Therefore, to say that you can automate
everything, for now, will be an exaggeration.</p>
        <p>Consider which tools are most often used to write automated tests.</p>
        <p>
          Automated tests are written in various programming languages, the most common
being Java. Figure 4 shows the distribution of automated programming languages in
the world [16]:
In addition to programming languages, there are other automation tools available in
software testing. Their comparative analysis is given in the Table 1 [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
Watir
2008
        </p>
        <p>Web
applications</p>
        <sec id="sec-3-4-1">
          <title>Free</title>
          <p>Windows,
Linux</p>
        </sec>
        <sec id="sec-3-4-2">
          <title>VBScript,</title>
          <p>Python,</p>
          <p>JavaScript, Ruby
Ruby PHP, C#,</p>
          <p>C++
No required. Advanced
Recommended skills needed
for advanced to integrate
test script various tools
Easy setup and Require
use. Need advanced
training to skills to
properly user install and
the tool use</p>
        </sec>
        <sec id="sec-3-4-3">
          <title>Free Windows, Linux</title>
        </sec>
        <sec id="sec-3-4-4">
          <title>Java, C#, Perl, Python, JavaScript, Ruby PHP</title>
        </sec>
        <sec id="sec-3-4-5">
          <title>Free Windows, Linux</title>
        </sec>
        <sec id="sec-3-4-6">
          <title>Java, Groovy</title>
        </sec>
        <sec id="sec-3-4-7">
          <title>VBScript</title>
        </sec>
        <sec id="sec-3-4-8">
          <title>Advanced No required.</title>
          <p>Programming skills needed Recommended
Skills to integrate for advanced
various tools test script</p>
          <p>Require
inaEsntaadslleUaotsifeon iansdskvtiaalllnlscateondd Easy suesteup and
use</p>
        </sec>
        <sec id="sec-3-4-9">
          <title>No required.</title>
          <p>Recommended
for advanced
test script
Complex in
installation.</p>
          <p>Need training to
properly user
the tool</p>
          <p>Each of these tools has its own peculiarities and scope. The most common tool for
automation is Selenium. This is because it is free and scripts can be written in many
programming languages, unlike other tools. Developed over 15 years ago, it has
evolved over the next decade. It is now a web browser automation tool. In most cases,
it is used to test Web applications, but this does not limit its scope.</p>
          <p>JMeter is used for load testing. Initially, this application was intended to test the
operation of the Apache Tomcat servlet container, which is essentially a web server.
With the development of Jmeter, the user interface has been improved and additional
features have been added that have made it an effective tool for performance testing
and load testing of web applications.</p>
          <p>It is impossible to say exactly what kind of tools will be popular in the future, as they
are in rapid development. In our opinion, this will greatly simplify testing automation.</p>
          <p>
            The authors of the article [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ] recommend to automate the user interface according to
the Mike Cohn scheme (Fig. 5). It shows the recommended proportion of tests to be
implemented on each test level. The pyramid contains 3 levels:
1. Low-level tests are much faster by nature. Faster tests give you faster feedback.
          </p>
          <p>Faster feedback from tests execution allows to catch issues early on, saving huge
amounts of costs.
2. Low-level tests are executed much earlier in the QA automation pipeline. Usually,
unit tests are run before each commit test. If this is true, then testers prevent bugs
and do not let them get into the project repository.
3. Low-level tests are much more stable than high-level ones.
It’s need to remember that high-level tests should be only the third defense shield, for
catching all the remaining issues that were not caught on the first two levels.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>In the process of the research, we found out the importance of testing in the software
development process. We found out what automation is and what role in testing. We
analyzed tools for writing automated scripts, provided statistics on the popularity of
programming languages to test automation across regions.</p>
      <p>Test automation is evolving very quickly, new tools and technologies are emerging
almost every week, but they are not yet fully replaceable, and everything cannot be
automated. Without human intervention, it is impossible to construct the testing
process, since testing requires intellectual intervention. In our opinion in the near future,
there will be a trend of increasing number of automated testers and a gradual decrease
in manual ones. It will become an obvious educational goal to become an expert in
automation. After training in the practical use the testing tools, manual testers will be
able to perform automated testing. Therefore, every tester who wants to be more in
demand in the IT should learn at least one programming language. So learning
programming and testing are processes that depend on each other.</p>
      <p>It cannot be said that automated testing will completely replace manual testing. As
a result, the conclusion is one: in the world of software testing, there will always be
room for both manual and automatic testing. The choice of testing methods is left for
every worker in this area.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Agrafiotis</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Creese</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goldsmith</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Developing a Strategy for Automated Privacy Testing Suites</article-title>
          . In: Camenisch J.,
          <string-name>
            <surname>Crispo</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fischer-Hübner</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leenes</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Russello</surname>
            <given-names>G</given-names>
          </string-name>
          . (eds.)
          <article-title>Privacy and Identity Management for Life</article-title>
          .
          <source>Privacy and Identity</source>
          <year>2011</year>
          .
          <source>IFIP Advances in Information and Communication Technology</source>
          , vol.
          <volume>375</volume>
          , pp.
          <fpage>32</fpage>
          -
          <lpage>44</lpage>
          . Springer, Berlin, Heidelberg (
          <year>2012</year>
          ). doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -31668-
          <issue>5</issue>
          _
          <fpage>3</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alimenkov</surname>
          </string-name>
          , N.:
          <article-title>Avtomatizatciia testirovaniia v Ukraine nikomu ne nuzhna (Nobody needs testing automation in Ukraine)</article-title>
          .
          <source>XP Injection</source>
          . https://xpinjection.com/articles/testautomation
          <article-title>-not-needed-in-ukraine (</article-title>
          <year>2013</year>
          ).
          <source>Accessed 20 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Anderson</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Best Automation Testing Tools for 2020 (Top 10 reviews)</article-title>
          . https://medium.com/@briananderson2209/
          <article-title>best-automation-testing-tools-</article-title>
          <string-name>
            <surname>for-</surname>
          </string-name>
          2018
          <string-name>
            <surname>-top-</surname>
          </string-name>
          10
          <string-name>
            <surname>-</surname>
          </string-name>
          reviews-8a4a19f664d2 (
          <year>2017</year>
          ).
          <source>Accessed 21 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bushnev</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Top 15 UI Test Automation Best Practices You Should Follow 2019</article-title>
          . BlazeMeter. https://www.blazemeter.com/blog/top-15
          <string-name>
            <surname>-</surname>
          </string-name>
          ui
          <article-title>-test-automation-best-practicesyou-should-</article-title>
          <string-name>
            <surname>follow</surname>
          </string-name>
          (
          <year>2019</year>
          ).
          <source>Accessed 27 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Casaglia</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pisani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>The integration and distribution phase in the software life cycle</article-title>
          . In: Ehrig H.,
          <string-name>
            <surname>Floyd</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nivat</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thatcher</surname>
            <given-names>J</given-names>
          </string-name>
          . (eds.)
          <source>Formal Methods and Software Development. TAPSOFT 1985. Lecture Notes in Computer Science</source>
          , vol.
          <volume>186</volume>
          , pp.
          <fpage>371</fpage>
          -
          <lpage>384</lpage>
          . Springer, Berlin, Heidelberg (
          <year>1985</year>
          ). doi:
          <volume>10</volume>
          .1007/3-540-15199-0_
          <fpage>24</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Endo</surname>
            ,
            <given-names>A.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bertolino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maldonado</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delamaro</surname>
            ,
            <given-names>M.E.</given-names>
          </string-name>
          :
          <article-title>Guest editorial foreword for the special issue on automated software testing: trends and evidence</article-title>
          .
          <source>Journal of Software Engineering Research and Development</source>
          <volume>6</volume>
          (
          <issue>2</issue>
          ) (
          <year>2018</year>
          ).
          <source>doi:10.1186/s40411-018-0047-3</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Fahad</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nadeem</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A Survey of UML Based Regression Testing</article-title>
          . In: Shi Z., MercierLaurent E.,
          <string-name>
            <surname>Leake</surname>
            <given-names>D</given-names>
          </string-name>
          . (eds.)
          <source>Intelligent Information Processing IV</source>
          .
          <article-title>IIP 2008</article-title>
          . IFIP - The
          <source>International Federation for Information Processing</source>
          , vol.
          <volume>288</volume>
          , pp.
          <fpage>200</fpage>
          -
          <lpage>210</lpage>
          . Springer, Boston (
          <year>2008</year>
          ). doi:
          <volume>10</volume>
          .1007/978-0-
          <fpage>387</fpage>
          -87685-6_
          <fpage>25</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ghahrai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Seven Principles of Software Testing</article-title>
          . https://www.testingexcellence.
          <article-title>com/seven-principles-of-software-</article-title>
          <string-name>
            <surname>testing</surname>
          </string-name>
          (
          <year>2018</year>
          ).
          <source>Accessed 21 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lawanna</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The Theory of Software Testing</article-title>
          .
          <source>AU Journal of Technology</source>
          <volume>16</volume>
          (
          <issue>1</issue>
          ),
          <fpage>35</fpage>
          -
          <lpage>40</lpage>
          . http://www.journal.au.edu/au_techno/
          <year>2012</year>
          /jul2012/journal161_article05.
          <string-name>
            <surname>pdf</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Mariani</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hao</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Subramanyan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhu</surname>
          </string-name>
          , H.:
          <article-title>The central role of test automation in software quality assurance</article-title>
          .
          <source>Software Quality Journal</source>
          <volume>25</volume>
          (
          <issue>3</issue>
          ),
          <fpage>797</fpage>
          -
          <lpage>802</lpage>
          (
          <year>2017</year>
          ).
          <source>doi:10.1007/s11219-017-9383-5</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Software Testing Types.
          <source>Software Testing Fundamentals. STF</source>
          . http://softwaretestingfundamentals.com/software-testing-types.
          <source>Accessed 21 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Sonmez</surname>
          </string-name>
          , J.:
          <article-title>Going from QA (or Another Technical Role) to Software Developer</article-title>
          . Simple Programmer. https://simpleprogrammer.com
          <article-title>/going-from-qa-to-software-</article-title>
          <string-name>
            <surname>developer</surname>
          </string-name>
          (
          <year>2016</year>
          ).
          <source>Accessed 20 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Tasharofi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramsin</surname>
          </string-name>
          , R.:
          <article-title>Process Patterns for Agile Methodologies</article-title>
          . In: Ralyté J.,
          <string-name>
            <surname>Brinkkemper</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henderson-Sellers</surname>
            <given-names>B</given-names>
          </string-name>
          . (eds.) Situational Method Engineering: Fundamentals and
          <string-name>
            <surname>Experiences. ME</surname>
          </string-name>
          <year>2007</year>
          . IFIP - The
          <source>International Federation for Information Processing</source>
          , vol.
          <volume>244</volume>
          , pp.
          <fpage>222</fpage>
          -
          <lpage>237</lpage>
          . Springer, Boston (
          <year>2007</year>
          ). doi:
          <volume>10</volume>
          .1007/978- 0-
          <fpage>387</fpage>
          -73947-2_
          <fpage>18</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <article-title>What Is The Benefit of Test Automation and Why Should We Do It? SmartBear Software</article-title>
          . https://smartbear.com/solutions/automated-testing (
          <year>2019</year>
          ). Accessed 20 Sep 2019 Wyher, T.:
          <article-title>5 Reasons Why Manual Testing Is Still Very Important</article-title>
          .
          <source>DZone DevOps</source>
          . https://dzone.com/articles/5
          <article-title>-reasons-why-manual-testing-is-still-very-</article-title>
          <string-name>
            <surname>importa</surname>
          </string-name>
          (
          <year>2016</year>
          ).
          <source>Accessed 21 Sep 2019</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <string-name>
            <surname>Yehezkel</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>World's Most Desirable Test Automation Skills!</article-title>
          , TestProject. https://blog.testproject.io/
          <year>2015</year>
          /12/03/worlds-most
          <article-title>-desirable-automation-</article-title>
          <string-name>
            <surname>skills</surname>
          </string-name>
          (
          <year>2015</year>
          ).
          <source>Accessed 21 Sep 2019</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>