Abstract

Hundreds of different mobile devices are on the market, produced by different vendors, and with different software features and hardware components. Mobile applications, while running on different devices, may behave differently due to variations in the hardware or O.S. components. Since mobile applications are expected to be deployed and executed on diverse mobile platforms, they must be validated on different mobile platforms and devices. Due to the peculiarities of mobile application development, there is a need for a quality assurance approach that focuses on its challenges. Moreover, mobile test executions take a long time because all the tests were executed in different environments and developers had to create complex tear down procedures. Such procedures were lengthy and far from perfect, leading to unpredictable failures. Regression testing is a crucial part of Mobile app development and it checks that software changes do not break existing functionality. An important assumption of regression testing is that test outcomes are deterministic and tests are expected to either always pass or always fail for the same code under test. But unfortunately, in real projects multiple release cycles, some tests— often called flaky tests—have non-deterministic outcomes. These tests undermine the regression testing cycle as they make it difficult to rely on test results. These results significantly reduced the trust in the tests and thus undermined the whole mobile app test automation effort. We trained machine learning classifiers separately on each test result dataset and compared performance across datasets. The proposed model predicts result types as Non-Deterministic or Deterministic tests from the regression suite results executed in various release cycles.

Highlights

  • We propose Decision Tree Algorithm and Random Forest Algorithm for identifying NonDeterministic Tests from pool of Results/Reports files

  • As there are some issues like “overfitting” with Decision tree algorithm, we further extended our finding with Random Forest Algorithm

  • Though there are more number of algorithms available in machine learning area for predictions, Decision Tree and Random Forest Algorithms are selected in this research paper

Read more

Summary

INTRODUCTION

Software Testing represents an important part of a software development Life Cycle process. They mined the bug repositories and version control systems of 211 Apache Software Foundation (ASF) projects and found 5,556 testrelated bug reports They compared properties of test bug with production bugs, such as active time and fixing effort needed and qualitatively study 443 randomly sampled test bug reports in detail and categorize them based on their impact and root causes. In another research work “Detecting Assumptions on Deterministic Implementations of Non-deterministic Specifications”, authors August Shi, et al.found a technique called NONDEX for detecting Non-Deterministic tests due to ADINS (Assumes a Deterministic Implementation of a method with a Non-Deterministic Specification) code They implemented NONDEX for Java and found 31 methods with non-deterministic specification in the Java Standard Library, manually built non-deterministic models for these methods, and used a modified Java Virtual Machine for these methods, and used a modified JVM to explore various nondeterministic choices. NonDEX detected 60 Non-Deterministic test in 21 opensource projects and 110 Non-Deterministic tests in 34 student submissions. [6]

MACHINE LEARNING
IMPLEMENTATION
Prediction Results
CONCLUSION
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call