An Empirical based Object Oriented Coverage Analysis Using XML

Size: px
Start display at page:

Download "An Empirical based Object Oriented Coverage Analysis Using XML"

Transcription

1 An Empirical based Object Oriented Analysis Using XML Sasanko Sekhar Gantayat, Srinivas Prasad, K. Koteswar Rao Department of Computer Science & Engineering, GMR Institute of Technology, Rajam, Andhra Pradesh, India. 1 koteswarrao.k@gmrit.org Abstract: Testing of Object-oriented software has a number of features that make it different from conventional software testing. With the increase in size and complexity of modern software products, the importance of testing is rapidly growing. In this paper, a new methodology is proposed to evaluate the code coverage, its effectiveness and compared its advantages over other traditional techniques. Keywords: Test, Object Oriented, Measure, Test Tools, XML. 1. Introduction to Test Test is the process of identifying the extent to which different test suites are appropriate in accessing a full complement of the source code in testing various components of the system. To the management and deployment team, it provides assurance on the comprehensive nature of the tests and provides insight into the areas where testing is inadequate, or where the labor expended on releasing a product can be reduced due to ineffective testing. It would be worthwhile to investigate the possibility of testing based on coverage analysis approach and study its effectiveness. It is the process which provides a measure of how well the test suite actually tests the software. The major aspect of coverage analysis are[6]: Finding areas of a program not exercised by a set of test suites Creating additional test cases to increase the coverage Determining a quantitative measure of coverage which is an indirect measure of quality Identifying redundant test cases that do not increase coverage 2. Basic Measures There are many coverage measures. Brief description about some of the basic coverage measures are given below [1,3,4,5,6,7,16,18]: Statement : This measure reports the uncovered statements as well as a percentage of statements that are covered. It might not detect the control faults. It tells whether the nodes in a control flow graph (CFG) are executed or not. It can not check whether all the branches are executed or not. CFG: It is a graphical representation of a program, in which each node consists of a set of statements that can be executed sequentially and edges are labeled with conditional statements. : It explores whether all branches are executed or not. It checks for the edges of the CFG i.e., it checks for all the branches that are formed with if statement, for statement, while, do while, switch statement and exception handlers. It is also known as Decision coverage. It reports whether Boolean expressions tested in control structures evaluated to both true and false. Decision coverage: It reports whether Boolean expressions tested in control structures (like if statement, while statement) are evaluated to both true and false. The entire Boolean expression is treated as one true or false predicate although it contains logical - and or logical-or operators. In addition, it includes switch-statement cases, exception handlers and interrupts handlers. Condition : It reports the true or false outcome of each Boolean subexpression, separated by logical operators if any. It measures the subexpressions independently of each other. This measure is similar to Decision coverage but has better sensitivity to the control flow. Path : It reports whether each of the possible paths is executed or not. A path is a unique sequence of branches from the function entry to the exit. It is also known as Predicate coverage. But due to the loop structures, many variations of this measure exist. It has two major disadvantages the first one is the number of paths increases exponentially to the number of branches, the second one is that many paths are not possible to exercise due to relationships of data. Method : It gives information that each method is invoked or not. In there are some methods declared as abstract i.e., they do not have a body. Therefore, this has to be taken care by the test coverage analyzer. 2016, IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 517

2 Class : It gives information that at least a single method of a class is invoked or not. Again in, there are some classes, called Interface, which do not have any method definition. So the test coverage analyzer should take care of such classes. Loop : It reports whether each loop body in the program was executed zero times, exactly once or more than once (consecutively). For do-while loop, it reports whether the body is executed exactly once or more than once. The advantage of this measure over another measure is that it reports whether while-loop and for-loop in the program are executed more than once. 3. Techniques of Test The test coverage tools work by instrumenting the program i.e., by inserting the probes into the program. The different tools vary in the way this instrumentation phase is done. Of course, adding probes to the program will make it bigger and execution slower. The different types of instrumentation are discussed here [7,10]. Level Instrumentation: Some tools add probes at the source level. They analyze the source code and add additional code that will record the program execution status. Such tools actually do not create new source file. They intercept the compiler after parsing but before code generation to insert the changes. This type of instrumentation is dependent on programming language i.e., the provider specifies which languages it supports. But it is independent of operating environment (processor, OS). Executable Instrumentation: In this case the probes are added to the executable file. The tools will create a new executable after analyzing the present executable file. This type of instrumentation is independent of programming language. But it is dependent on operating environment i.e., the provider specifies which processor to support. Runtime Instrumentation: In this case the probes are not added until the program is run. The probes exist only in the in-memory copy of the executable file but not inserted into the file. Therefore to combine, the coverage tool initiates the program execution directly or indirectly. Some coverage tools, alternatively, add a small bit of instrumentation to the executable, which does not affect the size or performance of the executable. This type of instrumentation is also independent of programming language and dependent on operating environment. 4. Architecture of Tool In this section the architecture of the general coverage tools is discussed. These are organization of the tool and the instrumentation technique Organization of Tool tools helps in checking that how thoroughly the testing has been done [13,14]. A coverage tool first identifies the elements or coverage items that can be counted. At component testing level, the coverage items could be lines of code or code statements or decision outcomes (e.g. the True or False exit from an IF statement). At component integration level, the coverage item may be a call to a function or module. Instrumenting the is the process of identifying the coverage items at component test level. Then automatically or manually a set of tests is run through the instrumented code. The number of coverage items are counted using the coverage tool and executed by the test suite. A report is generated on the percentage of coverage items that have been tested, and also identify the items that have not tested. The common features of coverage measurement tools are: To identify coverage items (instrumenting the code) To calculate the percentage of coverage items those were tested by a set of tests To report coverage items those have not been tested yet To generate stubs and drivers Fig-1. Basic Organization of Tool There are numerous coverage tools available commercially. But here we will discuss a typical architecture which is common to much different instrumentations and program analysis tools. Although it 2016, IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 518

