Test Scenario Prioritization Using UML Use Case and Activity Diagram

Software testing mainly aims at providing software quality assurance by verifying the behavior of a software using a finite set of test cases. The continuous evolution of software makes it impossible to perform exhaustive testing. The need for regression

  • PDF / 391,502 Bytes
  • 14 Pages / 439.37 x 666.142 pts Page_size
  • 109 Downloads / 222 Views

DOWNLOAD

REPORT


Abstract Software testing mainly aims at providing software quality assurance by verifying the behavior of a software using a finite set of test cases. The continuous evolution of software makes it impossible to perform exhaustive testing. The need for regression testing is to uncover new software bugs in existing system after some changes have been made to ensure that the existing functionalities are working fine. Re-executing the whole test suite is time-consuming as well as expensive. Hence, this issue can be handled by test case prioritization technique. Prioritization helps to organize the test suites in an effective manner where high-priority test cases are executed earlier than the low priority test cases based on some criteria. In this paper, a new prioritization approach is proposed using UML use case diagram and UML activity diagram. We have applied our technique to a particular of a case study which indicates the effectiveness of our proposed approach in prioritizing test scenarios. Keywords Regression testing ⋅ UML ⋅ Activity diagram ⋅ Test scenarios ⋅ Control flow graph ⋅ Test case prioritization

1 Introduction Regression testing is needed to uncover new software bugs in existing system after some changes have been made to ensure that the existing functionalities are working fine. Regression testing is checking the entire system using the old test suits. It also ensures that the changes incorporated does not affect the other modules of P. Bhuyan (✉) ⋅ A. Ray ⋅ M. Das School of Computer Engineering, KIIT University, Bhubaneswar 751024, Odisha, India e-mail: [email protected] A. Ray e-mail: [email protected] M. Das e-mail: [email protected] © Springer Nature Singapore Pte Ltd. 2017 H.S. Behera and D.P. Mohapatra (eds.), Computational Intelligence in Data Mining, Advances in Intelligent Systems and Computing 556, DOI 10.1007/978-981-10-3874-7_47

499

500

P. Bhuyan et al.

the software and the customer’s business requirements. Due to the increase in size and complexity of the software, re-executing the whole test suite is time-consuming as well as expensive. It is impractical and inefficient to perform exhaustive testing. To handle this issue, an optimized way of testing is needed that would identify the maximum errors in less time and effort. Test case prioritization helps to organize the test case in an effective manner such that the beneficial test cases are executed first. Elbaum et al. [1] defined prioritization as follows: Given: T, a test suite; PT, the set of possible permutations of T : f is a function from PT to the real numbers. Problem: Find T′ ∈ PT such that (∀ T′′ ) (T′′ ∈ PT) (T′′ ≠T′ ) [f(T′ ) ≥ f(T′′ )]. Here, PT represents the set of all possible prioritizations of T and f is a function that, applied to any such ordering, yields an award value for that ordering. The advantage of prioritization is to detect faults as early as possible which help the testers to understand and resolve the errors at an early stage. Test case prioritization can be classified into two categories: code-based te