190 research outputs found

    Testing object-oriented software

    Get PDF

    OMEN: A strategy for testing object-oriented software

    Full text link

    Optimizing Test Cases for Object-Oriented Software

    Get PDF
    - Testing object-oriented software is a challenging task. The inherent complexity in testing Object-oriented software is due to issues like inheritance and polymorphism. The behavior analysis and testing of object oriented software is significantly complicated because the state of the objects may cause faults that cannot be easily revealed with traditional testing techniques. This article proposes an improved technique for generating optimal number of test cases using mathematical techniques. The technique uses Colored Petri Nets (CPN), which is an extended version of Petri Nets. CPN’s are usually used for system modeling and simulation. The proposed method explores the problem to generate test cases that covers all instances of objects from different classes in the same hierarchy. It shows the effectiveness of technique by translating a specification represented by UML (unified modeling language) state chart into a CPN. The main solution of our approach will be implemented using CPN-tools

    Doctor of Philosophy

    Get PDF
    dissertationIn computer science, functional software testing is a method of ensuring that software gives expected output on specific inputs. Software testing is conducted to ensure desired levels of quality in light of uncertainty resulting from the complexity of software. Most of today's software is written by people and software development is a creative activity. However, due to the complexity of computer systems and software development processes, this activity leads to a mismatch between the expected software functionality and the implemented one. If not addressed in a timely and proper manner, this mismatch can cause serious consequences to users of the software, such as security and privacy breaches, financial loss, and adversarial human health issues. Because of manual effort, software testing is costly. Software testing that is performed without human intervention is automatic software testing and it is one way of addressing the issue. In this work, we build upon and extend several techniques for automatic software testing. The techniques do not require any guidance from the user. Goals that are achieved with the techniques are checking for yet unknown errors, automatically testing object-oriented software, and detecting malicious software. To meet these goals, we explored several techniques and related challenges: automatic test case generation, runtime verification, dynamic symbolic execution, and the type and size of test inputs for efficient detection of malicious software via machine learning. Our work targets software written in the Java programming language, though the techniques are general and applicable to other languages. We performed an extensive evaluation on freely available Java software projects, a flight collision avoidance system, and thousands of applications for the Android operating system. Evaluation results show to what extent dynamic symbolic execution is applicable in testing object-oriented software, they show correctness of the flight system on millions of automatically customized and generated test cases, and they show that simple and relatively small inputs in random testing can lead to effective malicious software detection

    A scheme to aid construction of left-hand sides of axioms in algebraic specifications for object-oriented program testing

    Get PDF
    In order to ensure reliability and quality, software systems must be tested. Testing object-oriented software is harder than testing procedure-oriented software. It involves four levels, namely the algorithmic level, class level, cluster level, and system level. We proposed a methodology TACCLE for class-and cluster- level testing. It includes an important algorithm GFT for generating fundamental equivalent pairs as class-level test cases based on axioms in a given algebraic specification for a given class. This formal methodology has many benefits. However, system analysts often find it difficult to construct axioms for algebraic specifications. In this paper, we propose a scheme to aid the construction of the left-hand sides of axioms. The scheme alleviates the difficulties of the system analysts and also helps them check the completeness, consistency, and independence of the axiom system. © 2008 IEEE.published_or_final_versionUnion Grant of Guangdong Province and National Natural Science Foundation of China (#U0775001), Guangdong Province Science Foundation (#7010116), and by a grant of the Youth Science Foundation of Jinan University (#51208035)

    Applying inspection to object-oriented software

    Get PDF
    The benefits of the object-oriented paradigmare widely cited. At the same time, inspection is deemed to be the most cost-effective means of detecting defects in software products. Why then, is there no published experience, let alone quantitative data, on the application of inspection to object-oriented systems? We describe the facilities of the object-oriented paradigm and the issues that these raise when inspecting object-oriented code. Several problems are caused by the disparity between the static code structure and its dynamic runtime behaviour. The large number of small methods in object-oriented systems can also cause problems. We then go on to describe three areas which may help mitigate problems found. Firstly, the use of various programming methods may assist in making object-oriented code easier to inspect. Secondly, improved program documentation can help the inspector understand the code which is under inspection. Finally, tool support can help the inspector to analyse the dynamic behaviour of the code. We conclude that while both the object-oriented paradigm and inspection provide excellent benefits on their own, combining the two may be a difficult exercise, requiring extensive support if it is to be successful

    Generating Effective Test Suites for Model Transformations Using Classifying Terms

    Get PDF
    Generating sample models for testing a model transformation is no easy task. This paper explores the use of classifying terms and stratified sampling for developing richer test cases for model transformations. Classifying terms are used to define the equivalence classes that characterize the relevant subgroups for the test cases. From each equivalence class of object models, several representative models are chosen depending on the required sample size. We compare our results with test suites developed using random sampling, and conclude that by using an ordered and stratified approach the coverage and effectiveness of the test suite can be significantly improved.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech

    Integration testing of object-oriented software

    Get PDF
    This thesis examines integration testing of object-oriented software. The process of integrating and testing procedural programs is reviewed as foundation for testing object-oriented software. The complexity of object-oriented software is examined. The relationship of integration testing and the software development life cycle is presented. Scenarios are discussed which account for the introduction of defects into the software. The Unified Modeling Language (UML) is chosen for representing pre-implementation and post-implementation models of the software. A demonstration of the technique of using post-implementation models representing the logical and physical views as an aid in integration and system testing of the software is presented. The use of UML diagrams developed from the software is suggested as a technique for integration testing of object-oriented software. The need for automating the data collection and model building is recognized. The technique is integrated into the Revised Spiral Model for Object-Oriented Software Development developed by du Plessis and van der Walt.ComputingD.Phil. (Computer Science
    • …
    corecore