3 is language independent, the approach is made with reference to language. The internal organization of a coverage tool is depicted above. Here the source file (source.java) is parsed first and an Abstract Syntax Tree (AST) is generated. Then the AST is parsed during which code coverage instrumentation is inserted into the source file. According to the options chosen, several output files are generated. The source.cov is an instrumented version of the original source file. And the source.cdb contains a database of all the changes and instrumentation points made to the source file. Hence, the original source file can be constructed from cov and cdb files. In the other way, the original source file may be saved in another directory and the source.cov is renamed to source.java. Now this instrumented file may be compiled by a compiler and executed either in a unit test or as part of the original application. The required type of coverage can be mentioned in the options. The primary function of the parser is to generate the AST for the entire source file. In addition to the language components, the AST contains the line and column references to the original source file for each node. This simplifies the identification of grammatical structures and variables that are to be instrumented and their locations. Hence, AST makes the instrumentation easier Instrumentation Technique Generally, instrumentation is the technique of inserting probes into the source code which detect the coverage information about the tests run on the source code. So after insertion, the source code needs to be recompiled. But two factors are taken care about instrumentation first, it should have the least impact on the execution time of the source code and second it should not affect the functionality of the unit. The most common instrumentation technique can be explained with a tool Advanced Tool (AJCT) as follows. For each path determining relational expression in the source file, the relational expression is replaced by the following method: jc.pc( relational expression, identifier) where relational expression is the original expression of the source, the identifier is a unique integer value assigned by AJCT and pc is a method defined in a class jc. For example, the expression (p<q) would be replaced by jc.pc(p<q,16) if it is the 8 th instrumentation point within the AST. The purpose of this method is to increment the elements of the array maintained by AJCT. If the relational expression evaluates true, then the array element with index equal to identifier is incremented otherwise the array element with index equal to identifier+1 is incremented. So during post-execution analysis, the number of times the relational expression is evaluated can be determined from the array. This approach allows virtual machine to evaluate the original relational expression and pass it as an argument to jc.pc and it returns the original Boolean result. This approach is used for conditional expressions like if, while, for etc. But, for non-branch related statements like switch statement or try-catch block, AJCT replaces the relational expression parameter with the Boolean value true and instruments the first location where an executable statement can be placed. To obtain method coverage same technique can be applied. If the method contains conditional path determining expression, then the default relational expression instrumentation can indicate whether the method is reached or not. If the method contains nonloop conditional expression, then it can indicate the number of times the method was called. Otherwise, the AJCT uses jc.pc (true, identifier) as the first statement in the method and counts the number of times it was invoked. For all cases, AJCT logs the value of the relational expression and also maintains a cumulative count of each true or false result. From such log files and the array maintained by AJCT, various coverage reports can be generated. 5. Survey of Tools Here we have discussed few readily available coverage tools [3,8,13,17]. LDRA Testbed: It is a static analysis and code coverage tool suite for C and C++. It is a unique quality control tool that provides powerful source code analysis and testing facilities for the validation and verification of software applications. It is a fully integrated tool suite for static analysis and code coverage. Static Analysis analyses the code and provides an understanding of the code structure and also it measures code coverage of statements, branches, test paths and conditions. It uses automatic instrumentation technique to measure the code coverage levels during test process and with the help of which it is able to detect the untested part of the code. Also, when an error occurs during testing, it presents the corresponding code area being executed in reports. This makes very helpful for the developer to focus on that specific area of code and save time. Bullseye : It is a full-featured code coverage analyzer for C/C++ running on Microsoft and Unix operating systems. It quickly finds untested code and measures testing completeness. It also increases testing 2016, IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 519

4 productivity by showing the regions of your source code that are not adequately tested. Bullseye enables us to create more reliable code and save time. It reports Function coverage which enables us to quickly know what major areas of the software are untested i.e., to get a quick overview. And also it reports condition/ decision coverage to know whether every control structure with every possible decision outcome as well as every possible condition outcome are checked i.e., to give high precision code. It uses source code instrumentation which is required for the best coverage analysis. Therefore, the code size increases by 1.4 times and the execution time increases by 1.2 times. It works with everything in C++ and C, including system-level and kernel mode. Clover: It is a low cost code coverage tool for. Clover provides a method, branch and statement coverage for projects, packages, files and classes. Unlike tools that use bytecode instrumentation, it uses source code instrumentation and it produces the most accurate coverage measurement for the least runtime performance overhead. As the code under test executes, code coverage systems collect information about which statements have been executed. This information is then used as the basis of reports. In addition to these basic mechanisms, coverage approaches vary on what forms of coverage information they collect. There are many forms of coverage beyond basic statement coverage including conditional coverage, method entry and path coverage. Clover uses these measurements to produce a Total Percentage for each class, file, and package and for the project as a whole. The Total Percentage allows entities to be ranked in reports. The Total Percentage (TPC) is calculated as follows: TPC = (BT + BF + SC + MC) / (2*B + S + M) where BT - branches that evaluated to "true" at least once BF - branches that evaluated to "false" at least once SC - statements covered MC - methods entered B - total number of branches S - total number of statements M - total number of methods Clover is designed to measure code coverage in a way that fits with the current development environment and practices. Clover's IDE Plugins provide developers with a way to quickly measure code coverage without having to leave the IDE. Dynamic : Without using any compile/link time instrumentation, it gathers coverage information by using runtime instrumentation. Each function/method, line, decision and branch is evaluated for execution and a detailed coverage file is generated in the process. files from multiple runs can be assembled to get a detailed Analysis of a particular process. It can be used to gather information at any point in the software lifecycle. In development, it can be used for unit testing. In testing, it can be used to determine test suite effectiveness. In pre-production, Dynamic can determine which modules are of most interest to a particular customer. In production, it can be used to determine which features and modules are actually being used. And hence the various outputs can be summarized in a variety of ways in order to get different views on the depth of coverage. Platform Solaris, Linux SD s Test : Semantic Design supplies test (or code) coverage tools for arbitrary procedural languages. Such tools provide statistics and detail information about which parts of an application program have been executed (usually by a test suite). This information is useful to determine the readiness of software for actual use. The type of coverage information collected is branch coverage, which subsumes statement coverage. SD's test coverage tools operate by inserting languagespecific probes for each basic block in the source files of interest before compilation /execution. At execution time, the probes record which blocks get executed ("coverage data"). On completion of execution, the coverage data is typically written to a test coverage vector file. Finally, the test coverage data is displayed on top of source text for the system under test, enabling a test engineer to see what code has (not) been executed, and to see overall statistics on coverage data. Platform - Probe installer operates on Win/NT, Win2K, WinXP applications under test and the coverage display tool can run on any 2 platform. A sample SD s test coverage report is presented below. Semantic Design s TEST COVERAGE REPORT Probe Reference File: C:\users\idbaxter\Parlanse\P0Compiler\p0c.prf Test Vectors: C:\users\idbaxter\Parlanse\P0Compiler\RegressionTest\ %Test_2002_11_19_09_21_44_000.tcv SUMMARY: Total Probes: 9481 Total Files: probes covered probes uncovered. 50.4% probes covered. 49.6% probes uncovered. COVERAGE REPORT BY FILE: [1] C:\users\idbaxter\Parlanse\P0Compiler\P0Compiler.c 49.9% uncovered 4587/ , IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 520

