This is the most important topic of OOAD named as Object Oriented Testing. It is used to prepare a good software which has no bug in it and it performs very fast. <a href="https://harisjamil.pro">Haris Jamil</a>
This document discusses black box testing techniques. Black box testing involves testing software without knowledge of its internal structure or design. Key black box techniques include equivalence partitioning, which divides input into classes; boundary value analysis, which tests boundary cases; error guessing, which uses experience to generate test cases; and cause-effect graphing, which analyzes how inputs cause outputs to derive test cases. Black box testing has advantages like independence from implementation details and testing from a user perspective.
Coupling refers to the interdependence between software modules. There are several types of coupling from loose to tight, with the tightest being content coupling where one module relies on the internal workings of another. Cohesion measures how strongly related the functionality within a module is, ranging from coincidental to functional cohesion which is the strongest. Tight coupling and low cohesion can make software harder to maintain and reuse modules.
The document contains slides from a lecture on software engineering. It discusses definitions of software and software engineering, different types of software applications, characteristics of web applications, and general principles of software engineering practice. The slides are copyrighted and intended for educational use as supplementary material for a textbook on software engineering.
The document discusses the evolving role of software engineering and reasons for the software crisis. It notes that the nature and complexity of software has changed, requiring a move away from relying on individual experts. Additionally, many software projects fail or run over budget and schedule. Common causes include large problems, lack of training, skill shortages, and low productivity growth. The document examines historical software failures from Ariane 5 to Windows XP and argues for adopting systematic software engineering practices and processes.
Exploratory testing is a form of functional testing that relies on the tester's domain knowledge, experience with similar products, and intuition to test an application. The tester uses their expertise to identify potential soft spots or errors with minimal effort by assuming special values and conditions. While exploratory testing can find issues, it requires domain knowledge and there is no collaboration with developers.
The document discusses the software design process. It begins by explaining that software design is an iterative process that translates requirements into a blueprint for constructing the software. It then describes the main steps and outputs of the design process, which include transforming specifications into design models, reviewing designs for quality, and producing a design document. The document also covers key concepts in software design like abstraction, architecture, patterns, modularity, and information hiding.
This is the most important topic of OOAD named as Object Oriented Testing. It is used to prepare a good software which has no bug in it and it performs very fast. <a href="https://harisjamil.pro">Haris Jamil</a>
This document discusses black box testing techniques. Black box testing involves testing software without knowledge of its internal structure or design. Key black box techniques include equivalence partitioning, which divides input into classes; boundary value analysis, which tests boundary cases; error guessing, which uses experience to generate test cases; and cause-effect graphing, which analyzes how inputs cause outputs to derive test cases. Black box testing has advantages like independence from implementation details and testing from a user perspective.
Coupling refers to the interdependence between software modules. There are several types of coupling from loose to tight, with the tightest being content coupling where one module relies on the internal workings of another. Cohesion measures how strongly related the functionality within a module is, ranging from coincidental to functional cohesion which is the strongest. Tight coupling and low cohesion can make software harder to maintain and reuse modules.
The document contains slides from a lecture on software engineering. It discusses definitions of software and software engineering, different types of software applications, characteristics of web applications, and general principles of software engineering practice. The slides are copyrighted and intended for educational use as supplementary material for a textbook on software engineering.
The document discusses the evolving role of software engineering and reasons for the software crisis. It notes that the nature and complexity of software has changed, requiring a move away from relying on individual experts. Additionally, many software projects fail or run over budget and schedule. Common causes include large problems, lack of training, skill shortages, and low productivity growth. The document examines historical software failures from Ariane 5 to Windows XP and argues for adopting systematic software engineering practices and processes.
Exploratory testing is a form of functional testing that relies on the tester's domain knowledge, experience with similar products, and intuition to test an application. The tester uses their expertise to identify potential soft spots or errors with minimal effort by assuming special values and conditions. While exploratory testing can find issues, it requires domain knowledge and there is no collaboration with developers.
The document discusses the software design process. It begins by explaining that software design is an iterative process that translates requirements into a blueprint for constructing the software. It then describes the main steps and outputs of the design process, which include transforming specifications into design models, reviewing designs for quality, and producing a design document. The document also covers key concepts in software design like abstraction, architecture, patterns, modularity, and information hiding.
This document discusses parallelism and its goals of increasing computational speed and throughput. It describes two types of parallelism: instruction level parallelism and processor level parallelism. Instruction level parallelism techniques include pipelining and superscalar processing to allow multiple instructions to execute simultaneously. Processor level parallelism involves multiple independent processors working concurrently through approaches like array computers and multi-processors.
This document summarizes and compares paging and segmentation, two common memory management techniques. Paging divides physical memory into fixed-size frames and logical memory into same-sized pages. It maps pages to frames using a page table. Segmentation divides logical memory into variable-sized segments and uses a segment table to map segment numbers to physical addresses. Paging avoids external fragmentation but can cause internal fragmentation, while segmentation avoids internal fragmentation but can cause external fragmentation. Both approaches separate logical and physical address spaces but represent different models of how a process views memory.
Verification ensures software meets specifications, while validation ensures it meets user needs. Both establish software fitness for purpose. Verification includes static techniques like inspections and formal methods to check conformance pre-implementation. Validation uses dynamic testing post-implementation. Techniques include defect testing to find inconsistencies, and validation testing to ensure requirements fulfillment. Careful planning via test plans is needed to effectively verify and validate cost-efficiently. The Cleanroom methodology applies formal specifications and inspections statically to develop defect-free software incrementally.
The Unified Process (UP) is a popular iterative software development framework that uses use cases, architecture-centric design, and the Unified Modeling Language. It originated from Jacobson's Objectory process in the 1980s and was further developed by Rational Software into the Rational Unified Process. The UP consists of four phases - inception, elaboration, construction, and transition - and emphasizes iterative development, architectural drivers, and risk-managed delivery.
Se (techniques for black box testing ppt)Mani Kanth
This document discusses techniques for black box testing software. It defines black box testing as testing software functionality without knowledge of its internal implementation or code structure. The techniques described are equivalence partitioning, boundary value analysis, state transition testing, graph-based testing, error guessing, and comparison testing. Equivalence partitioning divides inputs into classes based on similar outcomes to reduce test cases. Boundary value analysis focuses on edge cases rather than the full input range. State transition testing checks behavior changes between states with the same inputs. Graph-based testing visualizes the relationships between inputs and outputs. Error guessing leverages the tester's experience to find common mistakes. Comparison testing looks for differences between versions of the same software.
Evolutionary process models allow developers to iteratively create increasingly complete versions of software. Examples include the prototyping paradigm, spiral model, and concurrent development model. The prototyping paradigm uses prototypes to elicit requirements from customers. The spiral model couples iterative prototyping with controlled development, dividing the project into framework activities. The concurrent development model concurrently develops components with defined interfaces to enable integration. These evolutionary models allow flexibility and accommodate changes but require strong communication and updated requirements.
This document discusses parallel processing architectures SIMD and MIMD. It defines serial processing as executing tasks sequentially on a single CPU. Parallel processing uses multiple CPUs concurrently by dividing a problem into parts. SIMD involves multiple processors executing the same instruction on different data simultaneously. MIMD uses multiple autonomous processors executing different instructions on different data, allowing more flexibility. Examples of each model are provided.
1. The document discusses the fundamentals of software testing, including topics like errors and debugging, software quality attributes, and test processes and principles.
2. It defines key terms like errors, faults, failures and explains the differences between testing and debugging.
3. Software quality is discussed in terms of attributes like reliability, correctness, usability and performance. Testing aims to detect errors in software to increase confidence in its quality and reliability.
The document discusses various software testing techniques, including black-box testing and white-box testing. It focuses on white-box testing techniques like basis path testing. Basis path testing uses the control flow graph of a program to identify the minimum number of test paths needed to guarantee that all statements are executed at least once. These basis paths are used to derive test cases that achieve full statement coverage. The cyclomatic complexity metric can be used to measure the number of independent paths in a program and guide test planning.
This document discusses software testing principles and concepts. It defines key terms like validation, verification, defects, failures, and metrics. It outlines 11 testing principles like testing being a creative task and test results needing meticulous inspection. The roles of testers are discussed in collaborating with other teams. Defect classes are defined at different stages and types of defects are provided. Quality factors, process maturity models, and defect prevention strategies are also summarized.
This document discusses different methods for organizing and indexing data stored on disk in a database management system (DBMS). It covers unordered or heap files, ordered or sequential files, and hash files as methods for physically arranging records on disk. It also discusses various indexing techniques like primary indexes, secondary indexes, dense vs sparse indexes, and multi-level indexes like B-trees and B+-trees that provide efficient access to records. The goal of file organization and indexing in a DBMS is to optimize performance for operations like inserting, searching, updating and deleting records from disk files.
Scheduling Definition, objectives and types Maitree Patel
Scheduling is the process of determining which process will use the CPU when multiple processes are ready to execute. The objectives of scheduling are to maximize CPU utilization, throughput, and fairness while minimizing response time, turnaround time, and waiting time. There are three main types of schedulers: long-term schedulers manage process admission to the system; short-term or CPU schedulers select the next process to run on the CPU; and medium-term schedulers handle process suspension during I/O waits.
The document discusses several prescriptive software process models including:
1) The waterfall model which follows sequential phases from requirements to deployment but lacks iteration.
2) The incremental model which delivers functionality in increments with each phase repeated.
3) Prototyping which focuses on visible aspects to refine requirements through iterative prototypes and feedback.
4) The RAD (Rapid Application Development) model which emphasizes very short development cycles of 60-90 days using parallel teams and automated tools. The document provides descriptions and diagrams of each model.
This document discusses various techniques for estimating effort for software projects. It describes common challenges with software estimation like subjective nature and changing requirements. It then explains different estimation techniques like algorithmic models, expert judgment, analogy, top-down and bottom-up approaches. Specifically, it outlines the function point analysis technique and COCOMO model for estimating effort based on source lines of code and complexity factors. Finally, it lists some typical rules of thumb for software estimation from Capers Jones.
This document discusses semaphores and their use in solving critical section problems. It defines semaphores, describes their wait and signal methods, and types including counting and binary semaphores. It then explains how semaphores can be used to solve classical synchronization problems like the bounded buffer, readers-writers, and dining philosophers problems. Examples of semaphore implementations are provided for each problem.
The document provides an overview of object-oriented concepts. It discusses that software development is increasingly relying on object-oriented paradigms due to benefits like improved modeling of real-world problems and reusability. Key concepts discussed include classes and objects, encapsulation, inheritance, polymorphism, and object composition. Various object-oriented methodologies like those proposed by Coad/Yourdon, Booch, Rumbaugh, and Jacobson are also summarized.
From the perspective of Design and Analysis of Algorithm. I made these slide by collecting data from many sites.
I am Danish Javed. Student of BSCS Hons. at ITU Information Technology University Lahore, Punjab, Pakistan.
From previous year researches, it is concluded that testing is playing a vital role in the development of the software product. As, software testing is a single approach to assure the quality of the software so most of the development efforts are put on the software testing. But software testing is an expensive process and consumes a lot of time. So, testing should be start as early as possible in the development to control the money and time problems. Even, testing should be performed at every step in the software development life cycle (SDLC) which is a structured approach used in the development of the software product. Software testing is a tradeoff between budget, time and quality. Now a day, testing becomes a very important activity in terms of exposure, security, performance and usability. Hence, software testing faces a collection of challenges.
Research Activities: past, present, and future.Marco Torchiano
Public seminar for Professor Position at Politecnico di Torino
- past research products
- current research activities
- future outlook
October 19, 2018
This document discusses parallelism and its goals of increasing computational speed and throughput. It describes two types of parallelism: instruction level parallelism and processor level parallelism. Instruction level parallelism techniques include pipelining and superscalar processing to allow multiple instructions to execute simultaneously. Processor level parallelism involves multiple independent processors working concurrently through approaches like array computers and multi-processors.
This document summarizes and compares paging and segmentation, two common memory management techniques. Paging divides physical memory into fixed-size frames and logical memory into same-sized pages. It maps pages to frames using a page table. Segmentation divides logical memory into variable-sized segments and uses a segment table to map segment numbers to physical addresses. Paging avoids external fragmentation but can cause internal fragmentation, while segmentation avoids internal fragmentation but can cause external fragmentation. Both approaches separate logical and physical address spaces but represent different models of how a process views memory.
Verification ensures software meets specifications, while validation ensures it meets user needs. Both establish software fitness for purpose. Verification includes static techniques like inspections and formal methods to check conformance pre-implementation. Validation uses dynamic testing post-implementation. Techniques include defect testing to find inconsistencies, and validation testing to ensure requirements fulfillment. Careful planning via test plans is needed to effectively verify and validate cost-efficiently. The Cleanroom methodology applies formal specifications and inspections statically to develop defect-free software incrementally.
The Unified Process (UP) is a popular iterative software development framework that uses use cases, architecture-centric design, and the Unified Modeling Language. It originated from Jacobson's Objectory process in the 1980s and was further developed by Rational Software into the Rational Unified Process. The UP consists of four phases - inception, elaboration, construction, and transition - and emphasizes iterative development, architectural drivers, and risk-managed delivery.
Se (techniques for black box testing ppt)Mani Kanth
This document discusses techniques for black box testing software. It defines black box testing as testing software functionality without knowledge of its internal implementation or code structure. The techniques described are equivalence partitioning, boundary value analysis, state transition testing, graph-based testing, error guessing, and comparison testing. Equivalence partitioning divides inputs into classes based on similar outcomes to reduce test cases. Boundary value analysis focuses on edge cases rather than the full input range. State transition testing checks behavior changes between states with the same inputs. Graph-based testing visualizes the relationships between inputs and outputs. Error guessing leverages the tester's experience to find common mistakes. Comparison testing looks for differences between versions of the same software.
Evolutionary process models allow developers to iteratively create increasingly complete versions of software. Examples include the prototyping paradigm, spiral model, and concurrent development model. The prototyping paradigm uses prototypes to elicit requirements from customers. The spiral model couples iterative prototyping with controlled development, dividing the project into framework activities. The concurrent development model concurrently develops components with defined interfaces to enable integration. These evolutionary models allow flexibility and accommodate changes but require strong communication and updated requirements.
This document discusses parallel processing architectures SIMD and MIMD. It defines serial processing as executing tasks sequentially on a single CPU. Parallel processing uses multiple CPUs concurrently by dividing a problem into parts. SIMD involves multiple processors executing the same instruction on different data simultaneously. MIMD uses multiple autonomous processors executing different instructions on different data, allowing more flexibility. Examples of each model are provided.
1. The document discusses the fundamentals of software testing, including topics like errors and debugging, software quality attributes, and test processes and principles.
2. It defines key terms like errors, faults, failures and explains the differences between testing and debugging.
3. Software quality is discussed in terms of attributes like reliability, correctness, usability and performance. Testing aims to detect errors in software to increase confidence in its quality and reliability.
The document discusses various software testing techniques, including black-box testing and white-box testing. It focuses on white-box testing techniques like basis path testing. Basis path testing uses the control flow graph of a program to identify the minimum number of test paths needed to guarantee that all statements are executed at least once. These basis paths are used to derive test cases that achieve full statement coverage. The cyclomatic complexity metric can be used to measure the number of independent paths in a program and guide test planning.
This document discusses software testing principles and concepts. It defines key terms like validation, verification, defects, failures, and metrics. It outlines 11 testing principles like testing being a creative task and test results needing meticulous inspection. The roles of testers are discussed in collaborating with other teams. Defect classes are defined at different stages and types of defects are provided. Quality factors, process maturity models, and defect prevention strategies are also summarized.
This document discusses different methods for organizing and indexing data stored on disk in a database management system (DBMS). It covers unordered or heap files, ordered or sequential files, and hash files as methods for physically arranging records on disk. It also discusses various indexing techniques like primary indexes, secondary indexes, dense vs sparse indexes, and multi-level indexes like B-trees and B+-trees that provide efficient access to records. The goal of file organization and indexing in a DBMS is to optimize performance for operations like inserting, searching, updating and deleting records from disk files.
Scheduling Definition, objectives and types Maitree Patel
Scheduling is the process of determining which process will use the CPU when multiple processes are ready to execute. The objectives of scheduling are to maximize CPU utilization, throughput, and fairness while minimizing response time, turnaround time, and waiting time. There are three main types of schedulers: long-term schedulers manage process admission to the system; short-term or CPU schedulers select the next process to run on the CPU; and medium-term schedulers handle process suspension during I/O waits.
The document discusses several prescriptive software process models including:
1) The waterfall model which follows sequential phases from requirements to deployment but lacks iteration.
2) The incremental model which delivers functionality in increments with each phase repeated.
3) Prototyping which focuses on visible aspects to refine requirements through iterative prototypes and feedback.
4) The RAD (Rapid Application Development) model which emphasizes very short development cycles of 60-90 days using parallel teams and automated tools. The document provides descriptions and diagrams of each model.
This document discusses various techniques for estimating effort for software projects. It describes common challenges with software estimation like subjective nature and changing requirements. It then explains different estimation techniques like algorithmic models, expert judgment, analogy, top-down and bottom-up approaches. Specifically, it outlines the function point analysis technique and COCOMO model for estimating effort based on source lines of code and complexity factors. Finally, it lists some typical rules of thumb for software estimation from Capers Jones.
This document discusses semaphores and their use in solving critical section problems. It defines semaphores, describes their wait and signal methods, and types including counting and binary semaphores. It then explains how semaphores can be used to solve classical synchronization problems like the bounded buffer, readers-writers, and dining philosophers problems. Examples of semaphore implementations are provided for each problem.
The document provides an overview of object-oriented concepts. It discusses that software development is increasingly relying on object-oriented paradigms due to benefits like improved modeling of real-world problems and reusability. Key concepts discussed include classes and objects, encapsulation, inheritance, polymorphism, and object composition. Various object-oriented methodologies like those proposed by Coad/Yourdon, Booch, Rumbaugh, and Jacobson are also summarized.
From the perspective of Design and Analysis of Algorithm. I made these slide by collecting data from many sites.
I am Danish Javed. Student of BSCS Hons. at ITU Information Technology University Lahore, Punjab, Pakistan.
From previous year researches, it is concluded that testing is playing a vital role in the development of the software product. As, software testing is a single approach to assure the quality of the software so most of the development efforts are put on the software testing. But software testing is an expensive process and consumes a lot of time. So, testing should be start as early as possible in the development to control the money and time problems. Even, testing should be performed at every step in the software development life cycle (SDLC) which is a structured approach used in the development of the software product. Software testing is a tradeoff between budget, time and quality. Now a day, testing becomes a very important activity in terms of exposure, security, performance and usability. Hence, software testing faces a collection of challenges.
Research Activities: past, present, and future.Marco Torchiano
Public seminar for Professor Position at Politecnico di Torino
- past research products
- current research activities
- future outlook
October 19, 2018
One of the core quality assurance feature which combines fault prevention and fault detection, is often known as testability approach also. There are many assessment techniques and quantification method evolved for software testability prediction which actually identifies testability weakness or factors to further help reduce test effort. This paper examines all those measurement techniques that are being proposed for software testability assessment at various phases of object oriented software development life cycle. The aim is to find the best metrics suit for software quality improvisation through software testability support. The ultimate objective is to establish the ground work for finding ways reduce the testing effort by improvising software testability and its assessment using well planned guidelines for object-oriented software development with the help of suitable metrics.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
The document discusses cloud testing and literature related to web accessibility testing. It outlines the need for cloud testing due to limitations of traditional testing approaches. Literature on integrating web accessibility into testing processes and challenges of cloud testing is reviewed. The document proposes that accessibility and testing be integrated earlier in the development cycle to avoid costly retrofitting. It identifies researching technical competencies for accessibility testing and building a new testing framework to address challenges as potential future work.
This document provides an overview of software testing techniques and best practices covered in a course on the topic. It discusses the purpose of software testing, including verification, error detection, and validation. It then surveys common software testing methodologies like white box testing, black box testing, and unit testing. The document also includes two case studies, one on test automation and one on testing an intranet system. Finally, it provides a template for a software test plan and discusses several papers on software testing methods and techniques.
SCHEDULING AND INSPECTION PLANNING IN SOFTWARE DEVELOPMENT PROJECTS USING MUL...ijseajournal
This document presents a multi-objective hyper-heuristic evolutionary algorithm (MHypEA) for scheduling and inspection planning in software development projects. The MHypEA incorporates twelve low-level heuristics based on selection, crossover, and mutation operations of evolutionary algorithms. The algorithm selects heuristics based on reinforcement learning with adaptive weights. An experiment on randomly generated test problems found that MHypEA explores and exploits the search space thoroughly to find high quality solutions, achieving better results than other multi-objective evolutionary algorithms in half the time.
1) The document discusses testing throughout the software development life cycle. It describes different software development models like the V-model and iterative models.
2) It explains four common test levels - component, integration, system, and acceptance testing - and their objectives. Component testing verifies individual modules, integration testing tests interfaces, system testing verifies full system requirements, and acceptance testing validates user needs.
3) Agile methodologies like Extreme Programming (XP) emphasize practices like writing tests before code, frequent integration and testing, and customer involvement. Testing is integrated within development cycles under different life cycle models.
Testing throughout the software life cycle & statistic techniquesYAObbiIkhsan
The document discusses testing throughout the software development life cycle. It describes different types of testing including functional testing, non-functional testing, structural testing, and maintenance testing. It also discusses static testing techniques such as reviews, and the review process which typically involves planning, kick-off, preparation, logging meeting, rework, and closure phases. Reviews are an important part of the testing process to improve quality.
Testing and test case generation by using fuzzy logic and nIAEME Publication
The document discusses using fuzzy logic and natural language processing techniques for software testing and test case generation. Specifically, it proposes using these techniques to enable search-based testing, automatic test case generation, and automatic fault finding. Fuzzy logic would be used to generate test cases from natural language requirements and specifications. This approach aims to make testing more efficient. The document provides background on different types of software testing (e.g. black box vs. white box) and discusses gray-box testing and test automation frameworks. It also outlines exploratory testing and functional vs. non-functional testing. The key idea is applying fuzzy logic and NLP to requirements to automatically generate test cases and detect faults.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Testing throughout the software life cycleRudy Setiawan
This document discusses software testing within different software development life cycles. It describes the V-model life cycle and iterative life cycles like agile development. The V-model uses four test levels: component testing, integration testing, system testing, and acceptance testing. Each test level has specific objectives. The document also discusses characteristics of good testing within any life cycle model, including corresponding testing for each development activity. It defines the objectives of component testing, integration testing, system testing, and acceptance testing.
Testing throughout the software life cycleRudy Setiawan
This document discusses software testing within different software development life cycles. It describes the V-model life cycle and iterative life cycles like agile development. The V-model uses four test levels: component testing, integration testing, system testing, and acceptance testing. Each test level has specific objectives. The document also discusses characteristics of good testing within any life cycle model, including corresponding testing for each development activity. It defines the objectives of component testing, integration testing, system testing, and acceptance testing.
Comparative Analysis of Model Based Testing and Formal Based Testing - A ReviewIJERA Editor
Software testing is one of the most important steps in the process of Software Development. Testing provides
the glimpse of the proper functioning of the system under different conditions. It makes it a necessary step to
choose the best testing method for the software system to be successful and accepted by a large number of
people as the market is really competitive these days and only error free systems can survive for a longer period
of time. This paper gives the comparative analysis of two major methods of testing : Formal Specifications
Based Software Testing and Model Based Software Testing, which are used widely in the process of software
development process. It brings out how these two methods of testing can provide reliability to software system
including the major uses, advantages, and disadvantages of both the testing methods. It briefly gives the detailed
comparative analysis of these two methods of software testing. It also brings out the situations where formal
specifications based testing is more effective and efficient while model based testing being effective in others.
This comparative analysis will help one in deciding on a better testing technique, depending upon the situation,
and requirements of software, for the software to be successful in long run
Testing throughout the software life cycle & statistic techniquesNovika Damai Yanti
CATEGORIES OF TEST DESIGN TECHNIQUES
Recall reasons that both specification-based (black-box) and structure-based (white-box) approaches to test case design are useful, and list the common techniques for each. (K1)
This chapter discusses the most commonly applied software development models, test levels and test types. Maintenance can be seen as a specific instance of adevelopment process. The way maintenance influences the test process, levels and types and howtesting can be organized is described in the last section of this chapter.
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Testing throughout the software life cycleHusnul Habib
1. The document discusses testing throughout the software development life cycle. It describes different software development models like the V-model and iterative models.
2. Within the V-model, there are four main test levels - component, integration, system, and acceptance testing. Each test level has specific objectives.
3. Agile development methodologies like Extreme Programming (XP) promote practices like writing test scripts before code, pair programming, and integrating and testing code several times a day.
1) The document discusses software testing principles, lifecycles, limitations and methods. It describes the different phases of software testing like requirements study, test case design, test execution, test closure and test process analysis.
2) It also discusses different levels of testing including unit testing, integration testing, system testing and acceptance testing. Unit testing checks individual program modules, integration testing verifies interface connections, system testing checks full application functionality, and acceptance testing gets customer approval.
3) The document provides objectives and features of good test cases and objectives of a software tester. It also outlines principles of testing like testing for failures, starting early, defining test plans, and testing for valid and invalid conditions.
Ini adalah tugas Testing throughout the software life cycle 2
Semoga slide ini bisa menjadi pelajaran untuk kita semua
http://sif.uin-suska.ac.id
http://fst.uin-suska.ac.id
http://www..uin-suska.ac.id
Similar to Research issues in object oriented software testing (20)
Introduction- e - waste – definition - sources of e-waste– hazardous substances in e-waste - effects of e-waste on environment and human health- need for e-waste management– e-waste handling rules - waste minimization techniques for managing e-waste – recycling of e-waste - disposal treatment methods of e- waste – mechanism of extraction of precious metal from leaching solution-global Scenario of E-waste – E-waste in India- case studies.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
International Conference on NLP, Artificial Intelligence, Machine Learning an...gerogepatton
International Conference on NLP, Artificial Intelligence, Machine Learning and Applications (NLAIM 2024) offers a premier global platform for exchanging insights and findings in the theory, methodology, and applications of NLP, Artificial Intelligence, Machine Learning, and their applications. The conference seeks substantial contributions across all key domains of NLP, Artificial Intelligence, Machine Learning, and their practical applications, aiming to foster both theoretical advancements and real-world implementations. With a focus on facilitating collaboration between researchers and practitioners from academia and industry, the conference serves as a nexus for sharing the latest developments in the field.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSIJNSA Journal
The smart irrigation system represents an innovative approach to optimize water usage in agricultural and landscaping practices. The integration of cutting-edge technologies, including sensors, actuators, and data analysis, empowers this system to provide accurate monitoring and control of irrigation processes by leveraging real-time environmental conditions. The main objective of a smart irrigation system is to optimize water efficiency, minimize expenses, and foster the adoption of sustainable water management methods. This paper conducts a systematic risk assessment by exploring the key components/assets and their functionalities in the smart irrigation system. The crucial role of sensors in gathering data on soil moisture, weather patterns, and plant well-being is emphasized in this system. These sensors enable intelligent decision-making in irrigation scheduling and water distribution, leading to enhanced water efficiency and sustainable water management practices. Actuators enable automated control of irrigation devices, ensuring precise and targeted water delivery to plants. Additionally, the paper addresses the potential threat and vulnerabilities associated with smart irrigation systems. It discusses limitations of the system, such as power constraints and computational capabilities, and calculates the potential security risks. The paper suggests possible risk treatment methods for effective secure system operation. In conclusion, the paper emphasizes the significant benefits of implementing smart irrigation systems, including improved water conservation, increased crop yield, and reduced environmental impact. Additionally, based on the security analysis conducted, the paper recommends the implementation of countermeasures and security approaches to address vulnerabilities and ensure the integrity and reliability of the system. By incorporating these measures, smart irrigation technology can revolutionize water management practices in agriculture, promoting sustainability, resource efficiency, and safeguarding against potential security threats.
A review on techniques and modelling methodologies used for checking electrom...nooriasukmaningtyas
The proper function of the integrated circuit (IC) in an inhibiting electromagnetic environment has always been a serious concern throughout the decades of revolution in the world of electronics, from disjunct devices to today’s integrated circuit technology, where billions of transistors are combined on a single chip. The automotive industry and smart vehicles in particular, are confronting design issues such as being prone to electromagnetic interference (EMI). Electronic control devices calculate incorrect outputs because of EMI and sensors give misleading values which can prove fatal in case of automotives. In this paper, the authors have non exhaustively tried to review research work concerned with the investigation of EMI in ICs and prediction of this EMI using various modelling methodologies and measurement setups.
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELgerogepatton
As digital technology becomes more deeply embedded in power systems, protecting the communication
networks of Smart Grids (SG) has emerged as a critical concern. Distributed Network Protocol 3 (DNP3)
represents a multi-tiered application layer protocol extensively utilized in Supervisory Control and Data
Acquisition (SCADA)-based smart grids to facilitate real-time data gathering and control functionalities.
Robust Intrusion Detection Systems (IDS) are necessary for early threat detection and mitigation because
of the interconnection of these networks, which makes them vulnerable to a variety of cyberattacks. To
solve this issue, this paper develops a hybrid Deep Learning (DL) model specifically designed for intrusion
detection in smart grids. The proposed approach is a combination of the Convolutional Neural Network
(CNN) and the Long-Short-Term Memory algorithms (LSTM). We employed a recent intrusion detection
dataset (DNP3), which focuses on unauthorized commands and Denial of Service (DoS) cyberattacks, to
train and test our model. The results of our experiments show that our CNN-LSTM method is much better
at finding smart grid intrusions than other deep learning algorithms used for classification. In addition,
our proposed approach improves accuracy, precision, recall, and F1 score, achieving a high detection
accuracy rate of 99.50%.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTjpsjournal1
The rivalry between prominent international actors for dominance over Central Asia's hydrocarbon
reserves and the ancient silk trade route, along with China's diplomatic endeavours in the area, has been
referred to as the "New Great Game." This research centres on the power struggle, considering
geopolitical, geostrategic, and geoeconomic variables. Topics including trade, political hegemony, oil
politics, and conventional and nontraditional security are all explored and explained by the researcher.
Using Mackinder's Heartland, Spykman Rimland, and Hegemonic Stability theories, examines China's role
in Central Asia. This study adheres to the empirical epistemological method and has taken care of
objectivity. This study analyze primary and secondary research documents critically to elaborate role of
china’s geo economic outreach in central Asian countries and its future prospect. China is thriving in trade,
pipeline politics, and winning states, according to this study, thanks to important instruments like the
Shanghai Cooperation Organisation and the Belt and Road Economic Initiative. According to this study,
China is seeing significant success in commerce, pipeline politics, and gaining influence on other
governments. This success may be attributed to the effective utilisation of key tools such as the Shanghai
Cooperation Organisation and the Belt and Road Economic Initiative.
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Research issues in object oriented software testing
1. Research Issues in Object Oriented
Software Testing
Submitted to:
Jitender kumar Chhabra
Submitted By:
Anshul Rani
2. Object Oriented Testing:- Basics
Software testing is a process of executing a program or application with the
intent of finding the software bugs.
It can also be stated as the process of validating and verifying that a
software program or application or product
Meets the business and technical requirements that guided it’s design
and development
Works as expected
“The testing of software is an important means of assessing the software to
determine its quality.”[1]
[1] G.Suganya, S.Neduncheliyan , “A Study of Object Oriented Testing Techniques: Survey and
Challenges”, IEEE international Conference on Innovative Computing Technologies
(ICICT), pp. 1-5, 29 March, 2010.
3. Object Oriented Testing:- Basics
Need of Object oriented Testing:
In object oriented softwares
Classes provide an excellent structuring mechanism. They allow a system to be divided into well-defined
units. which may then be implemented separately.
Classes support information hiding. A class can export a purely procedural interface and the internal
structure of data may be hidden. .
object-orientation encourages and supports software reuse. This may be achieved either through the simple
reuse of a class in a library, or via inheritance, whereby a new class may be created as an extension of an
existing one [2].
“These Extra facilities provided by OO design may lead to some types of faults that are difficult to detect
using traditional testing techniques.”[1]
Studies suggests that traditional testing techniques, such as functional testing, statement testing and branch
testing, are not viable for detecting OO faults. To overcome these deficiencies, it is necessary to adopt an object-
oriented testing technique that takes these features into account. [3]
[1] G.Suganya, S.Neduncheliyan , “A Study of Object Oriented Testing Techniques: Survey and Challenges”, IEEE
international Conference on Innovative Computing Technologies (ICICT), pp. 1-5, 29 March, 2010.
[2] Kolling, Michael, and John Rosenberg. "Support for object-oriented testing." Technology of Object-Oriented
Languages,IEEE TOOLS 28th. Proceedings, pp.204-215 ,1998.
[3] Tang, M. H., M. H. Chen, and M. H. Kao,"Investigating test effectiveness on object-oriented software-a case
study." Proceedings of the 12th Annual International Software Quality Week (1999).
4. Testing
Black-box
White-box
[1] G.Suganya, S.Neduncheliyan , “A Study of Object Oriented Testing Techniques: Survey and Challenges”, IEEE
international Conference on Innovative Computing Technologies (ICICT), pp. 1-5, 29 March, 2010.
[2] Kolling, Michael, and John Rosenberg. "Support for object-oriented testing." Technology of Object-Oriented
Languages,IEEE TOOLS 28th. Proceedings, pp.204-215 ,1998.
[3] Tang, M. H., M. H. Chen, and M. H. Kao,"Investigating test effectiveness on object-oriented software-a case
study." Proceedings of the 12th Annual International Software Quality Week (1999).
Black-box testing also known as Functional
testing, is focused on program’s functionality
without knowing the program’s internal
structure. [1]
White-box testing also known as Structural
testing , is designed to examine the internal
structure of the program [2,3].
Object Oriented Testing
(Categorization)
5. Object Oriented Testing (Types)
Traditional testing
techniques
(adopted for OO)
Method Testing
Class testing
System Testing
Regression Testing
Integration Testing
[1] G.Suganya, S.Neduncheliyan , “A Study of Object Oriented Testing Techniques: Survey and Challenges”, IEEE international Conference on Innovative
Computing Technologies (ICICT), pp. 1-5, 29 March, 2010.
ensures Statement Coverage to ensure that all statements
have been traversed at least once, Decision Coverage to
ensure all conditional executions and Path Coverage to
ensure the execution the true and false part of the loop.
Class testing is performed on the smallest testable unit in
the encapsulated class. Each operation as part of a class
hierarchy has to be tested because its class hierarchy
defines its context of use.
OO does not have a hierarchical control structure so
conventional top-down and bottom- up integration tests
have little meaning. Integration testing can be applied in
three different strategies: Thread-based testing, Use-
based testing, Cluster testing.
Various types of System Testing include: Recovery testing,
Security testing, Stress testing, Performance testing
Regression testing is performed similar to traditional
systems to make sure previous functionality still works
after new functionality is added.
6. Object Oriented Testing (Types)
Specialized
Techniques for
oo
Fault – Based
Testing
Scenario – Based
Testing
Deep
(architectural)
structure Testing
Surface Structure
Testing
[1] G.Suganya, S.Neduncheliyan , “A Study of Object Oriented Testing Techniques: Survey and Challenges”, IEEE
international Conference on Innovative Computing Technologies (ICICT), pp. 1-5, 29 March, 2010.
[4] Roger S.Pressman “Software Engineering – A Practitioner’s Approach” McGraw Hill International Edition., 2005
[5] ]http://www.exampler.com/testing-com/ ritings/2-scen.htm
Fault – Based testing is the method used to design tests
that have a high probability finding probable errors of the
software [4]. This type of testing can be based on the
specification (user's manuals, etc.) or the code.
This new type of testing concentrates on what the
customer does, not what the product does. It means
capturing the tasks (use cases, if you will) the customer
has to perform, then using them and their variants as
tests. Of course, this design work is best done before
you've implemented the product. [5]
A basic principle of testing is that we must trick our self
into seeing the product in a new way. If the product has a
direct manipulation interface, we'll test it better if we
pretend functions are independent of objects [5].
Various constructs that can be tested using Deep testing
can be found in [1].
7. Object Oriented Testing
(When to Test)
“Test Early, Test Often, Test enough” [6]
[6] McGregor, John D., and David A.Sykes, “A practical guide to testing object-oriented software.” Addison-Wesley
Professional, 2001.
Postponing testing towards the end of the project should be avoided.
Start testing at reasonable points during the analysis and design phases of a project. This will
help to uncover problems early in the development process.
Since testing often consumes 40~50% of development efforts, and consumes more
effort for systems
Testing should be performed on every iteration of the development process. Products should be tested
after the end of each iteration of the analysis, design and implementation phases. Complete testing of
every aspect of software is infeasible.
8. Possible Directions
Object Oriented Testing
Improvement in
Existing Testing
Techniques
Introducing New
Techniques
(saving time and cost)
Prioritization of test
cases (to save testing
time )
Automatic Test Case
Generation
9. Issues Identified
1. Introducing new techniques which are best suited for the OO Design than
existing techniques : Though object oriented programs are helpful in programming
large systems, testing of such systems requires much more effort and time.
2. Efficient Test case generation approaches for all testing specially for integration
testing: —Testing is way of insuring quality of the product. Object oriented testing is
challenging task. It becomes more intense in integration level when different units
interact for proper functioning of system.
3. Automatic test case generation
4. Prioritization of test cases: Software testing is expensive and time consuming,
especially for complex software. To reduce time test cases are generated automatically
and a drawback is a huge generated test suite. Test case prioritization (TCP) involves
the explicit prior planning of the execution order of test cases to increase the
effectiveness of software testing activities by improving the rate of fault detection
earlier in the software process.
11. Transitions from Traditional Testing to OO Testing
(An improvement in efficiency of software Testing)[7]
Traditional
Approach
Metamorphic
Approach
Metamorphic
Approach for OO
(GFT algorithm)
Diff. Approaches Associated limitations and Approach Description
Oracle Problem:[8 ]
In some situations, it is impossible or practically too difficult to decide whether
the program outputs on the test cases are correct. So it is difficult to determine
whether the program execution results are identical to the expected results.
Problems:
1..Lacking necessary metamorphic relations constructing criteria. [9,10]
2. Generate a large number of test cases that have similar function.
3. Testing is inadequate because of low functional coverage.
When we test object-oriented programs all these methods mentioned above are
not possible. So it is necessary to propose a object-oriented metamorphic
relation construction method. So authors introduced GFT algorithm GFT
algorithm[11] to generate a limited number of base pairs as a test case based on
algebraic specifications.
[7] Zhang, Xinglong, Lei Yu, and Xuemei Hou. "A method of metamorphic relations constructing for object-oriented software testing.“, 17th IEEE/ACIS
International Conference on. Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), pp. 399-406, IEEE,
2016.
[8] Chen, Tsong Y., Shing C. Cheung, and Shiu Ming Yiu. "Metamorphic testing: a new approach for generating next test cases." Department of Computer
Science, Hong Kong University of Science and Technology, Tech. Rep. HKUST-CS98-01 (1998).
[9] ZHAN W, SONG H, "Achievements and Challenges of Metamorphic Testing," in proc. WCSE 2013: IEEE Fourth World Congress on Software
Engineering, pp.73-77, 2013.
[11] Chen H Y, CHEN T.Y, "In Black and White: An Integrated Approach to Class-Level Testing of Object-Oriented Programs," ACM Transactions on
Software Engineering and Methodology, vol. 10, no. 3, pp. 250-295, Dec. 1998.
12. Model Based Distributed Testing of Object Oriented Programs
Issue addressed:
New Technique identified
Summary:
Object oriented programs are helpful in programming large systems, testing of such systems
requires much more effort and time.
In study, the program is analyzed to create a model based on System Dependence Graph(SDG)
SDG is then used to find locations within the program where the state of the program can be froze
and reused while executing other test cases.
Details of Proposed Methodology:
A novel approach to distributed testing of object oriented programs based on state where
intermediate state of the program is saved for reuse.
The system brings about efficiency to testing by reusing saved states of the program during
execution.
The state of a program that is executing can be saved by using snapshot-ting techniques.
In Java, continuation object can be used to capture everything in the java stack of a client (host)
node.
The continuation objects is then serialized and sent to server which reinstates the state on a client
node with the help of a client supervisor running on the client node.
Authors proposed a hosted model for this system where we have the client supervisor running
above the operating system.
[12] Kumar, KS Vipin, and Sheena Mathew. “Model Based Distributed Testing of Object Oriented Programs." In Procedia
Computer Science, Vol No 46, pp. 859-866, 2015.
13. Conformity Testing by Optimal Constraints for Object Oriented
Programs [44]
In this a new constraint model for testing the conformity of overriding methods during inheritance
operation for an object oriented (OO) system is introduced.
This model is based on formal specification techniques and can be used to generate test data in derived
classes.
Idea is to use an optimal constraint and a partitioning technique based on a mathematical analysis to
automate the conformity testing of overriding methods.
[44] Louzaoui, Khadija, Khalid Benlhachmi, and Jihane Alami Chentoufi. "Conformity testing by optimal constraints for
object oriented programs." I4th IEEE International Colloquium on Information Science and Technology (CiSt), , pp. 188-
193, 2016.
[45] Bashir, Muhammad Bilal, and Aamer Nadeem. "A fitness function for evolutionary mutation testing of object-oriented
programs." In IEEE 9th International Conference on Emerging Technologies (ICET, pp. 1-6, 2013.
A Fitness Function for Evolutionary Mutation Testing of Object-Oriented
Programs [45]
Mutation testing is a fault based testing technique that helps generating effective test cases for
software under test.
Mutation testing is computationally expensive by nature.
Using evolutionary testing in conjunction with mutation testing can reduce computational cost and the
whole process can be automated to facilitate testers.
Fitness function for the evolutionary mutation testing that supports all object oriented features, guides
the search by considering object's state separately, helps determining infection in the object's state at
mutated statement, and reveals potential software bugs masked in equivalent mutants.
14. An Efficient Approach for Distributed Regression Testing of Object
Oriented Programs [46]
As the software system grows, it becomes more and more difficult to test the entire system.
Testing minor changes in the software became difficult.
Regression testing was introduced to overcome this issue by testing only the changed portion of the
system.
This study presents a novel approach in distributed regression testing of object oriented software
The approach presented in this paper makes use of data flow and control flow analysis of the source
code to aid in distribution of the software during testing.
The test cases are executed in parallel, minimizing the time required for the testing process.
[46]Kumar, K. S., A. Lallu, and Sheena Mathew, "An Efficient Approach for Distributed Regression Testing of Object
Oriented Programs." ACM In Proceedings of the International Conference on Interdisciplinary Advances in Applied
Computing, p. 33, 2014.
15. TEST CASE GENERATION FOR OO
SOFTWARES
Tools & Methodologies
Concerning
INHERITENCE , POLYMORPHISM etc.
16. Overview
Reference No. Key Concept Description
[22] Proposed for random testing that uses
state and callback
Algorithm exploits a combination of
contracts and environment bindings to
guide the test-case generator toward
interesting input
[23] Uses byte code instrumentation to
automatically separate code from its
environmental dependencies
extended version of EVOSUITE Java test
generation tool
[24] Approach concerns about constraints on
interfaces, annotations, and reflection
[25] A tool named GenRed is proposed,
extended version of Randoop.
GENRED, a tool that utilizes three
approaches: input on demand creation and
coverage-based method selection
techniques
[22]Klein, Casey, Matthew Flatt, and Robert Bruce Findler. "Random Testing for Higher-order, Stateful Programs." ACM
Sigplan Notices. Vol. 45. No. 10.,pp.555-566,2010.
[23] Arcuri, Andrea, Gordon Fraser, and Juan Pablo Galeotti. "Automated Unit Test Generation for Classes with
Environment Dependencies." Proceedings of the 29th ACM/IEEE International Conference on Automated Software
Engineering, pp. 79-90, 2014.
[24] Islam, Mainul, and Christoph Csallner. "Generating test cases for programs that are coded against interfaces and
annotations." ACM Transactions on Software Engineering and Methodology (TOSEM) Issue No. 3, Vol No. 23,
pp.21,2014.
[25] Jaygarl, Hojun, Kai-Shin Lu, and Carl K. Chang. "GenRed: A tool for generating and reducing object-oriented test
cases." IEEE 34th Annual Computer Software and Applications Conference, pp. 127-136., 2010.
17. Overview
Referenc
e No.
Key Concept Description
[26] Approach differentiates between feasible
and unfeasible test cases
Study employs evolutionary algorithms for
generating and evolving test cases for the structural
unit testing of object oriented Java programs.
[27] The proposed approach detects all related
variables in uncovered branches and uses a
fitness function to give method sequences
an evaluation value to reduce candidate
methods.
Method sequence generation to get desired object
states is challenging. Seeker is one of the state-of-
the-art implementation to generate test cases with
method sequences. However, the technique
generates method sequences to change a value of
only a single variable. This study is extension to
Seeker; while concerning multiple objects
[28] aPET is a test case generation tool for a
distributed asynchronous language based on
concurrent objects.
The system receives as input a program, a
selection of methods to be tested, and a set of
parameters that include a selection of a coverage
criterion.
[26] Gupta, Nirmal Kumar, and Mukesh Kumar Rohil. "Improving GA based automated test data generation
technique for object oriented software." IEEE 3rd International Conference In Advance Computing (IACC), pp.
249-253, 2013.
[27]Takamatsu, Hiroki, Haruhiko Sato, Satoshi Oyama, and Masahito Kurihara. "Method sequence generation for
multiple object states using dynamic symbolic execution.” IEEE International Conference on Systems, Man,
and Cybernetics (SMC), pp. 3632-3636, 2014.
[28]Albert, Elvira, Puri Arenas, Miguel Gómez-Zamalloa, and Peter YH Wong. "aPET: a test case generation tool for
concurrent objects.“ACM In Proceedings of the 2013 9th Joint Meeting on Foundations of Software
Engineering, pp. 595-598, 2013.
18. Overview
Referenc
e No.
Key Concept Description
[29] Approach suited for inherited class
hierarchies (ICH) and Non-public methods
(NPM)
Study presents an approach to generate test cases
for OO software via integrating evolutionary
testing with reinforcement learning.
[30] T3i is an automated unit-testing tool to test
Java classes.
T3i generates test-cases in the form of sequences of
calls to the methods of the target class
[29] He, Wei, Ruilian Zhao, and Qunxiong Zhu. "Integrating Evolutionary Testing with Reinforcement
Learning for Automated Test Generation of Object-Oriented Software." Chinese Journal of
Electronics, Issue 1 Vol No 24, 38-45, 2015.
[30] Prasetya, I. S. "T3i: A tool for generating and querying test suites for java." ACM, In Proceedings of
the 2015 10th Joint Meeting on Foundations of Software Engineering, pp. 950-953,2015.
19. Data Flow Based Test Case Generation Algorithm
for Object Oriented Integration Testing
Issue addressed:
Test case generation of object oriented integration testing.
Summary:
A novel approach for test case generation of object oriented integration testing has been proposed.
Search space is reduced by selecting the coupling methods that are directly involved in integration.
OO Integration testing involves interaction of several objects, for proper testing these objects must be in
desired state to achieve the required coverage .
Coupling based criteria introduces the coupling relationship between object oriented components.
They have used this information in selecting coupling methods involved in integration testing and data
flow criteria to generate the method sequence for desired object state.
[13] Waheed, Shahzada Zeeshan, and Usman Qamar. "Data flow based test case generation algorithm for
object oriented integration testing.“, 6th IEEE International Conference on Software Engineering and
Service Science (ICSESS), pp. 423-427, 2015.
20. Data Flow Based Test Case Generation Algorithm
for Object Oriented Integration Testing
Proposed Methodology details
They used coupling based relation in method sequence generation for object oriented programs. There are
four types of coupling identified in [14]
1. Parameter coupling: This type of coupling occurs when method of one class passes the object of another
class as arguments
2. Shared data coupling: This type of coupling relation exists when multiple classes objects are working on
the same shared data.
3. Global Coupling: When A and B both classes share the same global reference.
4. Inheritance Coupling: When one class inherits the properties form another class.
Proposed algorithm uses the coupling relations to generate the variable length method sequence to test
the integration of different components.[13]
[13] Waheed, Shahzada Zeeshan, and Usman Qamar. "Data flow based test case generation algorithm for
object oriented integration testing.“, 6th IEEE International Conference on Software Engineering and
Service Science (ICSESS), pp. 423-427, 2015.
[14] Jin, Zhenyi, and A. Jefferson Offutt. "Coupling-based criteria for integration testing." Software Testing
Verification and Reliability, Vol No. 8, pp.133-154,1998.
21. Data Flow Based Test Case Generation Algorithm
for Object Oriented Integration Testing
Proposed Methodology details[13]
They used flow coverage criteria. Each DU path is considered in selecting method sequence to generate
the desired state for integration testing.
Instead to generating the method sequence for branch coverage we use coupling based data flow
coverage for test case generation.
It generates a Tree that contains coupling method as root and all the possible def-use paths can be
represented by the sub nodes of that tree.
Tree representation helps in generating the test cases with variable length. Length of the test case
depends upon DU-Paths.
[13] Waheed, Shahzada Zeeshan, and Usman Qamar. "Data flow based test case generation algorithm for
object oriented integration testing.“, 6th IEEE International Conference on Software Engineering and
Service Science (ICSESS), pp. 423-427, 2015.
22. Various Test Case Generation Techniques
for Object Oriented System
Different approaches of Test Case Generation are categorized as given:
Scenario based Test Case Generation:
In Scenario based test case generation test scenarios are used for generating test cases.
Baikunt Narayan Biswal has given a novel approach for scenario based test case
Generation [15].
Approach deals with test adequacy criteria for complex transactions or Events, scenario
based testing gives best results.
Test case generation UML Activity diagrams presented by Kim are also based on
concurrency in Activity Diagram where multiple systems interact with each other.
Model based Test Case Generation:
In model based testing, the testing begins at design phase.
Early detection of faults can be achieved by using this approach further reducing time, cost
and efforts of the developer to a large extent. Automatic Test case generation using Unified
Modeling Language (UML) state diagram by P.samuel and A.K.Bothra and Rajib Mall
published on the basis of Model Based Test Case generation.
[15]Baikuntha Narayan Biswal, Pragyan Nanda, Durga Prasad Mohapatra “A Novel Approach for Scenario- Based Test
Case Generation” IEEE International Conference On Information Technology, pp. 244-247,2008.
23. Various Test Case Generation Techniques
for Object Oriented System
Genetic based Test Case Generation:
In Genetic based test case generation technique, the test cases are generated using Genetic Algorithm.
Improving GA based Automated Test Data Generation Technique For Object Oriented Software [16] by
Nirmal Kumar Gupta, Mukesh Kumar Rohil.
The proposed strategy shows that genetic algorithms are useful in reducing the number of unfeasible
test cases by generating test cases for object oriented software.
In [17] a hybrid approach of generating test cases using sequence diagram with genetic algorithm as
been propose
Sequence diagram shows the method call dependencies that exist among the methods that potentially
appear in a method call sequence, which is good for integration testing..
[16] Nirmal Kumar Gupta, Mukesh Kumar Rohil, “ImprovingGA based Automated Test Data Generation
Technique For Object Oriented Software”, IEEE 3rd International Advance Computing Conference
(IACC),pp.249-253, 2013 .
[17] Mahesh Shirole, Rajeev Kumar, “A Hybrid Genetic Algorithm Based Test Case Generation Using
Sequence Diagrams”, Springer Verlag Contemporary Computing Communications in Computer and
Information Science, Vol94, pp 53-63, 2010
24. aPET: A Test Case Generation Tool for
Concurrent Objects[28]
aPET, a test case generation tool for a distributed asynchronous language based on concurrent
objects.
Concurrent Objects
Concurrent objects are actors which communicate via asynchronous method calls
For Example “o!m();” denotes an asynchronous call from the this object to object o.
Each concurrent object (both this and o in this case) allows at most one active task to
execute within the object.
The synchronization between the caller and the called methods can be optionally
performed when the result is necessary by means of future variables.
Working Methodology
The sys- tem receives as input a program, a selection of methods to be tested, and a set of
parameters that include a selection of a coverage criterion.
It yields as output a set of test cases which guarantee that the selected coverage criterion
is achieved.
The information yield by aPET can be relevant to spot bugs during program development
and also to perform regression testing.
[28]Albert, Elvira, Puri Arenas, Miguel Gómez-Zamalloa, and Peter YH Wong. "aPET: a test case generation tool for
concurrent objects.“ACM In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering,
pp. 595-598, 2013.
25. Method Sequence Generation for Multiple Object States using
Dynamic Symbolic Execution[27]
Software testing in object-oriented programming requires not only test input data, but also
method sequences. Method sequences create new instances and change object states as
desired
Method sequence generation to get desired object states is challenging.
Seeker [31] is one of the state-of-the-art implementation to generate test cases with method
sequences.
However, the technique generates method sequences to change a value of only a single
variable.
Therefore, it cannot cover the branches that need to modify values of multiple variables.
In this study, authors extend the technique in order to cover branches which require multiple
desired object states.
The proposed approach detects all related variables in uncovered branches
[27]Takamatsu, Hiroki, Haruhiko Sato, Satoshi Oyama, and Masahito Kurihara. "Method sequence
generation for multiple object states using dynamic symbolic execution.” IEEE International
Conference on Systems, Man, and Cybernetics (SMC), pp. 3632-3636, 2014.
[31] N. Tillmann and J. Halleux, “Pexwhite box test generation for .net,” in Tests and Proofs, ser. Lecture
Notes in Computer Science, B. Beckert and R. Hhnle, Eds. Springer Berlin Heidelberg, vol.0 4966,
pp. 134–153,2010..
26. Improving GA based Automated Test Data Generation
Technique for Object Oriented Software[26]
Test automation include lowering the cost of tests and consequently, the cost of whole
process of software development
Technique for automation in generating test data but this technique is expensive and cannot
be applied properly to programs having complex structures.
Approaches in the area of object-oriented testing are limited in terms of test case feasibility
due to call dependences and runtime exceptions.
This study proposes a strategy for evaluating the fitness of both feasible and unfeasible
test cases leading to the improvement of evolutionary search by achieving higher
coverage and evolving more number of unfeasible test cases into feasible ones.
[26] Gupta, Nirmal Kumar, and Mukesh Kumar Rohil. "Improving GA based automated test
data generation technique for object oriented software." IEEE 3rd International Confrence
In Advance Computing (IACC), pp. 249-253, 2013.
27. GenRed: A Tool for Generating and Reducing Object-
Oriented Test Cases[25]
An important goal of automatic testing techniques, including random testing is to
achieve high code coverage with a minimum set of test cases
To meet this goal, random testing researchers have proposed many techniques to
generate test inputs and method call sequences that yield higher code coverage.
Mostly proposed random testing techniques are only suitable for toy systems, and they
achieve low code coverage rates while generating too many unnecessary test cases on
large-scale software systems
GENRED tool (proposed in this study) that utilizes three approaches:
input on demand creation and coverage-based method selection
techniques that enhance Randoop[36]
a state-of-the-art feedback-directed random testing technique
a sequence-based reduction technique that removes redundant test cases
without executing them.[36]
[25] Jaygarl, Hojun, Kai-Shin Lu, and Carl K. Chang. "GenRed: A tool for generating and reducing object-oriented test
cases." IEEE 34th Annual Computer Software and Applications Conference, pp. 127-136., 2010.
[36] C. Pacheco and M. D. Ernst., “Randoop: feedback-directed random testing for Java. GenRed: A Tool for Generating
and Reducing Object-Oriented Test Cases” In Object Oriented Programming, Systems, Languages and Applications
(OOPSLA), pp100-104, 2007
28. Generating Test Cases for Programs that Are Coded
against Interfaces and Annotations [24]
Other current test case generators cannot handle cases in which the code under test
uses multiple interfaces, annotations, or reflection.
To cover such code in an object-oriented setting, this study describes a novel technique
for generating test cases and mock classes .
The technique consists of collecting constraints on interfaces, annotations, and
reflection, combining them with program constraints collected during dynamic
symbolic execution, encoding them in a constraint system
And then solving them with an off-the-shelf constraint solver, and mapping constraint
solutions to test cases and custom mock classes.
Approach covered such third-party code with generated mock classes, while competing
approaches failed to cover the code and sometimes produced unintended side-effects
such as filling the screen with dialog boxes and writing into the file system.
[24] Islam, Mainul, and Christoph Csallner. "Generating test cases for programs that are coded against interfaces and
annotations." ACM Transactions on Software Engineering and Methodology (TOSEM) Issue No. 3, Vol No. 23,
pp.21,2014.
29. Automated Unit Test Generation for Classes with
Environment Dependencies [23]
When classes interact with their environment, such as the file system, network, user-
interactions, etc. This leads to two major problems:
Code that depends on the environment can sometimes not be fully covered simply
by generating sequences of calls to a class under test
Even if code that is environment- dependent can be covered, the resulting tests
may be unstable, i.e., they would pass when first generated, but then may fail
when executed in a different environment.
In this study they applied byte code instrumentation to automatically separate code
from its environmental dependencies
And extended the EVOSUITE[32-33] Java test generation tool such that it can
explicitly set the state of the environment as part of the sequences of calls it generates.
[23] Arcuri, Andrea, Gordon Fraser, and Juan Pablo Galeotti. "Automated Unit Test Generation for Classes with Environment
Dependencies." Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, pp.
79-90, 2014
[32] G. Fraser and A. Arcuri. EvoSuite: Automatic test suite generation for object-oriented software. In ACM Symposium on
the Foundations of Software Engineering (FSE), pages 416–419, 2011
[33]G. Fraser and A. Arcuri. Whole test suite generation. IEEE Transactions on Software Engineering, 39(2):pp276–291,
2013.
30. An optimized approach to generate object oriented
software test case by Colored Petri Net[33]
Attributes of object- oriented software such as inheritance and polymorphism make
behavior analysis and test significantly complicated
As the state of the objects may cause faults that cannot be easily revealed with
traditional testing techniques
In this study, we propose a new technique for generating the test case by Colored Petri
Nets (CPN),
CPN is an extended version of Petri Nets[34] and usually used to system modeling and
simulation.
Methodology considers net explosion problem and also our generated Net covers all
instances of objects from different classes in the same hierarchy by introducing new
algorithm to convert UML State chart to CPN.
[33] Mirzaeian, Esmaeil, Samad Ghaderi Mojaveri, Homayun Motameni, and Ahmad Farahi. "An
optimized approach to generate object oriented software test case by Colored Petri Net." In 2nd
International Conference on Software Technology and Engineering (ICSTE), 2010, Vol. No 2, pp.2-
251, 2010.
[34] H. Watanabe, H. Tokuoka, W. Wu, M. Saeki, "A Technique for Analyzing and Testing Object-Oriented
Software Using Colored Petri Nets," apsec,, Fifth Asia-Pacific Software Engineering Conference
(APSEC'98), pp.182, 1998
31. T3i: A Tool for Generating and Querying Test Suites for
Java[35]
T3i is an automated unit-testing tool to test Java classes
To expose interactions T3i generates test-cases in the form of sequences of calls to the
methods of the target class.
This tool treats test suites as first class objects and allows users to e.g. combine, query,
and filter them.
With these operations, the user can construct a test suite with specific properties.
Queries can be used to check correctness properties. Hoare triples, LTL formulas, and
algebraic equations can be queried.
T3i can be used interactively, thus facilitating more exploratory testing, as well as
through a script.
The familiar Java syntax can be used to control it, or alternatively one can use the
much lighter Groovy syntax.
[35] Prasetya, I. S. "T3i: A tool for generating and querying test suites for java." In Proceedings of ACM 10th Joint
Meeting on Foundations of Software Engineering, pp. 950-953, 2015.
33. A Hierarchical Test Case Prioritization Technique
for Object Oriented Software
Issue addressed:
Test case Prioritization (TCP)
Summary:-
Every time any change occurs in the software, new test cases are added in addition to the
existing test suite. So there is need to conduct effective regression testing having less
number of test cases to reduce cost and time.
A hierarchical test case prioritization technique is proposed wherein various factors have
been considered that affect error propagation in the inheritance.
Prioritization of test cases take place at two levels:[18]
In the first level the classes are prioritized
In the second level the test cases of prioritized classes are ordered.
[18] Chauhan, Naresh, and Harish Kumar, "A hierarchical test case prioritization technique for object oriented software" ,
IEEE International Conference on Contemporary Computing and Informatics (IC3I),pp. 249-254, 2014.
34. A Hierarchical Test Case Prioritization Technique for
Object Oriented Software[18]
Proposed Methodology:
Firstlevel
prioritization
Secondlevel
prioritization
Prioritize classes according to number of inherited attributes/
methods/ classes/number of descendants
Calculate fault coverage per unit of each test class
Prioritize test class of each case
Apply testing on basis of classes and prioritize use of
test classes
Get information about hierarchy of classes
Source Code
35. A Hierarchical Test Case Prioritization Technique
for Object Oriented Software
Proposed Methodology details[18]
First Level Prioritization:
The first level prioritization technique prioritizes the classes of object oriented software using inheritance
hierarchy.
In inheritance hierarchy the classes at lower level inherits the properties of classes at upper level.
Therefore, the derived classes are dependent on the base classes.
This dependency increases the probability of error propagation through the inheritance hierarchy.
Hence the classes should be tested in such an order that the classes with higher probability
of error propagation get tested first.
The probability of error propagation in inheritance hierarchy depends on the number of inherited
attributes/methods, level of class in inheritance hierarchy and the number of descendent classes.
The base class should be assigned the highest priority. because if any errors get propagated from this
class, will affect the entire hierarchy. So the classes should be ordered in such a way that error
propagation can be minimized.
36. A Hierarchical Test Case Prioritization Technique
for Object Oriented Software
Proposed Methodology details:[18]
Second Level Prioritization:
The classes prioritized using first level prioritizations are input to the second level prioritization where
the test cases of each individual class are prioritized.
The test cases are prioritized based on fault weight and fault coverage.
The test cases that detect faults which have not been discovered earlier and are more critical are
prioritized first.
[18] Chauhan, Naresh, and Harish Kumar, "A hierarchical test case prioritization technique for object oriented software" ,
IEEE International Conference on Contemporary Computing and Informatics (IC3I),pp. 249-254, 2014.
37. Prioritizing Test Cases for Regression Testing of Location-Based
Services: Metrics, Techniques, and Case Study [48]
Location-based services (LBS) are widely deployed
When the implementation of an LBS-enabled service has evolved, regression testing can
be employed to assure the previously established behaviors not having been adversely
affected.
Proper test case prioritization helps reveal service anomalies efficiently so that fixes can
be scheduled earlier to minimize the nuisance to service consumers.
Study is based on the given observation:
Locations captured in the inputs and the expected outputs of test cases are physically correlated by
the LBS-enabled service, and these services heuristically use estimated and imprecise locations for
their computations, making these services tend to treat locations in close proximity homogenously.
Study proposes a suite of metrics and initializes them to demonstrate input-guided techniques and
point-of-interest (POI) aware test case prioritization techniques, differing by whether the location
information in the expected outputs of test cases is used.
[48]Zhai, Ke, Bo Jiang, and W. K. Chan. "Prioritizing test cases for regression testing of location-based
services: Metrics, techniques, and case study." IEEE Transactions on Services Computing, Vol no. 1
pp. 54-67, 2014.
38. Prioritizing Test Cases for Resource Constraint Environments Using
Historical Test Case Performance Data
The aim in this study to prioritize test cases during software regression test.
To achieve this, a new equation is presented.
The proposed equation considers historical effectiveness of the test cases in fault
detection
Each test case’s execution history in regression test and finally the last priority assigned to
the test case.
Proposed equation to compute the priority of regression test cases provides two benefits
Faster fault detection
High Coverage source code is achieved in less time
[49] Fazlalizadeh, Y., A. Khalilian, M. Abdollahi Azgomi, and S. Parsa. "Prioritizing test cases for resource constraint
environments using historical test case performance data." In 2nd IEEE International Conference on Computer
Science and Information Technology,(ICCSIT ), pp. 190-195. IEEE, 2009.
39. A Multi-Objective Technique to Prioritize Test Cases
Several existing test case prioritization techniques leave out the execution cost of test cases
and exploit a single objective function i.e. to find test cases with high coverage
A multi-objective test case prioritization technique that determines the ordering of test cases
that maximize the number of discovered faults that are both technical and business critical
This technique aims at both early discovering faults and reducing the execution cost of test
cases.
Technique automatically recovers links among software artifacts (i.e., requirements
Specification, test cases, and source code
A metric-based approach is applied to automatically identify critical and fault-prone portions
of software artifacts, thus becoming able to give them more importance during test case
prioritization
[37]Marchetto, Alessandro, Mahfuzul Islam, Waseem Asghar, Angelo Susi, and Giuseppe Scanniello. "A Multi
Objective Technique to Prioritize Test Cases.“ In IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL.
42, NO. 10, pp. 918-940, 2016.
40. Using Partition Information to Prioritize Test Cases for
Fault Localization[38]
Fault Localization prioritization aims at reordering existing test cases so that the location of
detected faulty components can be identified earlier using certain fault localization techniques
In this paper FLP problem is being addressed using Black Box information derived from
partitioning input domain.
This technique does not require test case execution history, that’s the key benefit of their
proposed approach as execution history may not be always available
Other Benefits:
Faster Localization of faulty statements
Reduces the no of test cases that needs to be executed for whole coverage
[38]Zhang, Xiao-Yi, Dave Towey, Tsong Yueh Chen, Zheng Zheng, and Kai-Yuan Cai. "Using Partition
Information to Prioritize Test Cases for Fault Localization." In IEEE 39th Annual Computer Software
and Applications Conference (COMPSAC), Vol. 2, pp. 121-126. IEEE, 2015.
41. A Tool for Constrained Pair wise Test Case Generation
Using Statistical User Profile Based Prioritization [39]
Pair wise testing is a wildly used approach in order to reduce the size of test suite and take
steps to combinatorial testing problems because of an extensively large number of possible
combinations between input parameters and values.
Invalid combinations between input parameters and values are possible if constraints are not
been handled.
We present a pair wise test generation tool called CPTG, a tool to generate test cases for pair
wise testing
User profile guidance is used to select optimal input parameters and values which do not
depend on individual tester skills and also providing constraint handling solution between
input parameters and values
Proposed tool is valuable in guiding testing with a maximized reliability by testing the most
frequently used of the system
[39] Nakornburi, Sompong, and Taratip Suwannasart. "A tool for constrained pairwise test case generation using statistical
user profile based prioritization.“, IEEE 13th International Joint Conference on Computer Science and Software
Engineering (JCSSE), pp.1-6, 2016.
42. Prioritizing Test Cases For Regression Testing
Issue addressed:
Test case Prioritization
Summary:
Rate of fault detection is A measure of how quickly faults are detected within the testing process.
An improved rate of fault detection during testing can provide faster feedback on the system under test
and let software engineers begin correcting faults earlier than might otherwise be possible.
The retesting of software is followed by modifications;
Prioritization techniques can be done using information gathered from the previous execution of test
cases to obtain test case orderings.
Study describes several techniques for using test execution information to prioritize test cases for
regression testing:[19]
Techniques that order test cases based on their total coverage of code components
Techniques that order test cases based on their coverage of code components not previously
covered
Techniques that order test cases based on their estimated ability to reveal faults in the code
components that they cover.
[19]Gregg Rothermel, Roland H. Untch, Mary Jean Harrold, “Prioritizing Test Cases For Regression Testing”, Ieee
Transactions On Software Engineering, Vol.27, NO. 10, pp.929-948, OCTOBER 2001.
43. Prioritizing Test Cases For Regression Testing []
Several aspects of the test case prioritization problem defined in the study are given below..
Testers may wish to increase the rate of fault detection of a test suite - that is, the likelihood of
revealing faults earlier in a run of regression tests using that test suite. .
Testers may wish to increase the coverage of coverable code in the system under test at a faster
rate, thus allowing a code coverage criterion to be met earlier in the test process. .
Testers may wish to increase their confidence in the reliability of the system under test at a faster
rate.
Testers may wish to increase the rate at which high- risk faults are detected by a test suite, thus
locating such faults earlier in the testing process. .
Testers may wish to increase the likelihood of revealing faults related to specific code changes
earlier in the regression testing process.
[19]Gregg Rothermel, Roland H. Untch, Mary Jean Harrold, “Prioritizing Test Cases For Regression Testing”, Ieee
Transactions On Software Engineering, Vol.27, NO. 10, pp.929-948, OCTOBER 2001.
44. Strategies for Prioritizing Test Cases Generated
Through Model-Based Testing Approaches[20]
Issue addressed:
Test case Prioritization (TCP)
Need of Prioritization:
Software testing is expensive and time consuming, especially for complex software. In order to
deal with the cost of testing, researchers develop Model-Based Testing (MBT). In MBT, test
cases are generated automatically and a drawback is a huge generated test suite.
Summary:-
TCP techniques may be applied either in a general context, allowing the prioritization even in
early stages of the testing process, or in a more specific context, such as regression testing,
depending on the input information considered by the techniques. In this work, author
proposed a technique based on the Adaptive Random Prioritization strategy, initially proposed
by Jiang et al. [], adapted aiming at considering the expertise of the developers and testers
about more failure prone regions of the application, exploring related test cases.
[20]Ouriques, João Felipe Silva., "Strategies for prioritizing test cases generated through model-based testing
approaches." In Proceedings of IEEE 37th International Conference on Software Engineering, Vol 2, pp.879-882,
2015.
[21] B. Jiang, Z. Zhang, W. K. Chan, and T. H. Tse, “Adaptive random test case prioritization,” in ASE. IEEE Computer
Society, pp. 233– 244, 2009.
46. Fragment Class Analysis for Testing of
Polymorphism in Java Software [40]
Adequate testing of polymorphism in object-oriented software requires coverage of
all possible bindings of receiver classes and target methods at call sites
Tools that measure this coverage need to use class analysis to compute the coverage
requirements.
Traditional whole- program class analysis cannot be used when testing partial
programs
Study presents a general approach for adapting whole-program class analyses to
operate on program fragments.
Study enables the use of whole-program class analyses for testing of polymorphism
in partial programs, and identify analyses that compute precise coverage
requirements and therefore are good candidates for use in coverage tools.
[40] Rountev, Atanas, Ana Milanova, and Barbara G. Ryder. "Fragment class analysis for testing of
polymorphism in Java software." IEEE Transactions on Software Engineering, Issue No. 6,
Vol. 30,pp. 372-387, 2004.
47. An Automated Approach to Inheritance and
Polymorphic Testing using a VDM++ Specification [41]
Adequate testing of polymorphism in object-oriented software requires coverage of
all possible bindings of receiver classes and target methods at call sites
Tools that measure this coverage need to use class analysis to compute the coverage
requirements.
Traditional whole- program class analysis cannot be used when testing partial
programs
Study presents a general approach for adapting whole-program class analyses to
operate on program fragments.
Study enables the use of whole-program class analyses for testing of polymorphism
in partial programs, and identify analyses that compute precise coverage
requirements and therefore are good candidates for use in coverage tools.
[41] Nadeem, Aamer, Zafar I. Malik, and Michael R. Lyu., "An Automated Approach to Inheritance and
Polymorphic Testing using a VDM++ Specification."IEEE International Multi topic Conference, pp.
224-230, 2006.
48. The Test Path Generation from State-based
Polymorphic Interaction Graph for Object-Oriented
Software [42]
In OO software it is particularly hard to detect faults when classes are integrated
because of inheritance, polymorphism and dynamic binding
Unified Modeling Language (UML) is not only for software design, but also for
software testing.
This study proposes an intermediate test model called the Polymorphism State
SEquence Test Model (PSSETM), which is generated from sequence diagram,
class diagram and state-charts for integration testing.
The coverage criteria are also defined for test path generation
By the selected coverage criterion, the algorithm of the test path generation is able
to create the test paths.
[42] Wu, Ching-Seh, Chi-Hsin Huang, and Yen-Ting Lee. "The Test Path Generation from State-Based
Polymorphic Interaction Graph for Object-Oriented Software." In IEEE Tenth International
Conference on Information Technology: New Generations (ITNG), pp. 323-330, 2013.
50. Specification Based Testing of Inheritance: A
Framework of a Tool [47]
Object Oriented Systems are widely designed using UML, OCL specifications and
these systems are to be tested with respect to a given specification.
Unified Modeling Language (UML) is not only for software design, but also for
software testing.
This work addresses the problem of testing objects with inherited code
For specifying inheritance, class diagrams annotated with OCL specifications and
method call sequences; from these test cases and test oracles are derived..
A tool has been developed to automate the process of testing
The tool follows non- intrusive/invasive approach of testing to insure that an error
due to testing does not creep into code.
[47] Boyapati, Chandrasekhar, Sarfraz Khurshid, and Darko Marinov. "Korat: Automated testing based on
Java predicates." In ACM SIGSOFT Software Engineering Notes, vol. 27, no. 4, pp. 123-133.,
2002.
52. Design of a Tool for Checking Integration Testing
Coverage of Object-Oriented Software [42]
Tool consists of 4 parts
o Code instrumentation
o Test execution
o Data analysis
o Test case generation.
[42] Augsornsri, Pachawan, and Taratip Suwannasart. "Design of a tool for checking integration testing
coverage of object-oriented software." In IEEE 2013 International Conference on Information Science
and Applications (ICISA), pp. 1-4., 2013.
53. Design of a Tool for Checking Integration Testing
Coverage of Object-Oriented Software [42]
Tool consists of 4 parts (details)
o Code instrumentation: In code instrumentation part, the tested source code is
instrumented in order to verify which parts of the code are tested when test execution
has been finished. The tested source code is read line by line and instrumented.
o Test execution: In this part, the instrumented code is executed after test execution.
When test execution has been finishes, our tool will collect values of the counter
variables and summarize percentage of class coverage and method coverage and
output them to users.
o Data analysis: In case that there are uncovered classes and methods when test
execution finishes, users are required to input the system’s sequence diagrams in XML
format and use case descriptions to generate test cases in order to increase class
coverage and method coverage values
o Test case generation: This section describes the test case generation process. This
process can be separated to two sub processes: creating a scenario graph and
generating test data.
54. Automated Test Data Generation for Coupling Based Integration Testing
of Object Oriented Programs using Evolutionary Approaches [43]
Integration testing tests the interactions of different components, when they are
integrated together in specific application, for the smooth functionality of software
system.
Coupling based testing is an integration testing approach that is based upon coupling
relationships that exist among different variables across different call sites in
functions.
Different types of coupling exist between variables across different call sites.
A novel approach for automated test data generation for coupling based integration
testing of object oriented programs using genetic algorithm has been proposed in this
paper
Approach takes the coupling path as input, containing different sub paths, and
generates the test data using genetic algorithm.
Authors have implemented a prototype tool E-Coup in Java for this approach.
[43]Khan, Shaukat Ali, and Aamer Nadeem. "Automated Test Data Generation for Coupling Based
Integration Testing of Object Oriented Programs Using Evolutionary Approaches.”, IEEE Tenth
International Conference on Information Technology: New Generations (ITNG), pp. 369-374. 2013
55. References
[1] G.Suganya, S.Neduncheliyan , “A Study of Object Oriented Testing Techniques: Survey and Challenges”, IEEE
international Conference on Innovative Computing Technologies (ICICT), pp. 1-5, 29 March, 2010.
[2] Kolling, Michael, and John Rosenberg. "Support for object-oriented testing." Technology of Object-Oriented
Languages,IEEE TOOLS 28th. Proceedings, pp.204-215 ,1998.
[3] Tang, M. H., M. H. Chen, and M. H. Kao,"Investigating test effectiveness on object-oriented software-a case
study." Proceedings of the 12th Annual International Software Quality Week (1999).
[4] Roger S.Pressman “Software Engineering – A Practitioner’s Approach” McGraw Hill International Edition., 2005
[5] ]http://www.exampler.com/testing-com/ ritings/2-scen.htm
[6] McGregor, John D., and David A.Sykes, “A practical guide to testing object-oriented software.” Addison-Wesley
Professional, 2001.
[7] Zhang, Xinglong, Lei Yu, and Xuemei Hou. "A method of metamorphic relations constructing for object-oriented
software testing.“, 17th IEEE/ACIS International Conference on. Software Engineering, Artificial Intelligence,
Networking and Parallel/Distributed Computing (SNPD), pp. 399-406, IEEE, 2016.
[8] Chen, Tsong Y., Shing C. Cheung, and Shiu Ming Yiu. "Metamorphic testing: a new approach for generating next test
cases." Department of Computer Science, Hong Kong University of Science and Technology, pp. 98-101 1998
[9] ZHAN W, SONG H, "Achievements and Challenges of Metamorphic Testing," in proc. WCSE 2013: IEEE Fourth World
Congress on Software Engineering, pp.73-77, 2013.
[11] Chen H Y, CHEN T.Y, "In Black and White: An Integrated Approach to Class-Level Testing of Object-Oriented
Programs," ACM Transactions on Software Engineering and Methodology, vol. 10, no. 3, pp. 250-295, Dec. 1998.
56. References
[12] Kumar, KS Vipin, and Sheena Mathew. “Model Based Distributed Testing of Object Oriented Programs." In Procedia
Computer Science, Vol No 46, pp. 859-866, 2015.
[13] Waheed, Shahzada Zeeshan, and Usman Qamar. "Data flow based test case generation algorithm for object oriented
integration testing.“, 6th IEEE International Conference on Software Engineering and Service Science (ICSESS), pp.
423-427, 2015.
[14] Jin, Zhenyi, and A. Jefferson Offutt. "Coupling-based criteria for integration testing." Software Testing Verification and
Reliability, Vol No. 8, pp.133-154,1998.
[15]Baikuntha Narayan Biswal, Pragyan Nanda, Durga Prasad Mohapatra “A Novel Approach for Scenario- Based Test Case
Generation” IEEE International Conference On Information Technology, pp. 244-247,2008.
[16] Nirmal Kumar Gupta, Mukesh Kumar Rohil, “ImprovingGA based Automated Test Data Generation Technique For
Object Oriented Software”, IEEE 3rd International Advance Computing Conference (IACC),pp.249-253, 2013 .
[17] Mahesh Shirole, Rajeev Kumar, “A Hybrid Genetic Algorithm Based Test Case Generation Using Sequence Diagrams”,
Springer Verlag Contemporary Computing Communications in Computer and Information Science, Vol94, pp 53-63,
2010
[18] Chauhan, Naresh, and Harish Kumar, "A hierarchical test case prioritization technique for object oriented software" ,
IEEE International Conference on Contemporary Computing and Informatics (IC3I),pp. 249-254, 2014.
[19]Gregg Rothermel, Roland H. Untch, Mary Jean Harrold, “Prioritizing Test Cases For Regression Testing”, Ieee
Transactions On Software Engineering, Vol.27, NO. 10, pp.929-948, OCTOBER 2001.
[20]Ouriques, João Felipe Silva., "Strategies for prioritizing test cases generated through model-based testing
approaches." In Proceedings of IEEE 37th International Conference on Software Engineering, Vol 2, pp.879-882,
2015.
[21] B. Jiang, Z. Zhang, W. K. Chan, and T. H. Tse, “Adaptive random test case prioritization,” in ASE. IEEE Computer
Society, pp. 233– 244, 2009.
57. References
[22]Klein, Casey, Matthew Flatt, and Robert Bruce Findler. "Random Testing for Higher-order, Stateful Programs." ACM
Sigplan Notices. Vol. 45. No. 10.,pp.555-566,2010.
[23] Arcuri, Andrea, Gordon Fraser, and Juan Pablo Galeotti. "Automated Unit Test Generation for Classes with Environment
Dependencies." Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, pp.
79-90, 2014.
[24] Islam, Mainul, and Christoph Csallner. "Generating test cases for programs that are coded against interfaces and
annotations." ACM Transactions on Software Engineering and Methodology (TOSEM) Issue No. 3, Vol No. 23,
pp.21,2014.
[25] Jaygarl, Hojun, Kai-Shin Lu, and Carl K. Chang. "GenRed: A tool for generating and reducing object-oriented test
cases." IEEE 34th Annual Computer Software and Applications Conference, pp. 127-136., 2010.
[26] Gupta, Nirmal Kumar, and Mukesh Kumar Rohil. "Improving GA based automated test data generation technique for
object oriented software." IEEE 3rd International Conference In Advance Computing (IACC), pp. 249-253, 2013.
[27]Takamatsu, Hiroki, Haruhiko Sato, Satoshi Oyama, and Masahito Kurihara. "Method sequence generation for multiple
object states using dynamic symbolic execution.” IEEE International Conference on Systems, Man, and Cybernetics
(SMC), pp. 3632-3636, 2014.
[28]Albert, Elvira, Puri Arenas, Miguel Gómez-Zamalloa, and Peter YH Wong. "aPET: a test case generation tool for
concurrent objects.“ACM In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pp.
595-598, 2013.
[29] He, Wei, Ruilian Zhao, and Qunxiong Zhu. "Integrating Evolutionary Testing with Reinforcement Learning for
Automated Test Generation of Object-Oriented Software." Chinese Journal of Electronics, Issue 1 Vol No 24, 38-45,
2015.
[30] Prasetya, I. S. "T3i: A tool for generating and querying test suites for java." ACM, In Proceedings of the 2015 10th
Joint Meeting on Foundations of Software Engineering, pp. 950-953,2015.
[31] N. Tillmann and J. Halleux, “Pexwhite box test generation for .net,” in Tests and Proofs, ser. Lecture Notes in Computer
Science, B. Beckert and R. Hhnle, Eds. Springer Berlin Heidelberg, vol.0 4966, pp. 134–153,2010.
[32] G. Fraser and A. Arcuri. EvoSuite: Automatic test suite generation for object-oriented software. In ACM Symposium on
the Foundations of Software Engineering (FSE), pages 416–419, 2011
[33]G. Fraser and A. Arcuri. Whole test suite generation. IEEE Transactions on Software Engineering, 39(2):pp276–291,
2013.
58. References
[34] H. Watanabe, H. Tokuoka, W. Wu, M. Saeki, "A Technique for Analyzing and Testing Object-Oriented Software Using
Colored Petri Nets," apsec,, Fifth Asia-Pacific Software Engineering Conference (APSEC'98), pp.182, 1998
[35] Prasetya, I. S. "T3i: A tool for generating and querying test suites for java." In Proceedings of ACM 10th Joint Meeting
on Foundations of Software Engineering, pp. 950-953, 2015.
[36] C. Pacheco and M. D. Ernst., “Randoop: feedback-directed random testing for Java. GenRed: A Tool for Generating
and Reducing Object-Oriented Test Cases” In Object Oriented Programming, Systems, Languages and Applications
(OOPSLA), pp100-104, 2007.
[37]Marchetto, Alessandro, Mahfuzul Islam, Waseem Asghar, Angelo Susi, and Giuseppe Scanniello. "A Multi Objective
Technique to Prioritize Test Cases.“ In IEEE Transactions On Software Engineering, VOL. 42, NO. 10, pp. 918-940,
2016.
[38]Zhang, Xiao-Yi, Dave Towey, Tsong Yueh Chen, Zheng Zheng, and Kai-Yuan Cai. "Using Partition Information to
Prioritize Test Cases for Fault Localization." In IEEE 39th Annual Computer Software and Applications Conference
(COMPSAC), Vol. 2, pp. 121-126. IEEE, 2015.
[39] Nakornburi, Sompong, and Taratip Suwannasart. "A tool for constrained pairwise test case generation using statistical
user profile based prioritization.“, IEEE 13th International Joint Conference on Computer Science and Software
Engineering (JCSSE), pp.1-6, 2016.
[40] Rountev, Atanas, Ana Milanova, and Barbara G. Ryder. "Fragment class analysis for testing of polymorphism in Java
software." IEEE Transactions on Software Engineering, Issue No. 6, Vol. 30,pp. 372-387, 2004.
[41] Nadeem, Aamer, Zafar I. Malik, and Michael R. Lyu., "An Automated Approach to Inheritance and Polymorphic Testing
using a VDM++ Specification."IEEE International Multi topic Conference, pp. 224-230, 2006.
[42] Augsornsri, Pachawan, and Taratip Suwannasart. "Design of a tool for checking integration testing coverage of object-
oriented software." In IEEE 2013 International Conference on Information Science and Applications (ICISA), pp. 1-4.,
2013.
[43]Khan, Shaukat Ali, and Aamer Nadeem. "Automated Test Data Generation for Coupling Based Integration Testing of
Object Oriented Programs Using Evolutionary Approaches.”, IEEE Tenth International Conference on Information
Technology: New Generations (ITNG), pp. 369-374. 2013
[44] Louzaoui, Khadija, Khalid Benlhachmi, and Jihane Alami Chentoufi. "Conformity testing by optimal constraints for
object oriented programs." I4th IEEE International Colloquium on Information Science and Technology (CiSt), , pp.
188-193, 2016.
59. References
[45] Bashir, Muhammad Bilal, and Aamer Nadeem. "A fitness function for evolutionary mutation testing of object-oriented
programs." In IEEE 9th International Conference on Emerging Technologies (ICET), pp. 1-6, 2013
[46]Kumar, K. S., A. Lallu, and Sheena Mathew, "An Efficient Approach for Distributed Regression Testing of Object
Oriented Programs." ACM In Proceedings of the International Conference on Interdisciplinary Advances in Applied
Computing, p. 33, 2014.
[47] Boyapati, Chandrasekhar, Sarfraz Khurshid, and Darko Marinov. "Korat: Automated testing based on Java predicates."
In ACM SIGSOFT Software Engineering Notes, vol. 27, no. 4, pp. 123-133., 2002.
[48]Zhai, Ke, Bo Jiang, and W. K. Chan. "Prioritizing test cases for regression testing of location-based services: Metrics,
techniques, and case study." IEEE Transactions on Services Computing, Vol no. 1 pp. 54-67, 2014.
[49]Fazlalizadeh, Y., A. Khalilian, M. Abdollahi Azgomi, and S. Parsa. "Prioritizing test cases for resource constraint
environments using historical test case performance data." In 2nd IEEE International Conference on Computer Science
and Information Technology,(ICCSIT ), pp. 190-195. IEEE, 2009.