Automating Test Activities Test Cases Creation Test Execution and Test Reporting With Multiple Test Automation Tools
Automating Test Activities Test Cases Creation Test Execution and Test Reporting With Multiple Test Automation Tools
International Journal of Computer, Electrical, Automation, Control and Information Engineering Vol:9, No:10, 2015
software test life cycle. This paper discusses on the challenges faced activities performed during Software Test Life Cycle
in the software test life cycle, and how the test processes and test irrespective of the size of the testing task. The calculation of
activities, mainly on test cases creation, test execution, and test test estimation can be based on past experiences or past data,
reporting is being managed and automated using several test
automation tools, i.e. Jira, Robot Framework, and Jenkins.
documents or knowledge available, assumption and risks. It is
always difficult to have an accurate estimation especially
KeywordsTest automation tools, test case, test execution, test when the testing task required some business domain
reporting. knowledge and the test engineers are new to the business
domain and often it requires some time buffering for learning
I. INTRODUCTION curve before they can be involved in the testing activities.
If there are automation scripts or automated test cases in
S OFTWARE testing is an important aspect of software
quality assurance. It is an evaluation process of a software
item to detect differences between the given input and the
place, the new test engineer can just trigger the test automation
execution and get the test result with minimum business
expected output. The testing result is then used to provide domain knowledge required. This will eliminate the learning
stakeholders with information about the quality of a product or curve time and indirectly makes the effort estimation becomes
service under test. more accurate.
The terms Verification and Validation are frequently B. Lack of Skilled Test Engineers
used in the software testing world. Verification is to ensure The testing in general often involves manual tasks. The test
that the product is being built according to the requirements engineer creates test cases and executes the test cases
and design specifications. It is to ensure that work products manually, step by step and indicates whether a particular step
meet their specified requirements. Validation is to ensure was accomplished successfully or whether it failed. It is very
that the product actually meets the users needs, and that the much depends on the individuals domain knowledge and
specifications were correct in the first place. It is to testing skill. One test engineer may approach and perform a
demonstrate that the product fulfills its intended use when test differently than another, thus, operating personnel human
placed in its intended environment [1]. error can occur easily if it is all done manually. Besides, poor
In this paper, there are three main software testing activities domain knowledge of test engineers can end up in ineffective
discussed, mainly on Test Planning, Test Execution, and Test test scenarios, test scripts and post implementation defects.
Reporting. Test planning involves scheduling and estimating There was a quote from Elizabeth Hendrickson, Most good
the system testing process, establishing process standards and testers have some measure of technical skill such as system
describing the tests that should be carried out [2]. Once the administration, databases, networks, etc. that lends itself to
test plan is finalized, test engineers may proceed with test gray box testing. A good test engineer should have both
design and test cases creation. Test execution includes the technical and non-technical skills. The better understanding of
execution of test cases or test scripts, manually or in an the application is, the better the bugs raised will be. If a test
automated way [3]. Test reporting is to communicate the test engineer can understand what a stack trace is and why it is
results and findings to the project stakeholders so that happening, the more effective he/she will be in
decisions can be made for the software release [4]. communicating what has happened and why to the developers.
II. THE CHALLENGES C. Lengthy Test Execution and Reporting Time
The following are the analysis of the challenges faced in the During the test execution phase, there might be several test
iterations involved. Test engineers execute the test cases and
report the test result manually. If the test result is failed,
Loke Mun Sei is with the Corporate Customer Quality & Strategic developers will fix the reported issue and test engineers will
Initiatives department of MIMOS Berhad, Kuala Lumpur, Malaysia (e-mail:
[email protected]). then retest and verify the same test cases. It is time consuming
International Scholarly and Scientific Research & Innovation 9(10) 2015 2213 scholar.waset.org/1999.4/10002771
World Academy of Science, Engineering and Technology
International Journal of Computer, Electrical, Automation, Control and Information Engineering Vol:9, No:10, 2015
if the same test cases were to be manually executed in each separator can vary, as long as there are at least two spaces (or
and every of the test iterations and also during the regression use tab), and it is thus possible to align the data nicely.
test phase.
Since the allocated time for testing is limited and the mobile
application needs to be published to the market within budget
and time, it is usually impossible for test engineers to retest all
of the existing test cases. The usual workaround would be to
prioritize and to select and test a small subset of the existing
test cases based on the timeline available. As a result, the test
coverage would be reduced and the risk of defects escaping
during the test phase could be alarming and very high.
International Scholarly and Scientific Research & Innovation 9(10) 2015 2214 scholar.waset.org/1999.4/10002771
World Academy of Science, Engineering and Technology
International Journal of Computer, Electrical, Automation, Control and Information Engineering Vol:9, No:10, 2015
Building/testing software projects continuously. It C. Test Reporting Test Case Execution Detailed Logs:
provides an easy-to-use continuous integration system, Using Robot Framework Plugin
making it easier for developers to integrate changes to the Robot Framework plugin collects and publishes Robot
project, and making it easier for users to obtain a fresh Framework test results in Jenkins [8]. Fig. 7 shows the sample
build. The automated, continuous build increases the plugin configuration.
productivity.
Monitoring executions of externally-run jobs, such as
cron jobs and procmail jobs, even those that are run on a
remote machine. Jenkins keeps those outputs and makes it
easy for notification when something goes wrong.
Once the Robot Framework test scripts or automated test
cases are created, we can then trigger and execute the test
using Jenkins automatically. Before the test automation script
can be triggered, a Jenkins job needs to be created. The
Jenkins job consists of the configurations/settings and
International Science Index, Computer and Information Engineering Vol:9, No:10, 2015 waset.org/Publication/10002771
International Scholarly and Scientific Research & Innovation 9(10) 2015 2215 scholar.waset.org/1999.4/10002771
World Academy of Science, Engineering and Technology
International Journal of Computer, Electrical, Automation, Control and Information Engineering Vol:9, No:10, 2015
Fig. 9 Sample Summary Report File (Passed Test Case) automation has a great impact on the test activities conducted.
Resource and effort estimation: Since the software testing
activities are now automated, it can then eliminate the test
engineers learning curve time and indirectly makes the test
effort estimation becomes more accurate.
Lack of skilled test engineers: Minimum business domain
knowledge is required to run the automated test scripts or
test cases and thus minimize the personnel human error.
Lengthy test execution and reporting time: Test execution
and reporting is no longer done manually and thus it
shortens the test cycle time.
For future work, we plan to integrate with development
team so that when development team has changed the codes, it
will trigger the automation job to build the changed
component, deploy the newly build component to the test
server, and then run the existing test cases automatically and
publish the result. This could be beneficial to both the
development and test team to verify which build is working
and which is not, and it is also easier to track and to debug on
the broken build.
International Scholarly and Scientific Research & Innovation 9(10) 2015 2216 scholar.waset.org/1999.4/10002771