Generation of test cases using UML models

2014 ◽  
Vol 13 (7) ◽  
pp. 4671-4674 ◽  
Author(s):  
Gurpreet Singh ◽  
Rasbir Singh

Software Testing plays an important role in Software development because it can minimize the development cost. UML is widely used in the software development, there consists of the designing and coding of the software. Designing phase is done with the help of the UML models, which consists of the sequence diagrams, activity diagrams, use case diagrams, state chart diagrams etc. After designing of the system, the next task is coding. Since the software development is time and human resource consuming, the reduction of consumption is done with the help of the code generation automatically. This work mainly focus on the UML sequence diagram and state chart diagram as the model. We Propose a Technique for Test Case Generation using UML Models. UML models give a lot of  information that should not be ignored in testing. An innovative approach of generating test cases from the combination of UML design diagrams has been discussed in this paper. Present work used an approach where sequence diagram and state chart diagram has been used to generate test cases. The test cases thus generated are suitable for dynamic testing of system.

Author(s):  
Vierdy Sulfianto Rahmadani ◽  
Indra Kharisma Raharjana ◽  
Taufik Taufik

Abstrak—Tujuan penelitian ini adalah penerapan reverse engineering untuk penentuan pola interaksi Sequence diagram yang bisa digunakan oleh sistem analis sebagai pola templateuntuk mendesain UML sequence diagram. Aplikasi yang digunakan sebagai data dasar berasal dari aplikasi contoh milik Android, aplikasi inilah yang mengalami proses reverse engineering dan teridentifikasi polanya. Tahap pertama yang dilakukan dalam penentuan pola interaksi ini adalah pengumpulan aplikasi dataset. Tahapan selanjutnya adalah identifikasi fitur dan aktifitas aplikasi, melakukan reverse engineeringsehingga didapatkan model sequence diagram,kemudian melakukan sistesis semua model tersebut menjadi pola interaksi sequence diagram. Langkah terakhir adalah menguji pola tersebut dengan menerapkannya dalam pembangunan aplikasi studi kasus. Berdasarkan hasil evaluasi, disimpulkan bahwa pola interaksi pada sequence diagram yang didapatkan dari penelitian ini dapat diterapkan pada perancangan perangkat lunak yang memiliki fitur-fitur yang sama dengan fitur-fitur yang terdapat pada penelitian ini. Kata Kunci— Reverse Engineering, Pola Interaksi, Sequence Diagram, AndroidAbstract—The purpose of this research is to apply the application of reverse engineering to determine interaction patterns of the Sequence diagram that can be used by system analysts as a template for designing UML sequence diagrams. Sample applications from android are used as dataset for reverse engineering and pattern identification. The first step is collecting application datasets. The next stage is identifying the features and applications activity, reverse engineering to obtain a sequence diagram model, and then synthesize all of the models into an interaction pattern of sequence diagram. The final step is to test the patterns by implementing it in an application development case stud. The evaluation results concludes that interaction patterns of sequence diagram designs obtained in reverse engineering steps is able to be implemented in software development that contained similar features with the obtained features in this research. Keywords— Reverse Engineering, Interaction Pattern, Sequence Diagram, Android


Software testing is one of the vital steps in software development life cycle. Test case generation is the first process in software testing which takes a lot of time, cost and effort to build an effective product from the start. Automatic test case generation is the best way to address this issue and model-based test case generation approach would be suitable for this automation process. One way to generate test cases automatically is by generating test cases from Unified Modeling Language (UML) models. The challenge with the existing test case generation techniques using UML models is that they provide a single view, meaning that the techniques capture a single aspect of the system, such as structural or behavioral but not both. In this paper, we have successfully developed a technique that automatically generates test cases which capture both structural and behavioral views of the system. These test cases can help to discover software faults early in the software development cycle. Finally, we conducted an experiment by comparing our technique with a manual process. The results show that the proposed technique can produce same test cases as manually writing test cases of the same system model but this technique saves a lot of time, effort and cost as well.


Author(s):  
DIANXIANG XU ◽  
WEIFENG XU ◽  
W. ERIC WONG

The new constructs in aspect-oriented programming bring new types of programming faults with respect to crosscutting concerns, such as incorrect pointcuts and advice. This paper presents a UML-based approach to testing whether or not an aspect-oriented program conforms to its expected crosscutting behavior. We explore aspect-oriented UML design models to derive tests for exercising interactions between aspects and classes. Each aspect-oriented model consists of class diagrams, aspect diagrams, and sequence diagrams. For a method under test, we weave the sequence diagrams of the advice on the method into the method's sequence diagram. Based on the woven sequence diagram and class/aspect diagrams, we then generate an AOF (Aspect-Object Flow) tree by applying coverage criteria such as condition coverage, polymorphic coverage, and loop coverage to woven sequence diagrams. In the AOF tree, each path from the root to a leaf is an abstract message sequence, indicating a template of test cases. A concrete test case is obtained by creating objects that satisfy the collective constraints in the template. Our empirical study shows that the model-based testing approach is capable of revealing several types of aspect-specific faults, including incorrect advice type, incorrect (weaker or stronger) pointcut strengths, and incorrect aspect precedence.


Author(s):  
Itti Hooda ◽  
R.S. Chhillar