5 [2] C:\users\idbaxter\Parlanse\P0Compiler\P0CriticalRanges.c 47.5% uncovered 38/80 [3] C:\users\idbaxter\Parlanse\P0Compiler\P0Cwin32.c 100.0% uncovered 30/30 [4] C:\users\idbaxter\Parlanse\P0Compiler\P0ExceptionRanges.c 17.7% uncovered 9/51 [5] C:\users\idbaxter\Parlanse\P0Compiler\P0File.C 100.0% uncovered 0/0 [6] C:\users\idbaxter\Parlanse\P0Compiler\P0XRef.c 34.3% uncovered 37/108 [7] C:\users\idbaxter\Parlanse\P0Compiler\crc32.c 0.0% uncovered 0/7 FILES COMPLETELY COVERED: [1] C:\users\idbaxter\Parlanse\P0Compiler\P0File.C 0 probes [2] C:\users\idbaxter\Parlanse\P0Compiler\crc32.c 7 probes COVERAGE BY SUBSYSTEM/DIRECTORY: (1) C:\users\idbaxter\Parlanse\P0Compiler 49.6% uncovered 4701/9481 [1] C:\users\idbaxter\Parlanse\P0Compiler\P0Compiler.c [2] C:\users\idbaxter\Parlanse\P0Compiler\P0CriticalRanges.c [3] C:\users\idbaxter\Parlanse\P0Compiler\P0Cwin32.c [4] C:\users\idbaxter\Parlanse\P0Compiler\P0ExceptionRanges.c [5] C:\users\idbaxter\Parlanse\P0Compiler\P0File.C [6] C:\users\idbaxter\Parlanse\P0Compiler\P0XRef.c [7] C:\users\idbaxter\Parlanse\P0Compiler\crc32.c EMMA: EMMA is an open-source toolkit for measuring and reporting code coverage. It is different from other tools for its unique feature support for large-scale enterprise software development while keeping individual developer's work fast and iterative. It is a pure coverage tool based on bytecode instrumentation. It provides two options for instrumentation offline or online. In the offline mode instrumentation is done explicitly and in the online mode it is done in the JVM. It supports line, method, class coverage but it doesn t support branch and path coverage. And the coverage outputs are consolidated at method, class, package and all classes levels. It does not require accessing the source file, rather it instruments the individual.class files or entire.jar file. Since the runtime overhead of added instrumentation is small (5-20%), it is quite fast. Platform any platform CTC++: It is a powerful instrumentation-based test coverage and dynamic analysis tool for C and C++ code. It provides all coverage measures like, function coverage, decision coverage, statement coverage, condition coverage. It operates in following three steps: Use the CTC++ Preprocessor (ctc) utility for instrumenting and compiling the C or C++ source files of interest and for linking the instrumented program with the CTC++ run-time library. At this phase ctc maintains a symbol file, MON.sym by default, where it remembers the names of the instrumented files and what they contained. Execute the test runs with the instrumented program. When the instrumented code portions are executed, CTC++ collects the coverage and function timing history in memory. Normally at the end of the program, automatically by CTC++, the collected counters are written to a data file, MON.dat by default. If there were previous counters in the data file, they are summed up. Use the CTC++ Postprocessor (ctcpost) utility for putting one or more symbol files and data files together and produce the human readable textual reports. One of them, the Execution Profile Listing, can be further processed with ctc2html utility for getting and an easy-to-view hierarchical and color-coded HTML representation of the coverage information. With the ctc2excel utility the coverage data can be converted to a TSV (tab separated values) file, suitable input to Excel (or any spreadsheet application). Platform-Windows 2000/NT, HPUX, Solaris, Linux. GlassJAR Toolkit: The type of coverage information collected by this tool is branch coverage, line coverage and method coverage. It presents coverage for individual test cases in addition to the grand totals. Since, it operates on bytecode, a tester need not to install a full development environment and source code. It supports any JVM compliant with the 2 standard. It supports J2EE, J2SE and J2ME i.e.; It can test for servlets, EJB, any stand alone application or J2ME midlets. The best part is the output report format is customizable. Platform - Windows NT/2000/XP, Solaris, HP-UX, Linux, others (any 2 platform) 6. Comparison of Tools Tool Bullseye Clover Dynamic Test CTC++ EMMA GlassJAR Toolkit LDRA Testbed Company Bullseye Testing Tech. Cenqua Dynamic Memory Solutions. Semantic Design Testwell Forge Tester s Edge LDRA Type of Function, Condition Method, Function, Decision, Function, Decision,, Condition Method, Class Method, Condition,, Path Instrum entation Type Run Time Byte Table 1. Comparison of different Test Tools Languag e C, C++ C, C++ C, C , IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 521

