Issues in Testing Distributed Component-Based. Systems. Sudipto Ghosh. Aditya P. Mathur y. Software Engineering Research Center
|
|
- Tracy French
- 5 years ago
- Views:
Transcription
1 Issues in Testing Distributed Component-Based Systems Sudipto Ghosh Aditya P. Mathur y Software Engineering Research Center 1398 Department of Computer Sciences Purdue University West Lafayette, IN fghosh,apmg@cs.purdue.edu March 22, 1999 Abstract Issues in testing distributed component-based systems are discussed. Dierences in testing such systems and other systems are identied. Several limitations and shortcomings of the existing test methodologies are also identied and a new methodology proposed. Keywords: CORBA, DCOM, component-based distributed systems, fault-tolerance, Java RMI, test adequacy, test methodology. 1 Introduction Testing software systems is a complex problem in itself. With the increasing trend in using distributed software, the task of testing becomes even more complicated. The scalability of testing methodologies and development of testing tools need to keep up with new technologies such as CORBA, DCOM and Java RMI. The process of testing is further complicated by the use of COTS components in the systems. Testers need to test the behavior of such components in systems even if the components have been tested before. Sometimes the components that are reused may not have been designed for systems with the same specication. However, the entire system needs to be tested in order to observe if the system fails because of the use of such components. Thus, software testers need a methodology for: 1. Testing components 2. Testing systems In this work we examine the issues involved in the testing of components and systems. We explain how the distributed nature of the systems makes testing such systems dierent from others. In Section 2 and 3, we describe the issues related to component and system testing respectively. We propose a methodology for testing distributed component-based systems in Section 4. Sudipto Ghosh's work was supported in part by NSF award CCR , a grant from Bellcore, and the Purdue Research Foundation. y Aditya P. Mathur's research was supported in part by NSF award CCR and a grant from the Software Engineering Research Center. All correspondence may be addressed to apm@cs.purdue.edu. 1
2 2 Issues in Testing Components A component is a program that can either request service, provide service or do both. Several techniques are available for testing computer programs [2]. Often a testing methodology provides a measure that quanties \how much" was tested. Code coverage of some sort is a measure of \how much" code is tested. The term coverage domain denotes a set of program related entities that are being counted for measuring coverage. These entities include requirements, functions, statements, decisions, and denition-use pairs. For example, the set of all functions in a C program forms a coverage domain. A test set T is adequate with respect to a coverage domain D, if for each element e D, there exists a t T such that e is covered when program P is executed on t. Empirical evidence provided by many researchers supports the hypothesis that measuring test adequacy and improving a test set against a sequence of well-dened, increasingly strong, coverage domains leads to improved reliability of the system under test [13]. Ideally, one would wish to determine a test set such that the removal of errors detected while testing against this test set would ensure an error-free program. Exhaustive testing, in an ideal environment, would ensure that all errors are revealed. However, exhaustive testing is usually inapplicable in software development environments. Therefore it is recommended that realistic goals be set that account for the resources, the criticality of the components and the system under test and testing be performed such that one or more coverage criteria are satised. We identify the following issues in testing components: 1. Scalability of the test adequacy criteria 2. Test data generation 3. Selection of subsets of components to test 4. Sequence of testing components 2.1 Scalability of the Test Adequacy Criteria If the source code of a component is available, traditional test adequacy criteria can be used. These include control-ow coverage, data-ow coverage, and mutation coverage [2]. For example, the test cases generated by using control ow attempt to cover all the blocks or decisions in the program. A test set is considered adequate with respect to block coverage if all the blocks have been covered. Similarly, a test set is considered adequate with respect to decision coverage if all the decisions have been exercised by the tests. Data-ow coverage looks at the denition-use pairs in the program. The c-use coverage looks at all the denition and subsequent computational use pairs. The p-use coverage looks at all the denitions and subsequent predicate-use pairs of a variable [9]. Data-ow based test adequacy criteria have been extended for use on classes in object-oriented programs [6]. Testing is dened at three levels: 1) Intra-method; 2) Inter-method and 3) Intra-class. Various issues arise during the testing of object-oriented programs. Merely exercising methods is not enough. The order in which these methods are called is also important. Inheritance allows one to create subclasses that share many attributes of the parent class. One could design a testing methodology that tests each class separately. However, that would require re-testing many of the attributes in the subclass that were already tested in the parent class. In [7], an incremental testing technique of object-oriented class structures is proposed. However, these criteria suer from a lack of scalability. While they are useful in the assessment of tests of relatively small programs, such as functions in a C program, they are reported to be not cost-eective when used in the testing of large systems. The diculty arises because of the explosion in the number of possible paths that could be taken to reach the low-level element with an increase in the number of such elements. A decision or a denition-use pair is considered to be 2
3 a low-level element whereas a specic requirement or a function is considered to be a high-level element. To illustrate the path explosion, consider a software system with two functions f and g. Let n be the total number of decisions in f and g combined. Suppose that there is a global variable x used in f. The code of f is as follows: void f() { : if(x > 0) { : } : } The code for g is similar, with x being dened. Then the composition f g, as in a linear execution of f and g, would lead to O(2 n ) computation paths some of which are infeasible. However, if there are no global variables, the number of paths in a composition would increase linearly with the number of functions. The size of coverage domains usually increases exponentially with an increase in the size of components. A few years back, formal test adequacy measures were dicult to use because of the lack of suitable testing tools. Though this may not be a problem any more, the amount of testing required in order to achieve test adequacy is far higher that what is normally permitted by the resources available to most software companies. 2.2 Test Data Generation Test data generation in order to make the test sets adequate with respect to a coverage criterion is a dicult task. Experimental and anecdotal evidence reveals that it is dicult to obtain high coverage for large systems. This is because in a large software system it is often dicult to design test cases that can cover a low-level element. Because the number of possible paths increases exponentially, it is dicult to generate test input that executes all the paths and exercise all the elements of a low-level coverage domain. 2.3 Selection of Subsets of Components to Test A component may need the services of other components. When one tests a component, the question is how to provide these services to the component. One could use stubs that give the results expected by the component from others. However, this will not create the kind of conditions that exist in an actual system environment. There could be a possibility of deadlocks and race conditions only when a component is used with others. Even though correct behavior is exhibited when the component executed alone, it may not be correct when other components are used. The same problem arises when a component is multithreaded. The number of clients used to test the component may create a dierence. There may be no errors revealed when only one client is used because only one thread in the component executes. However, when many clients are used, several component threads may be started and race conditions may be revealed in the code. 2.4 Sequence of Testing Components From the previous sub-section we saw that components may have to be tested along with other components. This brings up the problem of what order should be followed in testing components. One would begin with components that do not require the services of any other component. Subsequent components would be selected such that they use services of components that have already 3
4 been tested. However, this assumes that the application architecture is layered, with the bottommost layer containing components not requiring the services of other components. Each layer l i uses the services of layer l i?1. However, if the interactions within components do not t into the layered architecture, then there could be cycles among components. It is not immediately clear which component one should start with rst. All components may have to be tested together. 3 Issues in Testing Systems We identify the following issues in testing systems: 1. Scalability of test adequacy criteria 2. Redundant testing during integration of components 3. Availability of source code 4. Heterogeneity of language, platforms and architectures 5. Monitoring and control mechanism in distributed software testing 6. Reproducibility of events 7. Deadlocks and race conditions 8. Testing for system scalability and performance 9. Testing for fault tolerance 3.1 Scalability of Test Adequacy Criteria for Testing Systems The problem of scalability of the traditional test adequacy criteria also arises in the context of testing systems. The criteria need to be scalable with the number of components. 3.2 Redundant Testing during Integration of Components Often, components are tested separately and then together in some incremental manner. When the components are tested separately, some test adequacy criteria are used for assessing the quality of test sets. However, when the entire system is tested, the same criteria are used along with coverage domains from other components. This leads to a lot of re-testing of the components. There is a need for studies that helps testers quantify how much of the testing is redundant. If the components are tested well separately, how much extra testing is needed during integration. This issue will be addressed again when we describe the issues that deal with the distributed nature of the systems. 3.3 Availability of Source Code Software components may be built in-house or used o-the-shelf. The developer of a component has access to its source code. The user of an o-the-shelf component usually does not have access to its source code. Depending on the availability of code, dierent testing techniques need to be used for system testing. 4
5 Q Rpq P Rrp Rqr R R1 R2 C1 C2 Figure 1: Deadlock in a component-based distributed System. 3.4 Heterogeneity of Language, Platforms and Architectures The components of a system may by written in dierent programming languages and for use on dierent hardware and software platforms. With middleware conforming to standards like CORBA and DCOM, components can interact with each other independent of the language and the platforms. When a system composed of such components is tested, the testing methodology and tool used must be independent of the language and the platforms. 3.5 Monitoring and Control Mechanism in Distributed Software Testing Distributed software systems bring with them multiple computers on a network. The test monitoring and control mechanism is more complex than that used to control a centralized software system. Mechanisms for centralized or distributed monitoring and control need to be devised. Distributed data collection and storage mechanisms need to be designed taking care of possible data buer overows. Usually the amount of data collected for monitoring and control is large because of the number of components and their long life-times. Care must be taken to ensure that the monitor and controller do not become bottlenecks during the monitoring and control process. 3.6 Reproducibility of Events Concurrent processing and asynchronous communication occur frequently in distributed systems. These together with a lack of full control over the environment leads to the inability to reproduce execution behavior. This is one reason why only testing of components is not enough to predict the reliability of the system. 3.7 Deadlocks and Race Conditions Distributed or concurrent systems occasionally have problems related to race conditions and deadlocks. It is desirable to detect such problems while testing. Consider a case, shown in Figure 1, where there are three components P, Q and R. All of them are single threaded. When a client C 1 makes a request R 1 to P, a request R pq is sent from P to Q. This leads to a request R qr from Q to R. On the other hand, client C 2 makes a request R 2 to R which happens before R qr arrives at R. To serve this request R sends a request to P. However, P waits for Q to reply. Q waits for R and R waits for P. Thus all the components are deadlocked. 5
6 Request m Client Server Callback c Figure 2: Deadlock when using a call-back mechanism. CORBA provides the facility of making one-way calls which are delivered with best-eort semantics. In case the client makes several such calls, the order in which such calls arrive could result in erroneous behavior in case there are race conditions. CORBA also provides call-back mechanisms by which a server can call a client back. This could potentially lead to deadlocks. In Figure 2, the client make a request r to the server and waits. The server makes a call-back c to the client and waits for a response. Thus both are involved in a deadlock. 3.8 Testing for System Scalability and Performance To improve performance, components may be implemented using threads. The same single-threaded system that has been tested perfectly may not work when re-implemented using multiple threads. Concurrency issues, race conditions and deadlocks could occur. Various threading models are used in server implementations and object adaptors in CORBA, each having dierent consequences. Testing for the thread-safe property is a major concern. Stress testing has to be done to ensure that the system performs well under high load factors. The same server components may perform well under small loads, but may cause poor performance or even crash under a heavy load of requests. 3.9 Testing for Fault-Tolerance Software systems are often required to be fault-tolerant. They need to tolerate failures that occur due to faults in its components or in the environment in which the components execute. Applications for nuclear plants, space missions, medical equipment and defense establishments require fault-tolerant software because of the high cost of life and resources attached to them. Any failure in the system would lead to catastrophic results. Stringent rules apply to telephone communication and air-trac control for being available most of the time. These systems have to be fault-tolerant with the availability of backup components or alternative routing mechanisms. In the context of component-based distributed systems like CORBA, there are several faults that could occur. When a client makes a one-way call, there is no guarantee that the request arrives at the server. A client that makes a request to a server may be blocked forever (or may time-out) if the server goes into an innite loop or crashes. It is reasonable to assume that the requirements for fault-tolerance are known at the time of testing. To test for fault tolerance, it is necessary to test the entire system to observe the eects of failures occurring in individual components or in the underlying communication mechanism. Testing for fault-tolerance is a challenge because in most systems, the fault-recovery code rarely gets executed in the test-bed as faults rarely get triggered. As the ability of a system to perform well in the eld in the presence of faults depends on the correctness of the fault-handling code, it is imperative that this code be tested. Fault injection testing [5, 8] is used to test for fault-tolerance by injecting faults into a system under test and observing its behavior. 6
7 The site where a fault is injected is called a fault-site. Code is inserted into the site so that a fault is triggered if control reaches the fault-site. However, testers have faced two kinds of problems with this methodology: 1. Reachability: Injection of faults into a program is not enough to cause a failure. The fault-site must be reached during some execution. 2. Latency: Although a fault has been triggered, the tester might see the manifestation of the fault after control has passed through several modules or components. It may take days before a fault manifests itself. A set of faults is required for the purpose of injection. Having a generic set of faults [1, 3, 4, 10, 11, 12] for a class of system helps in automating the process of fault injection. The faults can be provided in a fault-injection tool and can be selected by the tester for injection. Fault injection has mostly been performed only on selected systems because of a lack of tools that can perform fault-injection testing. MESSALINE, FERRARI, FIAT, SFI, FINE, Tamer, ORCHESTRA and Pisces Safety Net are examples of fault injection tools. 4 Proposed Testing Methodology To address the above issues, we propose a methodology called TDS. Our goal is to reduce testing to what is necessary. We propose test adequacy criteria that are interface-based and are at a higher level than the traditional test adequacy criteria. The leads to a reduction in the size of coverage domains. The basis for our methodology is the need for having a precise denition of an interface of a component. This is possible by using existing technologies like COM, CORBA and Java RMI. In COM and CORBA, an interface description language (IDL) is used to describe the interface of components. In Java RMI, components have Java interfaces. We focus on testing a component through its interface. 4.1 Test Adequacy Criteria An interface in CORBA-IDL contains the declarations of method and exception signatures. We dene the following criteria based on methods and exception coverage: 1. Method coverage: 2. Exception coverage: # methods executed in the component # methods dened in the component's interface # exceptions thrown by the component # exceptions dened in the component's interface However, coverage of methods and exceptions is not enough. The code implemented in the servers will access and modify the parameters passed to the methods and the exceptions. The code will have several paths that depend on the values and types of these parameters. Merely covering a method or an exception by executing it once does not imply that all the paths will be covered. Hence, there is a need to execute the methods by using dierent values of the parameters. Mutation techniques allow us to do that. We dene a set of mutant operators as follows: 1. Replacing an inout parameter with an out parameter and vice versa. 2. Swapping parameters of the same type. 3. Increment/decrement operators for simple types. 4. Set parameter to boundary values. 7
8 5. Nullify object references. 6. For complex types, use the mutant operators on the simple types that are contained. Mutants are created when these programs are applied to the original version of the component. Tests are run in order to distinguish non-equivalent mutants from the original program. A test set is adequate with respect to mutation coverage if the tests kill all the non-equivalent mutants. 4.2 Proposed Methodology We propose that testers create test sets that are adequate to our proposed test adequacy criteria. If errors are revealed, the testers modify the code and remove the errors. 4.3 Assessment of the Methodology Work is in progress for conducting experiments using CORBA systems. Systems range from classroom-type applications to a large-scale help-desk system consisting of several components, being developed in a company. Experiments are needed to compare the proposed test adequacy criteria with the traditional test adequacy criteria. The basis for comparison will be the eectiveness of the criteria in revealing known seeded errors in the components. The eort in generating test cases will also be measured in the number of test cases required for meeting the adequacy criteria. Experiments will also be carried out for evaluating our strategy for testing systems containing such components. 5 Summary We have described the issues in testing component-based distributed systems related to the heterogeneity of platforms, dierences in languages, concurrency, scalability and underlying communication protocols. We have proposed an interface-based testing methodology for testing components and systems. This methodology is currently a part of TDS 1.0, a tool to test CORBA-compliant systems. References [1] J. Barton, E. Czeck, Z. Segall, and D. Siewiorek. \Fault Injection Experiments using FIAT". IEEE Transactions on Computers, 39(4):576{582, April [2] Boris Beizer. \Software Testing Techniques". Van Nostrand Reinhold Company, Inc., New York, [3] R. Chillarege, I. S. Bhandari, J. K. Charr, M. J. Halliday, D. S. Moebus, B. K. Ray, and M. Y. Wong. \Orthogonal Defect Classication a Concept for in-process Measurements". IEEE Transactions on Software Engineering, SE(18):356{363, [4] R. Chillarege and N. Bowen. \Understanding Large System Failures a Fault Injection Experiment". In Proceedings 19th International Symposium Fault-Tolerant Computing, pages 356{363, [5] Clark and Y. K. Pradhan. \Fault Injection". IEEE Computer, 19(11):1087{1094, June
9 [6] M. J. Harrold and G. Rothermel. \Performing Data Flow Testing on Classes". In ACM SIGSOFT Software Engineering Notes Vol. 19, No. 5 in: SIGSOFT '94. Proceedings of the second ACM SIGSOFT symposium on Foundations of Software Engineering, pages 154{163, December [7] M.J. Harrold, J.D. McGregor, and K.J. Fitzpatrich. Incremental Testing of Object-oriented Class Structures. In Proceedings of the 14th International Conference on Software Engineering, pages 68{80, May [8] M. C. Hsueh, T. K. Tsai, and R. K. Iyer. \Fault Injection Techniques and Tools". IEEE Computer, pages 75{82, April [9] P. Jalote. An Integrated Approach to Software Engineering, Second Edition. Springer Verlag, New York, USA, [10] T. Nakajo and H. Kume. \A Case History Analysis of Software Error Cause-eect Relationships". IEEE Transactions on Software Engineering, SE(17):830{838, December [11] T. Nakajo, K. Sasabuchi, and T. Akiyama. \Structure Approach to Software Defect Analysis". Hewlett Packard Journal, 43(23):50{56, [12] D. Siewiorek, J. Hudakund B. Suh, and Z. Segall. \Development of a Benchmark to Measure System Robustness". In Proceedings 23rd International Symposium Fault-Tolerant Computing, pages 88{97, [13] W. E. Wong. \On Mutation and Data Flow, a Thesis". Technical Report SERC-TR-149- P, Software Engineering Research Center, Purdue University, West Lafayette, IN, December
On Errors and Failures in Distributed Systems Built to CORBA and COM Standards
On Errors and Failures in Distributed Systems Built to CORBA and COM Standards Sudipto Ghosh Aditya P. Mathur y Software Engineering Research Center 1398 Department of Computer Sciences Purdue University
More informationPart I: Preliminaries 24
Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................
More informationA Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.
A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department
More informationA taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA
A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA
More informationOutline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations
Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8
More informationloop m=5 d:m=x+y loop wait post u:z=3*m 7 20 end end
All-uses Testing of Shared Memory Parallel Programs Cheer-Sun D. Yang Lori L. Pollock Computer Science Department Computer and Information Sciences West Chester University of PA University of Delaware
More informationMeasuring the Effectiveness of Method Test Sequences Derived from Sequencing Constraints
Measuring the Effectiveness of Method Test Sequences Derived from Sequencing Constraints F.J. Daniels Bell Laboratories fdaniels@lucent.com K.C. Tai North Carolina State University kct@csc.ncsu.edu Abstract
More informationWhat is Mutation Testing? Mutation Testing. Test Case Adequacy. Mutation Testing. Mutant Programs. Example Mutation
What is Mutation Testing? Mutation Testing Breaking the application to test it n Mutation Testing is a testing technique that focuses on measuring the adequacy of test cases n Mutation Testing is NOT a
More informationInternational Journal of Advanced Research in Computer Science and Software Engineering
Volume 3, Issue 4, April 2013 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Testing Techniques
More informationWe dene the fault revealing ability of a test case to be a measure of the likelihood that the test case will produce a failure if a fault were to exis
The Revealing Power of a Test Case Jerey M. Voas y Keith W. Miller z Abstract \Propagation, infection, and execution analysis" (termed PIE) is used for predicting where faults can more easily hide in software.
More informationEfficient Regression Test Model for Object Oriented Software
Efficient Regression Test Model for Object Oriented Software Swarna Lata Pati College of Engg. & Tech, Bhubaneswar Abstract : This paper presents an efficient regression testing model with an integration
More informationTEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING
TEST CASE EFFECTIVENESS OF HIGHER ORDER MUTATION TESTING Shalini Kapoor CSE Deptt, GNI, Mullana get_shalini@rediffmail.com Abstract--- Effectiveness means how good a test case is in finding faults. Traditional
More informationAdaptive Methods for Distributed Video Presentation. Oregon Graduate Institute of Science and Technology. fcrispin, scen, walpole,
Adaptive Methods for Distributed Video Presentation Crispin Cowan, Shanwei Cen, Jonathan Walpole, and Calton Pu Department of Computer Science and Engineering Oregon Graduate Institute of Science and Technology
More informationKevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a
Asynchronous Checkpointing for PVM Requires Message-Logging Kevin Skadron 18 April 1994 Abstract Distributed computing using networked workstations oers cost-ecient parallel computing, but the higher rate
More informationDataflow-based Coverage Criteria
Dataflow-based Coverage Criteria W. Eric Wong Department of Computer Science The University of Texas at Dallas ewong@utdallas.edu http://www.utdallas.edu/~ewong Dataflow-based Coverage Criteria ( 2012
More informationCERIAS Tech Report
CERIAS Tech Report 2006-24 SCALABLE AND EFFECTIVE TEST GENERATION FOR ACCESS CONTROL SYSTEMS THAT EMPLOY RBAC POLICIES by Ammar Masood, Arif Ghafoor and Aditya Mathur Center for Education and Research
More informationSoftware Testing CS 408
Software Testing CS 408 1/09/18 Course Webpage: http://www.cs.purdue.edu/homes/suresh/408-spring2018 1 The Course Understand testing in the context of an Agile software development methodology - Detail
More informationGenerating Minimal Fault Detecting Test Suites for General Boolean Specications
Generating Minimal Fault Detecting Test Suites for General Boolean Specications Angelo Gargantini a,, Gordon Fraser b a Dip. di Ing. dell'informazione e Metodi Mat., University of Bergamo, Dalmine, Italy
More informationMONIKA HEINER.
LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25
More informationA New Mutation Analysis Method for Testing Java Exception Handling
A New Mutation Analysis Method for Testing Java Exception Handling Authors Affiliations Emails Abstract Java exception mechanism can effectively free a program from abnormal exits and help developers locate
More informationTowards a Reference Framework. Gianpaolo Cugola and Carlo Ghezzi. [cugola, P.za Leonardo da Vinci 32.
Inconsistencies in Software Development: Towards a Reference Framework Gianpaolo Cugola and Carlo Ghezzi [cugola, ghezzi]@elet.polimi.it Dipartimento di Elettronica e Informazione Politecnico di Milano
More informationReading assignment: Reviews and Inspections
Foundations for SE Analysis Reading assignment: Reviews and Inspections M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 1999, pp. 258-287.
More informationAn Environment for Training Computer Science Students on Software Testing
An Environment for Training Computer Science Students on Software Testing Jim Collofello and Kalpana Vehathiri Department of Computer Science and Engineering, Arizona State University Tempe, Arizona 85287
More informationTesting Component-Based Software
Testing Component-Based Software Jerry Gao, Ph.D. San Jose State University One Washington Square San Jose, CA 95192-0180 Email:gaojerry@email.sjsu.edu 1 Abstract Today component engineering is gaining
More informationCalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs Pallavi Joshi 1, Mayur Naik 2, Chang-Seo Park 1, and Koushik Sen 1 1 University of California, Berkeley, USA {pallavi,parkcs,ksen}@eecs.berkeley.edu
More informationPage 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models
Reading assignment: Reviews and Inspections Foundations for SE Analysis M. E. Fagan, "Design and code inspections to reduce error in program development, IBM Systems Journal, 38 (2&3), 999, pp. 258-28.
More informationKnowledge representation Semantic networks and frames
Knowledge representation Semantic networks and frames CmSc310 Artificial Intelligence 1. Introduction: What is knowledge? The science that studies various issues about knowledge is called epistemology.
More informationIntegration Testing. Conrad Hughes School of Informatics. Slides thanks to Stuart Anderson
Integration Testing Conrad Hughes School of Informatics Slides thanks to Stuart Anderson 19 February 2010 Software Testing: Lecture 10 1 Unit Test vs Integration Testing 1 The ideal in unit testing is
More informationConstructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow
Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow Jang-Wu Jo 1 and Byeong-Mo Chang 2 1 Department of Computer Engineering Pusan University of Foreign Studies Pusan
More information1 Introduction Testing seeks to reveal software faults by executing a program and comparing the output expected to the output produced. Exhaustive tes
Using Dynamic Sensitivity Analysis to Assess Testability Jerey Voas, Larry Morell y, Keith Miller z Abstract: This paper discusses sensitivity analysis and its relationship to random black box testing.
More informationTHE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano
THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,
More informationDistributed Scheduling for the Sombrero Single Address Space Distributed Operating System
Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Donald S. Miller Department of Computer Science and Engineering Arizona State University Tempe, AZ, USA Alan C.
More informationOverview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.
Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great
More informationWhite Box Testing with Object Oriented programming
White Box Testing with Object Oriented programming Mrs.Randive R.B 1, Mrs.Bansode S.Y 2 1,2 TPCT S College Of Engineering,Osmanabad Abstract:-Software testing is one of the best means to affirm the quality
More informationHenning Koch. Dept. of Computer Science. University of Darmstadt. Alexanderstr. 10. D Darmstadt. Germany. Keywords:
Embedding Protocols for Scalable Replication Management 1 Henning Koch Dept. of Computer Science University of Darmstadt Alexanderstr. 10 D-64283 Darmstadt Germany koch@isa.informatik.th-darmstadt.de Keywords:
More informationTesting: Test design and testing process
Testing: Test design and testing process Zoltán Micskei Based on István Majzik s slides Dept. of Measurement and Information Systems Budapest University of Technology and Economics Department of Measurement
More informationIntegration Testing. Unit Test vs Integration Testing 1. Unit Testing vs Integration Testing 2. Unit testing: isolation, stub/mock objects
Unit Test vs Testing 1 Testing Conrad Hughes School of Informatics Slides thanks to Stuart Anderson The ideal in unit testing is to isolate a single code unit and test it against its behavioural specification.
More informationSolve the Data Flow Problem
Gaining Condence in Distributed Systems Gleb Naumovich, Lori A. Clarke, and Leon J. Osterweil University of Massachusetts, Amherst Computer Science Department University of Massachusetts Amherst, Massachusetts
More informationReview of Regression Test Case Selection Techniques
Review of Regression Test Case Selection Manisha Rani CSE Department, DeenBandhuChhotu Ram University of Science and Technology, Murthal, Haryana, India Ajmer Singh CSE Department, DeenBandhuChhotu Ram
More informationAn Evaluation of Information Retrieval Accuracy. with Simulated OCR Output. K. Taghva z, and J. Borsack z. University of Massachusetts, Amherst
An Evaluation of Information Retrieval Accuracy with Simulated OCR Output W.B. Croft y, S.M. Harding y, K. Taghva z, and J. Borsack z y Computer Science Department University of Massachusetts, Amherst
More informationhas phone Phone Person Person degree Degree isa isa has addr has addr has phone has phone major Degree Phone Schema S1 Phone Schema S2
Schema Equivalence in Heterogeneous Systems: Bridging Theory and Practice R. J. Miller y Y. E. Ioannidis z R. Ramakrishnan x Department of Computer Sciences University of Wisconsin-Madison frmiller, yannis,
More informationISSN: [Keswani* et al., 7(1): January, 2018] Impact Factor: 4.116
IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY AUTOMATIC TEST CASE GENERATION FOR PERFORMANCE ENHANCEMENT OF SOFTWARE THROUGH GENETIC ALGORITHM AND RANDOM TESTING Bright Keswani,
More informationAn Integrated Regression Testing Framework to Multi-Threaded Java Programs
An Integrated Regression Testing Framework to Multi-Threaded Java Programs Bixin Li 1,2, Yancheng Wang 1, and LiLi Yang 1 1 School of Computer Science and Engineering, Southeast University No.2 Sipailou
More informationOn Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems
On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer
More informationAlgebraic Properties of CSP Model Operators? Y.C. Law and J.H.M. Lee. The Chinese University of Hong Kong.
Algebraic Properties of CSP Model Operators? Y.C. Law and J.H.M. Lee Department of Computer Science and Engineering The Chinese University of Hong Kong Shatin, N.T., Hong Kong SAR, China fyclaw,jleeg@cse.cuhk.edu.hk
More informationIntroduction to Dynamic Analysis
Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,
More informationMACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS
MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS N. Kannadhasan and B. Uma Maheswari Department of Master of Computer Applications St. Joseph s College of Engineering, Chennai,
More informationAutomatic Code Generation for Non-Functional Aspects in the CORBALC Component Model
Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and
More informationINPUT SYSTEM MODEL ANALYSIS OUTPUT
Detecting Null Pointer Violations in Java Programs Xiaoping Jia, Sushant Sawant Jiangyu Zhou, Sotiris Skevoulis Division of Software Engineering School of Computer Science, Telecommunication, and Information
More informationVerification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1
Verification and Validation Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification vs validation Verification: "Are we building the product right?. The software should
More informationArchitectural Design
Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures Chapter 6 Architectural design 2 PART 1 ARCHITECTURAL DESIGN
More informationIn this paper, we present the results of a comparative empirical study of two safe RTS techniques. The two techniques we studied have been implemented
ACM Transactions on Software Engineering and Methodology (to appear). A Comparative Study of Coarse- and Fine-Grained Safe Regression Test Selection Techniques John Bible Department of Computer Science
More informationTest Case Specifications and Test adequacy. Research Methods - Barbara Russo SwSE - Software and Systems Engineering
Test Case Specifications and Test adequacy Research Methods - Barbara Russo SwSE - Software and Systems Engineering 1 Test Case Selection How do we create tests? Test are defined in terms of their adequacy
More informationThesis book. Extension of strongly typed object-oriented systems using metaprograms István Zólyomi
Thesis book Extension of strongly typed object-oriented systems using metaprograms István Zólyomi Supervisor: Dr. Zoltán Porkoláb Eötvös Loránd University Faculty of Informatics Department of Programming
More informationCase Study on Testing of Web-Based Application: Del s Students Information System
Case Study on Testing of Web-Based Application: Del s Students Information System Arnaldo Marulitua Sinaga Del Institute of Technology, North Sumatera, Indonesia. aldo@del.ac.id Abstract Software Testing
More informationChapter 1: Distributed Systems: What is a distributed system? Fall 2013
Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Course Goals and Content n Distributed systems and their: n Basic concepts n Main issues, problems, and solutions n Structured and
More informationLCCI (Large-scale Complex Critical Infrastructures)
LCCI (Large-scale Complex Critical Infrastructures) 1 LCCIs are Internet-scale constellations of heterogeneous systems glued together into a federated and open system by a data distribution middleware.
More informationVERIFYING SOFTWARE ROBUSTNESS. Ross Collard Collard & Company
VERIFYING SOFTWARE ROBUSTNESS Ross Collard Collard & Company OVERVIEW Software is robust if it can tolerate such problems as unanticipated events, invalid inputs, corrupted internally stored data, improper
More informationVerification and Validation. Assuring that a software system meets a user s needs. Verification vs Validation. The V & V Process
Verification and Validation Assuring that a software system meets a user s needs Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 19,20 Slide 1
More informationA Low-Cost Correction Algorithm for Transient Data Errors
A Low-Cost Correction Algorithm for Transient Data Errors Aiguo Li, Bingrong Hong School of Computer Science and Technology Harbin Institute of Technology, Harbin 150001, China liaiguo@hit.edu.cn Introduction
More informationSoftware Engineering: Integration Requirements
Software Engineering: Integration Requirements AYAZ ISAZADEH Department of Computer Science Tabriz University Tabriz, IRAN Abstract: - This paper presents a discussion of software integration requirements,
More informationAppendix to The Health of Software Engineering Research
Appendix to The Health of Software Engineering Research David Lo School of Information Systems Singapore Management University Singapore davidlo@smu.edu.sg Nachiappan Nagappan and Thomas Zimmermann Research
More information2 J. Karvo et al. / Blocking of dynamic multicast connections Figure 1. Point to point (top) vs. point to multipoint, or multicast connections (bottom
Telecommunication Systems 0 (1998)?? 1 Blocking of dynamic multicast connections Jouni Karvo a;, Jorma Virtamo b, Samuli Aalto b and Olli Martikainen a a Helsinki University of Technology, Laboratory of
More informationEect of Test Set Size and Block Coverage on the. Fault Detection Eectiveness. W. Eric Wong, Joseph R. Horgan, Saul London, and Aditya P.
Eect of Test Set Size and Block Coverage on the Fault Detection Eectiveness W Eric Wong, Joseph R Horgan, Saul London, and Aditya P Mathur April 27, 1994 Abstract Size and code coverage are two important
More informationInput Validation Testing: A Requirements-Driven, System Level, Early Lifecycle Technique. August 30, Abstract
Input Validation Testing: A Requirements-Driven, System Level, Early Lifecycle Technique Jane Human Hayes Innovative Software Technologies Science Applications International Corp. jane.e.hayes@cpmx.saic.com
More informationCHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL
CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test
More informationPeople tell me that testing is
Software Testing Mark Micallef mark.micallef@um.edu.mt People tell me that testing is Boring Not for developers A second class activity Not necessary because they are very good coders 1 What is quality?
More informationComposability Test of BOM based models using Petri Nets
I. Mahmood, R. Ayani, V. Vlassov and F. Moradi 7 Composability Test of BOM based models using Petri Nets Imran Mahmood 1, Rassul Ayani 1, Vladimir Vlassov 1, and Farshad Moradi 2 1 Royal Institute of Technology
More informationClass-Component Testability Analysis
Class-Component Testability Analysis SUPAPORN KANSOMKEAT Faculty of Engineering, Chulalongkorn University Bangkok, 10330, THAILAND WANCHAI RIVEPIBOON Faculty of Engineering, Chulalongkorn University Bangkok,
More informationThe language should have few implementation dependencies and should be simple, so that interactions between language features do not give unexpected b
Using Analytical Approaches for High Integrity Ada95 Systems Stephen Michell Maurya Software 29 Maurya Court, Ottawa, Ontario K1G 5S3 Canada Email: steve@maurya.on.ca Dan Craigen, Mark Saaltink ORA Canada
More informationFacts About Testing. Cost/benefit. Reveal faults. Bottom-up. Testing takes more than 50% of the total cost of software development
Reveal faults Goals of testing Correctness Reliability Usability Robustness Performance Top-down/Bottom-up Bottom-up Lowest level modules tested first Don t depend on any other modules Driver Auxiliary
More informationShared Repository Pattern. Shared Repository Introduction
Shared Repository Pattern Shared Repository Introduction Some applications are inherently data-driven. Interactions between components do not follow a specific business process, but depend on the data
More informationUsing Mutation to Automatically Suggest Fixes for Faulty Programs
2010 Third International Conference on Software Testing, Verification and Validation Using Mutation to Automatically Suggest Fixes for Faulty Programs Vidroha Debroy and W. Eric Wong Department of Computer
More informationTrust4All: a Trustworthy Middleware Platform for Component Software
Proceedings of the 7th WSEAS International Conference on Applied Informatics and Communications, Athens, Greece, August 24-26, 2007 124 Trust4All: a Trustworthy Middleware Platform for Component Software
More informationStorage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk
HRaid: a Flexible Storage-system Simulator Toni Cortes Jesus Labarta Universitat Politecnica de Catalunya - Barcelona ftoni, jesusg@ac.upc.es - http://www.ac.upc.es/hpc Abstract Clusters of workstations
More informationChapter 9. Software Testing
Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of
More informationStructural Testing & Mutation
Structural Testing & Mutation Filippo Ricca DISI, Università di Genova, Italy ricca@disi.unige.it 1 White vs. Black box testing A white box testing is based upon explicit knowledge of the SUT and its structure
More informationTEMPORAL AND SPATIAL SEMANTIC MODELS FOR MULTIMEDIA PRESENTATIONS ABSTRACT
TEMPORAL AND SPATIAL SEMANTIC MODELS FOR MULTIMEDIA PRESENTATIONS Shu-Ching Chen and R. L. Kashyap School of Electrical and Computer Engineering Purdue University, West Lafayette, IN 47907-285, U.S.A.
More informationToday: Distributed Objects. Distributed Objects
Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.
More information21. Distributed Algorithms
21. Distributed Algorithms We dene a distributed system as a collection of individual computing devices that can communicate with each other [2]. This denition is very broad, it includes anything, from
More informationFramework for replica selection in fault-tolerant distributed systems
Framework for replica selection in fault-tolerant distributed systems Daniel Popescu Computer Science Department University of Southern California Los Angeles, CA 90089-0781 {dpopescu}@usc.edu Abstract.
More information336 THE STATISTICAL SOFTWARE NEWSLETTER where z is one (randomly taken) pole of the simplex S, g the centroid of the remaining d poles of the simplex
THE STATISTICAL SOFTWARE NEWSLETTER 335 Simple Evolutionary Heuristics for Global Optimization Josef Tvrdk and Ivan Krivy University of Ostrava, Brafova 7, 701 03 Ostrava, Czech Republic Phone: +420.69.6160
More informationDocument Image Restoration Using Binary Morphological Filters. Jisheng Liang, Robert M. Haralick. Seattle, Washington Ihsin T.
Document Image Restoration Using Binary Morphological Filters Jisheng Liang, Robert M. Haralick University of Washington, Department of Electrical Engineering Seattle, Washington 98195 Ihsin T. Phillips
More informationTest Cases Generation from UML Activity Diagrams
Eighth ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing Test Cases Generation from UML Activity Diagrams Hyungchoul Kim, Sungwon
More informationUsing the Holey Brick Tree for Spatial Data. in General Purpose DBMSs. Northeastern University
Using the Holey Brick Tree for Spatial Data in General Purpose DBMSs Georgios Evangelidis Betty Salzberg College of Computer Science Northeastern University Boston, MA 02115-5096 1 Introduction There is
More informationFrama-C's metrics plug-in
Metrics Frama-C's metrics plug-in 20120901 (Oxygen) Richard Bonichon & Boris Yakobowski CEA LIST, Software Reliability Laboratory, Saclay, F-91191 c 2011 CEA LIST CONTENTS Contents 1 Quick overview 7
More informationDeveloping Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach
Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart
More informationSoftware Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University
Software Component Relationships Stephen H. Edwards Department of Computer Science Virginia Polytechnic Institute and State University 660 McBryde Hall Blacksburg, VA 24061-0106 Tel: (540)-231-7537 Email:
More information2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t
Data Reduction - an Adaptation Technique for Mobile Environments A. Heuer, A. Lubinski Computer Science Dept., University of Rostock, Germany Keywords. Reduction. Mobile Database Systems, Data Abstract.
More informationAbstract Safety-critical systems are those whose failure can lead to injury or loss of life. Software is becoming increasingly relied upon for the saf
A Search-Based Automated Test-Data Generation Framework for Safety-Critical Software Nigel James Tracey Submitted for the degree of Doctor of Philosophy September 2000 University of York Department of
More informationHomework #2 Nathan Balon CIS 578 October 31, 2004
Homework #2 Nathan Balon CIS 578 October 31, 2004 1 Answer the following questions about the snapshot algorithm: A) What is it used for? It used for capturing the global state of a distributed system.
More informationUniversity of Maryland. fzzj, basili, Empirical studies (Desurvire, 1994) (Jeries, Miller, USABILITY INSPECTION
AN EMPIRICAL STUDY OF PERSPECTIVE-BASED USABILITY INSPECTION Zhijun Zhang, Victor Basili, and Ben Shneiderman Department of Computer Science University of Maryland College Park, MD 20742, USA fzzj, basili,
More informationMultimedia Applications Require Adaptive CPU Scheduling. Veronica Baiceanu, Crispin Cowan, Dylan McNamee, Calton Pu, and Jonathan Walpole
Multimedia Applications Require Adaptive CPU Scheduling Veronica Baiceanu, Crispin Cowan, Dylan McNamee, Calton Pu, and Jonathan Walpole Department of Computer Science and Engineering Oregon Graduate Institute
More informationOn Checkpoint Latency. Nitin H. Vaidya. In the past, a large number of researchers have analyzed. the checkpointing and rollback recovery scheme
On Checkpoint Latency Nitin H. Vaidya Department of Computer Science Texas A&M University College Station, TX 77843-3112 E-mail: vaidya@cs.tamu.edu Web: http://www.cs.tamu.edu/faculty/vaidya/ Abstract
More informationPetri Nets ~------~ R-ES-O---N-A-N-C-E-I--se-p-te-m--be-r Applications.
Petri Nets 2. Applications Y Narahari Y Narahari is currently an Associate Professor of Computer Science and Automation at the Indian Institute of Science, Bangalore. His research interests are broadly
More informationFeasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)
Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) An incorrect code fragment for determining if three integers are equal, together with two test cases Flowchart has over 10
More informationsecond_language research_teaching sla vivian_cook language_department idl
Using Implicit Relevance Feedback in a Web Search Assistant Maria Fasli and Udo Kruschwitz Department of Computer Science, University of Essex, Wivenhoe Park, Colchester, CO4 3SQ, United Kingdom fmfasli
More informationTopics on Web Services COMP6017
Topics on Web Services COMP6017 Dr Nicholas Gibbins nmg@ecs.soton.ac.uk 2013-2014 Module Aims Introduce you to service oriented architectures Introduce you to both traditional and RESTful Web Services
More informationRemote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics
Remote Invocation Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics From the First Lecture (Architectural Models)...
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More information