Generation of Software Test Data from the Design Specification Using Heuristic Techniques. Exploring the UML State Machine Diagrams and GA Based Heuristic Techniques in the Automated Generation of Software Test Data and Test Code.
Generation of software test data from the design specification using heuristic techniques.pdf (4.685Mb)Download
SupervisorDahal, Keshav P.
Hossain, M. Alamgir
Software test data
Software test code
Automatic test data generation
Genetic algorithm (GA) approach
The University of Bradford theses are licenced under a Creative Commons Licence.
InstitutionUniversity of Bradford
DepartmentDepartment of Computing
MetadataShow full item record
AbstractSoftware testing is a tedious and very expensive undertaking. Automatic test data generation is, therefore, proposed in this research to help testers reduce their work as well as ascertain software quality. The concept of test driven development (TDD) has become increasingly popular during the past several years. According to TDD, test data should be prepared before the beginning of code implementation. Therefore, this research asserts that the test data should be generated from the software design documents which are normally created prior to software code implementation. Among such design documents, the UML state machine diagrams are selected as a platform for the proposed automated test data generation mechanism. Such diagrams are selected because they show behaviours of a single object in the system. The genetic algorithm (GA) based approach has been developed and applied in the process of searching for the right amount of quality test data. Finally, the generated test data have been used together with UML class diagrams for JUnit test code generation. The GA-based test data generation methods have been enhanced to take care of parallel path and loop problems of the UML state machines. In addition the proposed GA-based approach is also targeted to solve the diagrams with parameterised triggers. As a result, the proposed framework generates test data from the basic state machine diagram and the basic class diagram without any additional nonstandard information, while most other approaches require additional information or the generation of test data from other formal languages. The transition coverage values for the introduced approach here are also high; therefore, the generated test data can cover most of the behaviour of the system.
Showing items related by title, author, creator and subject.
Software test case generation from system models and specification. Use of the UML diagrams and High Level Petri Nets models for developing software test cases.Dahal, Keshav P.; Hossain, M. Alamgir; Alhroob, Aysh M. (University of BradfordSchool of Computing, Informatics and Media, 2012-06-29)The main part in the testing of the software is in the generation of test cases suitable for software system testing. The quality of the test cases plays a major role in reducing the time of software system testing and subsequently reduces the cost. The test cases, in model de- sign stages, are used to detect the faults before implementing it. This early detection offers more flexibility to correct the faults in early stages rather than latter ones. The best of these tests, that covers both static and dynamic software system model specifications, is one of the chal- lenges in the software testing. The static and dynamic specifications could be represented efficiently by Unified Modelling Language (UML) class diagram and sequence diagram. The work in this thesis shows that High Level Petri Nets (HLPN) can represent both of them in one model. Using a proper model in the representation of the software specifications is essential to generate proper test cases. The research presented in this thesis introduces novel and automated test cases generation techniques that can be used within a software sys- tem design testing. Furthermore, this research introduces e cient au- tomated technique to generate a formal software system model (HLPN) from semi-formal models (UML diagrams). The work in this thesis con- sists of four stages: (1) generating test cases from class diagram and Object Constraint Language (OCL) that can be used for testing the software system static specifications (the structure) (2) combining class diagram, sequence diagram and OCL to generate test cases able to cover both static and dynamic specifications (3) generating HLPN automat- ically from single or multi sequence diagrams (4) generating test cases from HLPN. The test cases that are generated in this work covered the structural and behavioural of the software system model. In first two phases of this work, the class diagram and sequence diagram are decomposed to nodes (edges) which are linked by Classes Hierarchy Table (CHu) and Edges Relationships Table (ERT) as well. The linking process based on the classes and edges relationships. The relationships of the software system components have been controlled by consistency checking technique, and the detection of these relationships has been automated. The test cases were generated based on these interrelationships. These test cases have been reduced to a minimum number and the best test case has been selected in every stage. The degree of similarity between test cases is used to ignore the similar test cases in order to avoid the redundancy. The transformation from UML sequence diagram (s) to HLPN facilitates the simpli cation of software system model and introduces formal model rather than semi-formal one. After decomposing the sequence diagram to Combined Fragments, the proposed technique converts each Combined Fragment to the corresponding block in HLPN. These blocks are con- nected together in Combined Fragments Net (CFN) to construct the the HLPN model. The experimentations with the proposed techniques show the effectiveness of these techniques in covering most of the software system specifications.
Software rejuvenation in cluster computing systems with dependency between nodesYang, M.; Min, Geyong; Yang, W.; Li, Z. (2014)Software rejuvenation is a preventive and proactive fault management technique that is particularly useful for counteracting the phenomenon of software aging, aimed at cleaning up the system internal state to prevent the occurrence of future failure. The increasing interest in combing software rejuvenation with cluster systems has given rise to a prolific research activity in recent years. However, so far there have been few reports on the dependency between nodes in cluster systems when software rejuvenation is applied. This paper investigates the software rejuvenation policy for cluster computing systems with dependency between nodes, and reconstructs an stochastic reward net model of the software rejuvenation in such cluster systems. Simulation experiments and results reveal that the software rejuvenation strategy can decrease the failure rate and increase the availability of the cluster system. It also shows that the dependency between nodes affects software rejuvenation policy. Based on the theoretic analysis of the software rejuvenation model, a prototype is implemented on the Smart Platform cluster computing system. Performance measurement is carried out on this prototype, and experimental results reveal that software rejuvenation can effectively prevent systems from entering into disabled states, and thereby improving the ability of software fault-tolerance and the availability of cluster computing systems.
An operations perspective on strategic alliance success factors in the software industry: An exploratory study of alliance managers in the software industry.Taylor, W. Andrew (Emerald, 2005)Purpose ¿ To explore alliance managers' perceptions of the most significant determinants of strategic alliance success in the software sector. Design/methodology/approach ¿ The study is based on 30 key informant interviews and a survey of 143 alliance managers. Findings ¿ While both structural and process factors are important, the most significant factors affecting alliance success are the adaptability and openness of the alliance partners, human resource practices and partners' learning capability during implementation. Alliance partners should pay more attention to operational implementation issues as an alliance evolves, in order to achieve successful cooperative relationships. Research limitations/implications ¿ This research has responded to the call for more empirical study of the underlying causes of successful alliances. It contributes to the ongoing debate about which factors have most impact on strategic alliance outcomes, and complements prior research on several dimensions. First, using selected interview quotations to illuminate the quantitative analysis, it contributes to a deeper understanding of the alliance process, and reduced the ambiguity about which factors are most influential. In particular, the study provides support for those authors who have argued for the relative importance of the alliance implementation process. Second, support has also been found for the prominence of learning capability and the inter-partner learning process as a major component of effective alliance implementation. Third, the results are based on the views of practicing alliance managers, which addresses a recognized gap in the literature. Practical implications ¿ The results send a signal to senior managers contemplating strategic alliances that they should not underestimate the importance of alliance process factors and the role that alliance managers play in achieving successful alliance relationships. This is particularly important, given the high levels of alliance failure reported in the extant literature. Originality/value ¿ While past research on strategic alliances has placed more emphasis on the importance of alliance formation than on implementation, there is an ongoing debate about whether structural, formation factors have more influence on alliance success than implementation or process factors. There has been only limited empirical work examining this interplay between structure and process, particularly from an operations perspective, and very few studies have examined strategic alliances in the software industry.