6 7. New Approach for Analysis We have implemented a new approach to realize a prototype tool. We have named our tool Model-based Mutation Tester (MMT). From the model, we generate coverage matrix based on our proposed operators, and then automatically seed specific type of faults. When run the test suite to generate a test summary report of errors not detected by a test suite. This approach has the following components: 1. Test Suite (to test and validate the test) 2. Test Executor (to execute and test the result with the expected result) 3. Test Oracle (to check the failure or success of a test) 4. (input code) 5. Result Analyzer 6. Log file (generates the report for each test case) 7. Test Summary report Our proposed model is shown in figure 2. In our proposed methodology, automated tests build the test data, run the test and examine the result automatically. By using proper test suit, tests oracle and then log is generated. Result analyzer then analyses the log to generate the test summary report. The models are syntactically and semantically analyzed using an XML parsers and, which are the required mutant program In this experiment, four project cases (Student, Web, Professional-L1, and Professional-L2) are studied using XML and proposed approach. This approach is best suited for the codes having minimum 2000 LOCs for each project. The summary of the test case coverage analysis is explained in the following table (Table 2) and the graph (Fig.3). As shown in figure 3, in our approach of Test coverage for class and method enlarge comparatively then traditional testing approach. In all the four cases, our result shows a better performance over other traditional test case coverage tools. Table 2: Summary of Test on Object Oriented Fig-3: Comparative Performance Results Fig 2: A Schematic Model of the new Approach 8. Experimental Result Analysis Test is the process of identifying the extent to which different test suites are appropriate in accessing a full complement of the source code in testing various components of the system. 9. Conclusion & Future Work In this paper, a new method is considered for test case coverage analysis of object oriented programs on. From this it is observed that the higher percentage of code coverage gives the higher experimental accuracy of test case coverage. It is also realizable if reference codes more. So Benchmarks must be carefully designed to include all code relevant to a full application. This methodology and the experiment can be modified to different object oriented programs like python, Visual C++, etc. 2016, IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 522

7 References 1. Rajib Mall, Fundamentals of Software Engineering. PHI Learning Pvt. Ltd., Andrew Haigh, Object Oriented Analysis & Design, Tata McGraw Hill, analysis at 4. P.Jalote, An integrated approach to Software Engineering, Springer Science & Business Media, Jerry Gao, Raquel Wspinoza, Testing coverage analysis for software component validation, Proceedings of 29 th International Computer Software & Applications. Conference (COMPSAC 05), Test at 7. Raghu Lingampally, Pankaj Jalote, A Multipurpose Tool for, Proceedings of 40 th Annual Hawai International Conference on System Sciences (HICSS 07), from en.wikipedia.org 9. Khalid Alemerien and Kenneth Magel, Examining the Effectiveness of Testing Tools: An Empirical Study, International Journal of Software Engineering and Its Applications Vol.8, No.5, Pp , T. W. Williams, R. Kapur, M. R. Mercer, J. P. Mucha,, What does it mean in terms of quality?, Proceedings Annual Reliability and Maintainability Symposium, IEEE Conference Publications, M. J. Harrold, J. A. Jones, M. Pennings, S. Sinha, S. A. Spoon, and A. Gujarathi. Regression Test Selection for Software, Proceedings of the 16th ACM SIGPLAN conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA '01), J. A. Jones and M. J. Harrold. Test-Suite Reduction and Prioritization for Modified Condition/Decision, IEEE Transactions on Software Engineering, Vol. 29, Issue.3, March M. Lyu, J. Horgan, and S. London. A Analysis Tool for the Effectiveness of Software Testing, IEEE Transactions on Reliability, Vol. 43, Issue. 4, Pp , Abdelilah Sakti, Gilles Pesant, and Yann-Gael Gueheneuc, Instance Generator and Problem Representation to Improve Object Oriented, IEEE Transactions on Software Engineering, Vol. 41, No.. 3, MARCH Chun-Chia Wang, Wen C. Pai, Timothy K. Shih, An Automated Object-Oriented Testing for C++, Inheritance Hierarchy, IEEE, Alan W. Williams, Robert L. Robert, A Measure for Component Interaction Test, ACS/IEEE International Conference on Computer Systems and Applications, pages , June D. Nageswara Rao, M. V. Srinath, P. Hiranmani bala, Reliable Technique in Software Testing, Proceedings of the IEEE International Conference on Pattern Recognition, Informatics and Mobile Engineering, February 21-22, McCabe, T. J., A Complexity Measure, IEEE Transactions on Software Engineering , IRJET Impact Factor value: 4.45 ISO 9001:2008 Certified Journal Page 523

An Evaluation of Test Coverage Tools in Software Testing

An Evaluation of Test Coverage Tools in Software Testing 2011 International Conference on Telecommunication Technology and Applications Proc.of CSIT vol.5 (2011) (2011) IACSIT Press, Singapore An Evaluation of Test Coverage Tools in Software Testing Muhammad

More information

What is software testing? Software testing is designing, executing and evaluating test cases in order to detect faults.

