We present an Immune Inspired Algorithm, based on CLONALG, for software test data evolution. Generated tests are evaluated using the mutation testing adequacy criteria, and used to direct the search for new tests. The effectiveness of this algorithm is compared against an elitist Genetic Algorithm, with effectiveness measured by the number of mutant executions needed to achieve a specific mutation score. Results indicate that the Immune Inspired Approach is consistently more effective than the Genetic Algorithm, generating higher mutation scoring test sets in less computational expense.
The conference on grand challenges, held in Newcastle on 30 and 31 March 2004, occurred at a particularly opportune time. The strand on the educational aspects was particularly relevant and the idea innovative in the sense that this was the first occasion on which a grand challenge event with a focus on educational issues in computing had taken place. This paper provides some of the background and includes a distillation of the educational challenges that emerged from that event.
ABSTRACTThe way in which universities moved from an elite system of education in the 1960s to a more inclusive system of education in the 1990s has been a great success story. Computer Science has played its part, becoming a subject taught in some form in almost every university in the developed world. Those of us who were in the subject at the start of its significant growth remember the battles to get Computer Science recognised as an acceptable academic subject, and the ways in which it subsequently came to dominate many of the more traditional subjects in a university's portfolio. But as we move into the 21st century universities are entering the most volatile and turbulent time for higher education since the early 1980s, and the dangers for Computer Science are acute.For the first time in its history Computer Science is not expanding; other disciplines are encroaching on its territory; the science base (at least in English schools) is in decline; the computing industry is tentative. We are now seeing 18-year-old students with at least 10 years computing experience, who can write flawless code while holding a dozen simultaneous e-conversations and watching the TV. In their highly parallel universe, they find "hello world" uninteresting (even if it has a browser interface). They are natural collaborators - wired, extrovert and hyper-social; they are digital natives whereas their teachers are digital immigrants.How will Computer Science survive the current turmoil? What can the past tell us about the future?
The way in which universities moved from an elite system of education in the 1960s to a more inclusive system of education in the 1990s has been a great success story. Computer Science has played its part, becoming a subject taught in some form in almost every university in the developed world. Those of us who were in the subject at the start of its significant growth remember the battles to get Computer Science recognised as an acceptable academic subject, and the ways in which it subsequently came to dominate many of the more traditional subjects in a university's portfolio. But as we move into the 21st century universities are entering the most volatile and turbulent time for higher education since the early 1980s, and the dangers for Computer Science are acute.For the first time in its history Computer Science is not expanding; other disciplines are encroaching on its territory; the science base (at least in English schools) is in decline; the computing industry is tentative. We are now seeing 18-year-old students with at least 10 years computing experience, who can write flawless code while holding a dozen simultaneous e-conversations and watching the TV. In their highly parallel universe, they find "hello world" uninteresting (even if it has a browser interface). They are natural collaborators - wired, extrovert and hyper-social; they are digital natives whereas their teachers are digital immigrants.How will Computer Science survive the current turmoil? What can the past tell us about the future?
The way in which universities moved from an elite system of education in the 1960s to a more inclusive system of education in the 1990s has been a great success story. Computer Science has played its part, becoming a subject taught in some form in almost every university in the developed world. Those of us who were in the subject at the start of its significant growth remember the battles to get Computer Science recognised as an acceptable academic subject, and the ways in which it subsequently came to dominate many of the more traditional subjects in a university's portfolio. But as we move into the 21st century universities are entering the most volatile and turbulent time for higher education since the early 1980s, and the dangers for Computer Science are acute.For the first time in its history Computer Science is not expanding; other disciplines are encroaching on its territory; the science base (at least in English schools) is in decline; the computing industry is tentative. We are now seeing 18-year-old students with at least 10 years computing experience, who can write flawless code while holding a dozen simultaneous e-conversations and watching the TV. In their highly parallel universe, they find "hello world" uninteresting (even if it has a browser interface). They are natural collaborators - wired, extrovert and hyper-social; they are digital natives whereas their teachers are digital immigrants.How will Computer Science survive the current turmoil? What can the past tell us about the future?
Over time programming languages develop, paradigmsevolve, development teams change. The effect of this is that test suites wear out, therefore these also need to evolve. Mutation testing is an effective fault-based testing approach, but it is computationally expensive. Any evolutionary based approach to this process needs to simultaneously manage execution costs. In this conceptual paper we adopt immune systems as a metaphor for the basis of an alternative mutation testing system. It is envisaged that through monitoring of the development environment, a minimal set of effective mutations and test cases can be developed – a ‘vaccine’ – that can be applied to the software development process to protect it from errors – from infections.
This paper presents the results of a three year research program to develop an automated test-data generation framework to support the testing of safety-critical software systems. The generality of the framework comes from the exploitation of domain independent search techniques, allowing new test criteria to be addressed by constructing functions that quantify the suitability of test-data against the test-criteria. The paper presents four applications of the framework - specification falsification testing, structural testing, exception condition testing and worst-case execution time testing. The results of three industrial scale case-studies are also presented to show that the framework offers useful support in the development safety-critical software systems.
In this paper we present a different way to think of the process of teaching. We present a model that categorises teaching as a balance amongst and between three modes, Active, Passive and Serendipitous. We illustrate this with a case study of a first-year Computer Science course in Information Systems.
LI SA H A N EY Did it happen? Well, no, not yet anyway. The late 1990s were characterized not by massive unemployment among programmers worldwide but by considerable shortages of such skilled personnel. This was caused in part by the demands of addressing myriad Y2K problems, particularly those relating to longterm legacy software. As these problems passed, the so-called “skills shortage” showed no sign of abating. Indeed, the demand for programmers, systems analysts, and software engineers is regularly reported by some companies to be in the thousands, and in large multinationals in the tens of thousands. So, for now it seems reports of the decline of the programmer are premature. But what of the future? It is possible the term “skills shortage” is a misnomer, for there are probably many skills shortages. Discounting the so-called “IT skills” shortages in large sections of the work force in most developed countries, there are currently undoubted shortage areas such as networking technology (a technology that has increased in strategic importance throughout the 1990s), and platform-independent programming languages such as Java (which might be regarded as ■ In his 1991 book, The Decline and Fall of
The exception handling code of a system is in generalthe least documented, tested and understood part,since exceptions are expected to occur only rarely. Thispaper presents a technique for automatically generatingtest-data to test exceptions. The approach isbased on the application of a dynamic global optimisationbased search for the required test-data. Theauthors" work has focused on test-data generation forsafety-critical systems. Such systems must be free fromanomalous and...
Increasingly fierce commercial pressures necessitate the use of advanced software lifecycle techniques to meet growing demands on both product time-to-market and business performance. Two significant methods of achieving such improved cycle-time capability are concurrent software engineering and staged-delivery. Concurrent software engineering exploits the potential for simultaneous performance of development activities between projects, product deliveries, development phases, and individual tasks. Staged-delivery enables lifecycle iteration to supply defined chunks of product functionality at pre-planned intervals. Used effectively, these techniques provide a powerful route to reduced cycle-times, increased product quality and, potentially, lower development costs. However, the degree and manner in which these techniques should be applied remains an area for active research.This paper identifies some of the issues and open problems of incremental lifecycle management by reference to the development of aeroengine control systems within Rolls-Royce plc. We explain why system dynamics is a promising technique for evaluating strategies for lifecycle concurrency and iteration.
One of the major costs in a software project is the construction of test-data. This paper outlines a generalised test-case data generation framework based on optimisation techniques. The framework can incorporate a number of testing criteria, for both functional and non-functional properties. Application of the optimisation framework to testing specification failures and exception conditions is illustrated. The results of a number of small case studies are presented and show the efficiency and effectiveness of this dynamic optimisation-base approach to generating test-data.
One of the major costs in a software project is the construction of test-data. This paper outlines a generalised test-case data generation framework based on optimisation techniques. The framework can incorporate a number of testing criteria, for both functional and non-functional properties. Application of the optimisation framework to testing specification failures and exception conditions is illustrated. The results of a number of small case studies are presented and show the efficiency and effectiveness of this dynamic optimisation-base approach to generating test-data.
This paper describes the rationale for integrating a structured systems analysis method (SSADM, version 4) and a formal notation (Z). It introduces the SAZ Method and shows how this can be used to add rigour to the specification of the system state and processing in SSADM. The paper concludes by summarizing the results of using SAZ on a number of case studies.
Quality assurance is a problem in the development of software systems. Structured methods use diagrammatic and text formats, which are difficult to assess for quality. Formal specifications are easier to check, but do not facilitate iterative capture of requirements. This paper describes the benefits of combining a widely-used structured method (SSADM version 4) with a formal notation (Z).
This paper investigates the rationale for integrating a structured systems analysis method (SSADM version 4) and a formal notation (Z). It describes the integrated specification, and discusses the advantages and disadvantages of formal specification and development for information systems.
David F Brailsford合作论文数School of Computer Science and IT;University of Nottingham2