10 research outputs found

    A Testing Strategy for Abstract Classes [Draft]

    Get PDF
    One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution-based testing strategies. A standard approach to testing abstract classes is to instantiate a concrete descendant class and test the features that are inherited. This paper presents a structured approach that supports the testing of features in abstract classes, paying particular attention to ensuring that the features tested are those defined in the abstract class. Two empirical studies are performed on a suite of large Java programs and the results presented. The first study analyzes the role of abstract classes from a testing perspective. The second study investigates the impact of the testing strategy on the programs in this suite to demonstrate its feasibility and to comment on the pragmatics of its use

    Remote operation and monitoring of a micro aero gas turbine

    Get PDF
    Internet applications have been extended to various aspects of everyday life and offer services of high reliability and security at relatively low cost. This project presents the design of a reliable, safe and secure software system for real-time remote operation and monitoring of an aero gas turbine with utilisation of existing internet technology, whilst the gas turbine is installed in a remote test facility This project introduces a capability that allows remote and flexible operation of an aero gas turbine throughout the whole operational envelope, as required by the user at low cost, by exploiting the available Internet technology. Remote operation of the gas turbine can be combined with other remote Internet applications to provide very powerful gas-turbine performance-simulation experimental platforms and real-time performance monitoring tools, whilst keeping the implementation cost at low levels. The gas turbine used in this experiment is an AMT Netherlands Olympus micro gas turbine and a spiral model approach was applied for the software. The whole process was driven by risk mitigation. The outcome is a fully functional software application that enables remote operation of the micro gas turbine whilst constantly monitors the performance of the engine according to basic gas turbine control theory. The application is very flexible, as it runs with no local installation requirements and includes provisions for expansion and collaboration with other online performance simulation and diagnostic tools. This paper will be presented at the ISABE 2017 Conference, 5-8 September 2017, Manchester, UK

    The Effect of Applying Design of Experiments Techniques to Software Performance Testing

    Get PDF
    Effective software performance testing is essential to the development and delivery of quality software products. Many software testing investigations have reported software performance testing improvements, but few have quantitatively validated measurable software testing performance improvements across an aggregate of studies. This study addressed that gap by conducting a meta-analysis to assess the relationship between applying Design of Experiments (DOE) techniques in the software testing process and the reported software performance testing improvements. Software performance testing theories and DOE techniques composed the theoretical framework for this study. Software testing studies (n = 96) were analyzed, where half had DOE techniques applied and the other half did not. Five research hypotheses were tested, where findings were measured in (a) the number of detected defects, (b) the rate of defect detection, (c) the phase in which the defect was detected, (d) the total number of hours it took to complete the testing, and (e) an overall hypothesis which included all measurements for all findings. The data were analyzed by first computing standard difference in means effect sizes, then through the Z test, the Q test, and the t test in statistical comparisons. Results of the meta-analysis showed that applying DOE techniques in the software testing process improved software performance testing (p \u3c 05). These results have social implications for the software testing industry and software testing professionals, providing another empirically-validated testing methodology. Software organizations can use this methodology to differentiate their software testing process, to create more quality products, and to benefit the consumer and society in general

    An Approach for Building Efficient Composable Simulation Models

    Full text link
    Models are becoming invaluable instruments for comprehending and resolving the problems originating from the interactions between humans, mainly their social and economic systems, and the environment. These interactions between the three systems, i.e. the socio-economic-natural systems, lead to evolving systems that are infamous for being extremely complex, having potentially conflicting goals, and including a considerable amount of uncertainties over how to characterize and manage them. Because models are inextricably linked to the system they attempt to represent, models geared towards addressing complex systems not only need to be functional in terms of their use and expected result but rather, the modeling process in its entirety needs to be credible, practically feasible, and transparent. In order to realize the full potential of models, the modeling workflow needs to be seen as an integral part of the model itself. Poor modeling practices at any stage of the model-building process, from conceptualization to implementation, can lead to adverse consequences when the model is in operation. This can undermine the role of models as enablers for tackling complex problems and lead to skepticism about their effectiveness. Models need to possess a number of qualities in order to be effective enablers for dealing with complex systems and addressing the issues that are associated with them. These qualities include being constructed in a way that supports model reuse and interoperability, having the ability to integrate data, scales, and algorithms across multiple disciplines, and having the ability to handle high degrees of uncertainty. Building models that fulfill these requirements is not an easy endeavor, as it usually entails performing problem description and requirement analysis tasks, assimilating knowledge from different domains, and choosing and integrating appropriate technique(s), among other tasks that require the utilization of a significant amount of time and resources. This study aims to improve the efficiency and rigor of the model-building process by presenting an artifact that facilitates the development of probabilistic models targeting complex socioeconomic-environmental systems. This goal is accomplished in three stages. The first stage deconstructs models that attempt to address complex systems. We use the Sustainable Development Goals (SDG) as a model problem that includes economic, social, and environmental systems. The SDG models are classified and mapped against the desirable characteristics that need to be present in models addressing such a complex issue. The results of stage one are utilized in the second stage to create an Object-Oriented Bayesian Networks (OOBN) model that attempts to represent the complexity of the relationships between the SDGs, long-term sustainability, and the resilience of nations. The OOBN model development process is guided by existing modeling best practices, and the model utility is demonstrated by applying it to three case studies, each relevant to a different policy analysis context. The final section of this study proposes a Pattern Language (PL) for developing OOBN models. The proposed PL consolidates cross-domain knowledge into a set of patterns with a hierarchical structure, allowing its prospective user to develop complex models. Stage three, in addition to the OOBN PL, presents a comprehensive PL validation framework that is used to validate the proposed PL. Finally, the OOBN PL is used to rebuild and address the limitations of the OOBN model presented in stage two. The proposed OOBN PL resulted in a more fit-for-purpose OOBN model, indicating the adequacy and usefulness of such an artifact for enabling modelers to build more effective models

    Empirical studies of structural phenomena using a curated corpus of Java code

    Full text link
    Contrary to 50 years\u27 worth of advice in the instructional literature on software design, long cyclic dependencies are found to be widespread in sizeable, curated corpus of real Java software. Among their causes may be overuse of static members, underuse of dependency injection and poor tool support for avoiding them.<br /

    A Testing Strategy for Abstract Classes [Draft]

    Get PDF
    One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution-based testing strategies. A standard approach to testing abstract classes is to instantiate a concrete descendant class and test the features that are inherited. This paper presents a structured approach that supports the testing of features in abstract classes, paying particular attention to ensuring that the features tested are those defined in the abstract class. Two empirical studies are performed on a suite of large Java programs and the results presented. The first study analyzes the role of abstract classes from a testing perspective. The second study investigates the impact of the testing strategy on the programs in this suite to demonstrate its feasibility and to comment on the pragmatics of its use

    A Testing Strategy for Abstract Classes [Draft]

    No full text
    One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution-based testing strategies. A standard approach to testing abstract classes is to instantiate a concrete descendant class and test the features that are inherited. This paper presents a structured approach that supports the testing of features in abstract classes, paying particular attention to ensuring that the features tested are those defined in the abstract class. Two empirical studies are performed on a suite of large Java programs and the results presented. The first study analyzes the role of abstract classes from a testing perspective. The second study investigates the impact of the testing strategy on the programs in this suite to demonstrate its feasibility and to comment on the pragmatics of its use

    A Testing Strategy for Abstract Classes [Draft]

    No full text
    One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution-based testing strategies. A standard approach to testing abstract classes is to instantiate a concrete descendant class and test the features that are inherited. This paper presents a structured approach that supports the testing of features in abstract classes, paying particular attention to ensuring that the features tested are those defined in the abstract class. Two empirical studies are performed on a suite of large Java programs and the results presented. The first study analyzes the role of abstract classes from a testing perspective. The second study investigates the impact of the testing strategy on the programs in this suite to demonstrate its feasibility and to comment on the pragmatics of its use
    corecore