More than 50% of software development effort is spent in testing phase in a typical software development project. Test case design as well as execution consume a lot of time. Hence, automated generation of test cases is highly required. Here a novel testing methodology is being presented to test object-oriented software based on UML state chart diagrams. In this approach, function minimization technique is being applied and generate test cases automatically from UML state chart diagrams. Software testing forms an integral part of the software development life cycle. Since the objective of testing is to ensure the conformity of an application to its specification, a test “oracle” is needed to determine whether a given test case exposes a fault or not. An automated oracle to support the activities of human testers can reduce the actual cost of the testing process and the related maintenance costs. In this paper, a new concept is being presented using an UML state chart diagram and tables for the test case generation, artificial neural network as an optimization tool for reducing the redundancy in the test case generated using the genetic algorithm. A neural network is trained by the back-propagation algorithm on a set of test cases applied to the original version of the system.


2009 ◽  
Vol 8 (2) ◽  
pp. 120-136 ◽  
Author(s):  
Shaohua Xie ◽  
Eileen Kraemer ◽  
R. E. K. Stirewalt ◽  
Laura K Dillon ◽  
Scott D Fleming

Learning about concurrency and synchronization is difficult for novices. Our research seeks to support and improve the teaching and learning of concurrency concepts and to improve comprehension of the intricacies of multiple thread interactions. This paper describes a series of empirical studies in the first phase of our research. We began by conducting a comparative study to empirically evaluate the usability by novices of the existing variants of the UML sequence diagram notation in solving comprehension tasks involving multiple thread interactions. The results implied that a deliberately designed variant of this notation may provide better support for reasoning about concurrent behavior. We then investigated the factors that complicate learning, with the idea that the same complexities would also complicate comprehension tasks. In order to understand the practical difficulties novices encounter in learning about concurrency, we conducted an instructor interview and an observational study. These investigations guided us in determining the desirable properties of a new notation. We then designed synchronization-adorned UML (saUML) sequence diagrams, which extend UML sequence diagrams with those properties. Finally, we performed four empirical studies to evaluate the usability and efficacy of saUML. Through these empirical studies, we were able to validate the benefits of saUML in enhancing novices' understanding of programs with different levels of synchronization complexity.


Author(s):  
RUCHIKA MALHOTRA ◽  
ABHISHEK BHARADWAJ

Software is built by human so it cannot be perfect. So in order to make sure that developed software does not do any unintended thing we have to test every software before launching it in the operational world. Software testing is the major part of software development lifecycle. Testing involves identifying the test cases which can find the errors in the program. Exhaustive testing is not a good idea to follow. It is very difficult and time consuming to perform. In this paper a technique has been proposed to do prioritize test cases according to their capability of finding errors. One which is more likely to find the errors has been assigned a higher priority and the one which is less likely to find the errors in the program has been assigned low priority. It is recommended to execute the test cases according their priority to find the errors.


Software testing play crucial role in the software development as it consumes lot of time and resources. However testing process needs to be more efficiently done because overall software quality relies upon good testing approach. The present research focus on generation of test cases from UML diagrams. The combination graph is made by using activity and sequence diagrams. These diagrams proves to be more efficient as activity diagram gives the dynamic behavior of the model and sequence diagram is used to understand detailed functionality of the system. In this paper, a combined approach using Breadth first and depth first search is proposed which will generate expected test cases. The comparative study is done for test case generation using BFS and DFS algorithm and the result proves that the DFS traversal algorithm provides more accurate result for path coverage.


Author(s):  
Gayatri Nayak ◽  
Mitrabinda Ray

Test case prioritization is a technical method to reorder the execution of test cases to reduce regression testing costs. This paper has examined various existing techniques that are widely used and suggests improving test case prioritization process after finding many research gaps. These research gaps are collected after doing a thorough study on 206 papers after surfing 310 papers on test case generation and prioritization techniques. These papers are collected from different electronic databases such as IEEE Explore, Science Direct, ACM Library, Springer, Wiley, and Elsevier. The authors have targeted to make a statistical record to show research contribution on test case prioritization at three levels of software development life cycle. This survey shows that 20.87% of papers are contributing for TCP at the requirement phase, 38.83% of papers are contributing for TCP at the design phase, 40.29% of papers are contributing to TCP at the coding phase. The inference of this study cites many future recommendations for the current researchers in the conclusion section.


The quality of the software is a very important aspect in the development of software application. In order to make sure there is the software of good quality, testing is a critical activity of software development. Thus, software testing is the activity which focuses on the computation of an attribute or the ability of either a system or program that decides if user requirements are met. There is a proper strategy for the design of software for which testing has to be adopted. The techniques of test case selection attempt at reduction of the test cases that need to be executed at the same time satisfying the needs of testing that has been denoted by the test criteria. In the time of software testing, and the resource will be the primary constraints at the time of testing since this has been a highly neglected phase in the Software Development Life Cycle (SDLC). The optimizing of a test suite is very critical for the reduction of the testing phase and also the selection of the test cases that eliminate unwanted or redundant data. All work in literature will make use of techniques of single objective optimization that does not have to be efficient as the code coverage will play an important role at the time of selection of test case. As the test case choice is Non-Deterministic, the work also proposes a novel and multi-objective algorithm like the Non-Dominated Sorting Genetic Algorithm II (NSGA II) and the Stochastic Diffusion Search (SDS) algorithm that makes use of the cost of execution and code coverage as its objective function. The results prove a faster level of convergence of the algorithm with better coverage of code in comparison to the NSGA II.


Sign in / Sign up

Export Citation Format

Share Document