What is software testing? Software testing is designing, executing and evaluating test cases in order to detect faults. ϖοιδ τεσταδδανδχουντ() { ασσερ τεθυαλσ(1, ο.αδδανδχουντ(νεω ΑρραψΛιστ()); ϖοιδ τεσταδδανδχουντ() { ασσερ τεθυαλσ(1, ο.αδδανδχουντ(νεω ΑρραψΛιστ()); ιντ αδδανδχουντ(λιστ λιστ) { ρετυρν λιστ.σιζε(); ιντ

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

Class 17. Discussion. Mutation analysis and testing. Problem Set 7 discuss Readings

Class 17. Discussion. Mutation analysis and testing. Problem Set 7 discuss Readings Class 17 Questions/comments Graders for Problem Set 6 (4); Graders for Problem set 7 (2-3) (solutions for all); will be posted on T-square Regression testing, Instrumentation Final project presentations:

More information

Review of Regression Test Case Selection Techniques

Review 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 information

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING Pardeep kaur 1 and Er. Rupinder Singh 2 1 Research Scholar, Dept. of Computer Science and Engineering, Chandigarh University, Gharuan, India (Email: Pardeepdharni664@gmail.com)

More information

MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS

MACHINE 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 information

5 The Control Structure Diagram (CSD)

5 The Control Structure Diagram (CSD) 5 The Control Structure Diagram (CSD) The Control Structure Diagram (CSD) is an algorithmic level diagram intended to improve the comprehensibility of source code by clearly depicting control constructs,

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved. Data structures Collections of related data items. Discussed in depth in Chapters 16 21. Array objects Data

More information

Testing Exceptions with Enforcer

Testing Exceptions with Enforcer Testing Exceptions with Enforcer Cyrille Artho February 23, 2010 National Institute of Advanced Industrial Science and Technology (AIST), Research Center for Information Security (RCIS) Abstract Java library

More information

Smart Test Case Quantifier Using MC/DC Coverage Criterion

Smart Test Case Quantifier Using MC/DC Coverage Criterion Smart Test Case Quantifier Using MC/DC Coverage Criterion S. Shanmuga Priya 1, Sheba Kezia Malarchelvi 2 Abstract Software testing, an important phase in Software Development Life Cycle (SDLC) is a time

More information

Available online at ScienceDirect. Procedia Computer Science 46 (2015 )

Available online at   ScienceDirect. Procedia Computer Science 46 (2015 ) Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 46 (2015 ) 949 956 International Conference on Information and Communication Technologies (ICICT 2014) Software Test Automation:

More information

Glass Box Testing for Test Suite- Optimization

Glass Box Testing for Test Suite- Optimization Testmethoden für Software Von der Forschung in die Prais 2008, Rainer Schmidberger Rainer Schmidberger Universität Stuttgart, Institut für Softwaretechnologie Glass Bo Testing for Test Suite- Optimization

More information

Introduction to Dynamic Analysis

Introduction 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 information

Efficient Regression Test Model for Object Oriented Software

Efficient 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 information

Regression Test Selection for C++ Software

Regression Test Selection for C++ Software Technical Report 99-60-01, Computer Science Department, Oregon State University, January 1999 Regression Test Selection for C++ Authors: Gregg Rothermel Mary Jean Harrold Jeinay Dedhia Software Sanjay

More information

Unit 2 : Computer and Operating System Structure

Unit 2 : Computer and Operating System Structure Unit 2 : Computer and Operating System Structure Lesson 1 : Interrupts and I/O Structure 1.1. Learning Objectives On completion of this lesson you will know : what interrupt is the causes of occurring

More information

Pioneering Compiler Design

Pioneering Compiler Design Pioneering Compiler Design NikhitaUpreti;Divya Bali&Aabha Sharma CSE,Dronacharya College of Engineering, Gurgaon, Haryana, India nikhita.upreti@gmail.comdivyabali16@gmail.com aabha6@gmail.com Abstract

More information

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher

COP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler

More information

Volume II, Section 5 Table of Contents

Volume II, Section 5 Table of Contents Volume II, Section 5 Table of Contents 5...5-1 5.1 Scope...5-1 5.2 Basis of...5-1 5.3 Initial Review of Documentation...5-2 5.4 Source Code Review...5-2 5.4.1 Control Constructs...5-3 5.4.1.1 Replacement

More information

White-Box Testing Techniques

White-Box Testing Techniques T-76.5613 Software Testing and Quality Assurance Lecture 3, 18.9.2006 White-Box Testing Techniques SoberIT Content What are white-box testing techniques Control flow testing Statement coverage Branch coverage

More information

Software Testing part II (white box) Lecturer: Giuseppe Santucci

Software Testing part II (white box) Lecturer: Giuseppe Santucci Software Testing part II (white box) Lecturer: Giuseppe Santucci 4. White box testing White-box (or Glass-box) testing: general characteristics Statement coverage Decision coverage Condition coverage Decision

More information

COMPILER DESIGN. For COMPUTER SCIENCE

COMPILER DESIGN. For COMPUTER SCIENCE COMPILER DESIGN For COMPUTER SCIENCE . COMPILER DESIGN SYLLABUS Lexical analysis, parsing, syntax-directed translation. Runtime environments. Intermediate code generation. ANALYSIS OF GATE PAPERS Exam

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

Please be informed that a new Testwell CTC++ version 8.2 has been released.

Please be informed that a new Testwell CTC++ version 8.2 has been released. Offenburg (Germany) / Tampere (Finland), 16 May 2017 Please be informed that a new Testwell CTC++ version 8.2 has been released. Testwell CTC++ v8.2 available ----------------------------- CTC++ v8.2 contains

More information

Verification and Validation

Verification and Validation Chapter 5 Verification and Validation Chapter Revision History Revision 0 Revision 1 Revision 2 Revision 3 Revision 4 original 94/03/23 by Fred Popowich modified 94/11/09 by Fred Popowich reorganization

More information

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin

More information

MAJOR: An Efficient and Extensible Tool for Mutation Analysis in a Java Compiler

MAJOR: An Efficient and Extensible Tool for Mutation Analysis in a Java Compiler MAJOR: An Efficient and Extensible Tool for Mutation Analysis in a Java Compiler René Just 1, Franz Schweiggert 1, and Gregory M. Kapfhammer 2 1 Ulm University, Germany 2 Allegheny College, USA 26th International

More information

Class-Component Testability Analysis

Class-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 information

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

More information

20483BC: Programming in C#

20483BC: Programming in C# 20483BC: Programming in C# Course length: 5 day(s) Course Description The goal of this course is to help students gain essential C# programming skills. This course is an entry point into the Windows Store

More information

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs

An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs An Empirical Evaluation of Test Adequacy Criteria for Event-Driven Programs Jaymie Strecker Department of Computer Science University of Maryland College Park, MD 20742 November 30, 2006 Abstract In model-based

More information

LECTURE NOTES ON COMPILER DESIGN P a g e 2

LECTURE NOTES ON COMPILER DESIGN P a g e 2 LECTURE NOTES ON COMPILER DESIGN P a g e 1 (PCCS4305) COMPILER DESIGN KISHORE KUMAR SAHU SR. LECTURER, DEPARTMENT OF INFORMATION TECHNOLOGY ROLAND INSTITUTE OF TECHNOLOGY, BERHAMPUR LECTURE NOTES ON COMPILER

More information

Jazz: A Tool for Demand-Driven Structural Testing

Jazz: A Tool for Demand-Driven Structural Testing Jazz: A Tool for Demand-Driven Structural Testing J. Misurda, J. A. Clause, J. L. Reed, P. Gandra, B. R. Childers, and M. L. Soffa Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania

More information

Program Analysis. Program Analysis

Program Analysis. Program Analysis Program Analysis Class #4 Program Analysis Dynamic Analysis 1 Static VS Dynamic Analysis Static analysis operates on a model of the SW (without executing it) If successful, produces definitive information

More information

By Matthew Noonan, Project Manager, Resource Group s Embedded Systems & Solutions

By Matthew Noonan, Project Manager, Resource Group s Embedded Systems & Solutions Building Testability into FPGA and ASIC Designs By Matthew Noonan, Project Manager, Resource Group s Embedded Systems & Solutions Introduction This paper discusses how the architecture for FPGAs and ASICs

More information

REDUCTION IN RUN TIME USING TRAP ANALYSIS

REDUCTION IN RUN TIME USING TRAP ANALYSIS REDUCTION IN RUN TIME USING TRAP ANALYSIS 1 Prof. K.V.N.Sunitha 2 Dr V. Vijay Kumar 1 Professor & Head, CSE Dept, G.Narayanamma Inst.of Tech. & Science, Shaikpet, Hyderabad, India. 2 Dr V. Vijay Kumar

More information

Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur. Lecture 13 Path Testing

Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur. Lecture 13 Path Testing Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 13 Path Testing Welcome to this session and we will discuss about path

More information

A METRIC BASED EVALUATION OF TEST CASE PRIORITATION TECHNIQUES- HILL CLIMBING, REACTIVE GRASP AND TABUSEARCH

A METRIC BASED EVALUATION OF TEST CASE PRIORITATION TECHNIQUES- HILL CLIMBING, REACTIVE GRASP AND TABUSEARCH A METRIC BASED EVALUATION OF TEST CASE PRIORITATION TECHNIQUES- HILL CLIMBING, REACTIVE GRASP AND TABUSEARCH 1 M.Manjunath, 2 N.Backiavathi 1 PG Scholar, Department of Information Technology,Jayam College

More information

INTRODUCTION TO COMPILER AND ITS PHASES

INTRODUCTION TO COMPILER AND ITS PHASES INTRODUCTION TO COMPILER AND ITS PHASES Prajakta Pahade 1, Mahesh Dawale 2 1,2Computer science and Engineering, Prof. Ram Meghe College of Engineering and Management, Badnera, Amravati, Maharashtra, India.

More information

Efficient Modeling of Embedded Systems using Designer-controlled Recoding. Rainer Dömer. With contributions by Pramod Chandraiah

Efficient Modeling of Embedded Systems using Designer-controlled Recoding. Rainer Dömer. With contributions by Pramod Chandraiah Efficient Modeling of Embedded Systems using Rainer Dömer With contributions by Pramod Chandraiah Center for Embedded Computer Systems University of California, Irvine Outline Introduction Designer-controlled

More information

Aries: Transparent Execution of PA-RISC/HP-UX Applications on IPF/HP-UX

Aries: Transparent Execution of PA-RISC/HP-UX Applications on IPF/HP-UX Aries: Transparent Execution of PA-RISC/HP-UX Applications on IPF/HP-UX Keerthi Bhushan Rajesh K Chaurasia Hewlett-Packard India Software Operations 29, Cunningham Road Bangalore 560 052 India +91-80-2251554

More information

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives

Software Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives Software Testing Fundamentals Software Testing Techniques Peter Lo Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding.

More information

142

142 Scope Rules Thus, storage duration does not affect the scope of an identifier. The only identifiers with function-prototype scope are those used in the parameter list of a function prototype. As mentioned

More information

Please be informed that a new CTC++ version has been released.

Please be informed that a new CTC++ version has been released. Tampere (Finland) / Offenburg (Germany), 15 February 2008 Please be informed that a new CTC++ version 6.5.2 has been released. The upgrade is available on all supported platforms (Windows, Linux, Solaris

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

Software Engineering. Unit Testing Gobo Eiffel Test and Clover

Software Engineering. Unit Testing Gobo Eiffel Test and Clover Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Unit Testing Gobo Eiffel Test and Clover Agenda for Today 1. Testing 2. Main Concepts 3. Unit Testing Gobo

More information

Compilers Project Proposals

Compilers Project Proposals Compilers Project Proposals Dr. D.M. Akbar Hussain These proposals can serve just as a guide line text, it gives you a clear idea about what sort of work you will be doing in your projects. Still need

More information

Time : 1 Hour Max Marks : 30

Time : 1 Hour Max Marks : 30 Total No. of Questions : 6 P4890 B.E/ Insem.- 74 B.E ( Computer Engg) PRINCIPLES OF MODERN COMPILER DESIGN (2012 Pattern) (Semester I) Time : 1 Hour Max Marks : 30 Q.1 a) Explain need of symbol table with

More information

Homework #1, on the class web pages later today

Homework #1, on the class web pages later today Assertions Reading assignment A. J. Offutt, A Practical System for Mutation Testing: Help for the Common Programmer, Proceedings of the 12th International Conference on Testing Computer Software, Washington,

More information

1Z Java SE 5 and 6, Certified Associate Exam Summary Syllabus Questions

1Z Java SE 5 and 6, Certified Associate Exam Summary Syllabus Questions 1Z0-850 Java SE 5 and 6, Certified Associate Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-850 Exam on Java SE 5 and 6, Certified Associate... 2 Oracle 1Z0-850 Certification Details:...

More information

Fault Localization for Firewall Policies

Fault Localization for Firewall Policies Fault Localization for Firewall Policies JeeHyun Hwang 1 Tao Xie 1 Fei Chen Alex X. Liu 1 Department of Computer Science, North Carolina State University, Raleigh, NC 7695-86 Department of Computer Science

More information

CIS 194: Homework 3. Due Wednesday, February 11, Interpreters. Meet SImPL

CIS 194: Homework 3. Due Wednesday, February 11, Interpreters. Meet SImPL CIS 194: Homework 3 Due Wednesday, February 11, 2015 Interpreters An interpreter is a program that takes another program as an input and evaluates it. Many modern languages such as Java 1, Javascript,

More information

What do Compilers Produce?

What do Compilers Produce? What do Compilers Produce? Pure Machine Code Compilers may generate code for a particular machine, not assuming any operating system or library routines. This is pure code because it includes nothing beyond

More information

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M. F. Tip and M. Weintraub STRUCTURAL TESTING AKA White Box Testing Thanks go to Andreas Zeller for allowing incorporation of his materials STRUCTURAL TESTING Testing based on the structure of the code Test

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 3 1 2 Non-Testing V&V 7 2.1 Code Review....... 8 2.2 Mathematically-based verification......................... 19 2.3 Static analysis tools... 23 2.4

More information

Verification and Validation

Verification and Validation Steven Zeil February 13, 2013 Contents 1 The Process 2 2 Non-Testing V&V 3 2.1 Code Review........... 4 2.2 Mathematically-based verification.................................. 8 2.3 Static analysis tools.......

More information

The C++ SoftBench Class Editor

The C++ SoftBench Class Editor The C++ SoftBench Class Editor The C++ SoftBench class editor adds automatic code generation capabilities to the class graph of the SoftBench static analyzer. Novice C++ programmers can concentrate on

More information

Refactoring via Database Representation

Refactoring via Database Representation 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Refactoring via Database Representation Péter Diviánszky 1, Rozália Szabó-Nacsa 2, Zoltán Horváth 1 1 Department

More information

Testing: (A Little) Logic Coverage

Testing: (A Little) Logic Coverage Testing: (A Little) Logic Coverage Testing, Quality Assurance, and Maintenance Winter 2018 Prof. Arie Gurfinkel Why Logic Coverage? MC/DC (Modified condition/decision coverage) MC/DC is required by the

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs.

In this Lecture you will Learn: Testing in Software Development Process. What is Software Testing. Static Testing vs. In this Lecture you will Learn: Testing in Software Development Process Examine the verification and validation activities in software development process stage by stage Introduce some basic concepts of

More information

Contents. 2 Artifact evaluation Overview of the X10 compiler Command line switch combinations for evaluating the artifact...

Contents. 2 Artifact evaluation Overview of the X10 compiler Command line switch combinations for evaluating the artifact... Contents 1 Getting started guide 3 1.1 Prerequisites........................................ 3 1.2 Setup and usage...................................... 4 1.2.1 Step 1: Extract the archive............................

More information

P17 System Testing Monday, September 24, 2007

P17 System Testing Monday, September 24, 2007 IBM Software Group P17 System Testing Monday, September 24, 2007 Module 8 : IBM Rational Testing Solutions Marty Swafford IBM Rational Software IBM Certified Solution Designer - Rational Manual Tester,

More information

Eclipse Support for Using Eli and Teaching Programming Languages

Eclipse Support for Using Eli and Teaching Programming Languages Electronic Notes in Theoretical Computer Science 141 (2005) 189 194 www.elsevier.com/locate/entcs Eclipse Support for Using Eli and Teaching Programming Languages Anthony M. Sloane 1,2 Department of Computing

More information

Software Testing Techniques

Software Testing Techniques Software Testing Techniques Sahil Munjal, Sahil Bhardwaj, Sachin Malik Student, Dronacharya College of Engineering, Khentawas, Farrukhnagar, Gurgaon Abstract Testing a software is a complex issue. This

More information

Structural Coverage Analysis for Safety-Critical Code - Who Cares? 2015 LDRA Ltd 1

Structural Coverage Analysis for Safety-Critical Code - Who Cares? 2015 LDRA Ltd 1 Structural Coverage Analysis for Safety-Critical Code - Who Cares? 2015 LDRA Ltd 1 What is Structural Coverage? Measurement of Test Effectiveness How effectively did tests exercise code? Exercised, entry

More information

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse

InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse InsECTJ: A Generic Instrumentation Framework for Collecting Dynamic Information within Eclipse Arjan Seesing and Alessandro Orso College of Computing Georgia Institute of Technology a.c.seesing@ewi.tudelft.nl,

More information

Software Traceability Establishment Revolution Based on Complexity Science

Software Traceability Establishment Revolution Based on Complexity Science Software Traceability Establishment Revolution Based on Complexity Science Po-Kang Chen 1, Jay Xiong 2 1 Y&D Information system, Inc. USA 2 International Software Automation, Inc. (ISA, currently being

More information

Feasibility 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. 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 information

SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA ABSTRACT

SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA ABSTRACT SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA Bhaskar Raj Sinha, Pradip Peter Dey, Mohammad Amin and Hassan Badkoobehi National University, School of Engineering, Technology, and Media 3678 Aero

More information

JVA-103. Java Programming

JVA-103. Java Programming JVA-103. Java Programming Version 8.0 This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for programmers with experience in languages other

More information

A Report on RMI and RPC Submitted by Sudharshan Reddy B

A Report on RMI and RPC Submitted by Sudharshan Reddy B A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in

More information

Keywords Test case prioritization, TCP, software testing, Basic path testing, Source code analysis

Keywords Test case prioritization, TCP, software testing, Basic path testing, Source code analysis Volume 5, Issue 4, 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Unit Test Case Prioritization

More information

Programming in C# (20483)

Programming in C# (20483) Programming in C# (20483) Overview This training course teaches developers the programming skills that are required for developers to create Windows applications using the C# language. During their five

More information

TUTORIAL: WHITE PAPER. VERITAS Indepth for the J2EE Platform PERFORMANCE MANAGEMENT FOR J2EE APPLICATIONS

TUTORIAL: WHITE PAPER. VERITAS Indepth for the J2EE Platform PERFORMANCE MANAGEMENT FOR J2EE APPLICATIONS TUTORIAL: WHITE PAPER VERITAS Indepth for the J2EE Platform PERFORMANCE MANAGEMENT FOR J2EE APPLICATIONS 1 1. Introduction The Critical Mid-Tier... 3 2. Performance Challenges of J2EE Applications... 3

More information

Compilers and Code Optimization EDOARDO FUSELLA

Compilers and Code Optimization EDOARDO FUSELLA Compilers and Code Optimization EDOARDO FUSELLA The course covers Compiler architecture Pre-requisite Front-end Strong programming background in C, C++ Back-end LLVM Code optimization A case study: nu+

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.

STRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M. F. Tip and M. Weintraub STRUCTURAL TESTING AKA White Box Testing Thanks go to Andreas Zeller for allowing incorporation of his materials STRUCTURAL TESTING Testing based on the structure of the code Test

More information

Control Flow Analysis with SAT Solvers

Control Flow Analysis with SAT Solvers Control Flow Analysis with SAT Solvers Steven Lyde, Matthew Might University of Utah, Salt Lake City, Utah, USA Abstract. Control flow analyses statically determine the control flow of programs. This is

More information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 03: White-Box Testing (Textbook Ch. 5) Spring 2013 Dietmar Pfahl email: dietmar.pfahl@ut.ee Lecture Chapter 5 White-box testing techniques (Lab 3) Structure of Lecture

More information

Java Training For Six Weeks

Java Training For Six Weeks Java Training For Six Weeks Java is a set of several computer software and specifications developed by Sun Microsystems, later acquired by Oracle Corporation that provides a system for developing application

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Computing Science 114 Solutions to Midterm Examination Tuesday October 19, In Questions 1 20, Circle EXACTLY ONE choice as the best answer

Computing Science 114 Solutions to Midterm Examination Tuesday October 19, In Questions 1 20, Circle EXACTLY ONE choice as the best answer Computing Science 114 Solutions to Midterm Examination Tuesday October 19, 2004 INSTRUCTOR: I E LEONARD TIME: 50 MINUTES In Questions 1 20, Circle EXACTLY ONE choice as the best answer 1 [2 pts] What company

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Structural Testing (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Learning objectives Understand rationale for structural testing How structural (code-based or glass-box) testing complements functional

More information

Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות

Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static,

More information

OPERATING SYSTEM. Chapter 4: Threads

OPERATING SYSTEM. Chapter 4: Threads OPERATING SYSTEM Chapter 4: Threads Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples Objectives To

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

Reading assignment: Reviews and Inspections

Reading 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 information

MTAT : Software Testing

MTAT : Software Testing MTAT.03.159: Software Testing Lecture 02: Basic Black-Box and White-Box Testing Techniques (Textbook Ch. 4 & 5) Spring 2018 Dietmar Pfahl email: dietmar.pfahl@ut.ee Structure of Lecture 2 Black-Box vs.

More information

Architectural Design

Architectural Design Architectural Design Topics i. Architectural design decisions ii. Architectural views iii. Architectural patterns iv. Application architectures PART 1 ARCHITECTURAL DESIGN DECISIONS Recap on SDLC Phases

More information

Prototype Environment for Refactoring Clean Programs

Prototype Environment for Refactoring Clean Programs Prototype Environment for Refactoring Clean Programs Extended abstract Rozália Szabó-Nacsa, Péter Diviánszky, Zoltán Horváth Department of Software Technology and Methodology, Eötvös Loránd University,

More information

Project 3 Due October 21, 2015, 11:59:59pm

Project 3 Due October 21, 2015, 11:59:59pm Project 3 Due October 21, 2015, 11:59:59pm 1 Introduction In this project, you will implement RubeVM, a virtual machine for a simple bytecode language. Later in the semester, you will compile Rube (a simplified

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies CODING Good software development organizations normally require their programmers to follow some welldefined and standard style of coding called coding standards. Most software development organizations

More information

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1)

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1) THE ARCHITECTURE OF A HIGHLY INTEGRATED SIMULATION SYSTEM Michel Heydemann Alain Plaignaud Daniel Dure EUROPEAN SILICON STRUCTURES 72-78 Grande Rue - 92310 SEVRES - FRANCE tel : (33-1) 4626-4495 Abstract

More information

Interaction of JVM with x86, Sparc and MIPS

Interaction of JVM with x86, Sparc and MIPS Interaction of JVM with x86, Sparc and MIPS Sasikanth Avancha, Dipanjan Chakraborty, Dhiral Gada, Tapan Kamdar {savanc1, dchakr1, dgada1, kamdar}@cs.umbc.edu Department of Computer Science and Electrical

More information

IBM WebSphere Studio Asset Analyzer, Version 5.1

IBM WebSphere Studio Asset Analyzer, Version 5.1 Helping you quickly understand, enhance and maintain enterprise applications IBM, Version 5.1 Highlights n Provides interactive textual n Helps shorten the learning curve and graphic reports that help

More information

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments. Java How to Program, 9/e Education, Inc. All Rights Reserved. } Java application programming } Use tools from the JDK to compile and run programs. } Videos at www.deitel.com/books/jhtp9/ Help you get started

More information

Sri Vidya College of Engineering & Technology

Sri Vidya College of Engineering & Technology UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the

More information