The document proposes a novel approach called PaDMTP for path directed source test case generation and prioritization using metamorphic testing in Python. It aims to address limitations in traditional testing like incomplete coverage and lack of automation. The approach generates test cases using Python constraint solving and prioritizes them using path tracing. It was implemented on sample programs and evaluated against random and adaptive random testing using mutation analysis, showing improved fault detection effectiveness with PaDMTP.
The document discusses 11 principles of software testing. Principle 1 defines testing as exercising software with test cases to find defects and evaluate quality. Principle 2 states that good test cases have a high probability of finding undetected defects. Principle 3 stresses the importance of meticulously inspecting test results. The remaining principles address developing test cases for valid and invalid inputs, the relationship between detected defects and potential for additional defects, independence of testing from development, repeatability/reusability of tests, planning testing, integrating testing in the software lifecycle, and the creative and challenging nature of testing.
Using evolutionary testing to improve efficiency and qualityFaysal Ahmed
Evolutionary testing uses genetic algorithms to automatically generate test cases that improve software testing efficiency and quality. It transforms testing goals into optimization problems solved through evolutionary algorithms. Experiments show evolutionary testing outperforms manual, random, and static testing by generating more effective test cases. It provides a systematic, automated approach for testing temporal behavior, safety, and structural coverage.
The document discusses strategies for designing effective test cases, including black box and white box testing approaches. It focuses on the black box strategy of equivalence class partitioning to guide test case selection. Equivalence class partitioning involves dividing the software's input domain into partitions (equivalence classes) based on interesting input conditions from the specification. Test cases are then developed to cover all the classes. This technique guides testers to select a representative subset of inputs that has a high probability of detecting defects, while covering a large domain with fewer test cases.
MuJava is an automated mutation testing tool for Java programs that generates mutants faster than previous tools. It uses two techniques - metamutant generation and bytecode translation - to quickly generate behavioral and structural mutants, respectively. Metamutant generation creates a single "meta-mutant" program incorporating many mutants to test method behavior, while bytecode translation directly modifies class files to test structural changes. The paper presents the mutation operators and processes used by MuJava and demonstrates its speed improvements over separate compilation, with an average speedup of 6.79 times for metamutants.
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysisArchana Krushnan
This document discusses using exploratory testing with risk analysis for mobile applications. It begins with an introduction to exploratory testing and risk-based testing. It then explains how blending exploratory testing with risk analysis provides structure and prioritizes testing areas of high risk. The document provides an example approach, discussing identifying risks and conducting exploratory tests on risky areas. It describes how exploratory testing is useful for mobile applications given their complexity. Finally, it covers pros and cons of exploratory testing and concludes that combining it with other techniques can improve test coverage and reduce risks.
about mutation testing and demonstration of muJava. muJava is automated tool for mutation testing of java programs. It tests the test cases. hence good to enhance and checking effectiveness of your test suites.
Generating test cases using UML Communication Diagram Praveen Penumathsa
1. The document discusses generating test cases from UML communication diagrams. It presents an approach to construct a communication tree from the diagram and then iteratively select predicates from the tree to generate test data and record test cases.
2. Key classes used in the implementation include XmlBoundary to accept diagrams, DocumentParser to parse diagrams into a communication tree, TestDataFinder to generate test data from the tree, and TestCaseBoundary to display test cases.
3. The technique aims to automatically generate test cases for object-oriented programs based on an intermediate graph representation using UML diagrams, and implement the algorithms in Java.
The document discusses various software testing techniques including white box testing and black box testing. It provides details on test cases, test suites, and testing conventional applications. Specifically:
- It describes white box and black box testing techniques, and explains that white box tests the implementation while black box tests only the functionality.
- It defines what a test case is and lists typical parameters for a test case like ID, description, test data, expected results. It provides an example test case.
- It explains that a test suite is a container that holds a set of tests and can be in different states. A diagram shows the relationship between test plans, test suites and test cases.
- It discusses unit testing and
The document discusses 11 principles of software testing. Principle 1 defines testing as exercising software with test cases to find defects and evaluate quality. Principle 2 states that good test cases have a high probability of finding undetected defects. Principle 3 stresses the importance of meticulously inspecting test results. The remaining principles address developing test cases for valid and invalid inputs, the relationship between detected defects and potential for additional defects, independence of testing from development, repeatability/reusability of tests, planning testing, integrating testing in the software lifecycle, and the creative and challenging nature of testing.
Using evolutionary testing to improve efficiency and qualityFaysal Ahmed
Evolutionary testing uses genetic algorithms to automatically generate test cases that improve software testing efficiency and quality. It transforms testing goals into optimization problems solved through evolutionary algorithms. Experiments show evolutionary testing outperforms manual, random, and static testing by generating more effective test cases. It provides a systematic, automated approach for testing temporal behavior, safety, and structural coverage.
The document discusses strategies for designing effective test cases, including black box and white box testing approaches. It focuses on the black box strategy of equivalence class partitioning to guide test case selection. Equivalence class partitioning involves dividing the software's input domain into partitions (equivalence classes) based on interesting input conditions from the specification. Test cases are then developed to cover all the classes. This technique guides testers to select a representative subset of inputs that has a high probability of detecting defects, while covering a large domain with fewer test cases.
MuJava is an automated mutation testing tool for Java programs that generates mutants faster than previous tools. It uses two techniques - metamutant generation and bytecode translation - to quickly generate behavioral and structural mutants, respectively. Metamutant generation creates a single "meta-mutant" program incorporating many mutants to test method behavior, while bytecode translation directly modifies class files to test structural changes. The paper presents the mutation operators and processes used by MuJava and demonstrates its speed improvements over separate compilation, with an average speedup of 6.79 times for metamutants.
Stc 2015 regional-round-ppt-exlopratory mobile testing with risk analysisArchana Krushnan
This document discusses using exploratory testing with risk analysis for mobile applications. It begins with an introduction to exploratory testing and risk-based testing. It then explains how blending exploratory testing with risk analysis provides structure and prioritizes testing areas of high risk. The document provides an example approach, discussing identifying risks and conducting exploratory tests on risky areas. It describes how exploratory testing is useful for mobile applications given their complexity. Finally, it covers pros and cons of exploratory testing and concludes that combining it with other techniques can improve test coverage and reduce risks.
about mutation testing and demonstration of muJava. muJava is automated tool for mutation testing of java programs. It tests the test cases. hence good to enhance and checking effectiveness of your test suites.
Generating test cases using UML Communication Diagram Praveen Penumathsa
1. The document discusses generating test cases from UML communication diagrams. It presents an approach to construct a communication tree from the diagram and then iteratively select predicates from the tree to generate test data and record test cases.
2. Key classes used in the implementation include XmlBoundary to accept diagrams, DocumentParser to parse diagrams into a communication tree, TestDataFinder to generate test data from the tree, and TestCaseBoundary to display test cases.
3. The technique aims to automatically generate test cases for object-oriented programs based on an intermediate graph representation using UML diagrams, and implement the algorithms in Java.
The document discusses various software testing techniques including white box testing and black box testing. It provides details on test cases, test suites, and testing conventional applications. Specifically:
- It describes white box and black box testing techniques, and explains that white box tests the implementation while black box tests only the functionality.
- It defines what a test case is and lists typical parameters for a test case like ID, description, test data, expected results. It provides an example test case.
- It explains that a test suite is a container that holds a set of tests and can be in different states. A diagram shows the relationship between test plans, test suites and test cases.
- It discusses unit testing and
The document discusses various concepts related to software errors, faults, failures, and testing. It defines that an error is made during development, a fault is the manifestation of an error in the code, and a failure occurs when the fault is triggered. Testing involves exercising the software with test cases to find failures or demonstrate correct execution. There are two main approaches to identifying test cases - functional testing based on specifications and structural testing based on code. Both approaches are needed to fully test the software.
Planning of experiment in industrial researchpbbharate
This document discusses key concepts in the design of experiments. It begins with definitions of systems and processes, and defines an experiment as a test where input variables are deliberately changed to observe their effects on outputs. The objectives of experiments are identified as understanding factor effects and developing models. Basic principles for experimental design are outlined, including randomization, replication, and blocking. Guidelines are provided for various steps in designing an experiment, from problem definition to statistical analysis and conclusions. Examples are given throughout to illustrate experimental design concepts.
A Test Analysis Method for Black Box Testing Using AUT and Fault Knowledge.Tsuyoshi Yumoto
With a rapid increase in size and complexity of software today, the scope of software testing is also expanding. The efficiency of software testing needs to be improved in order to ensure the appropriate delivery deadline and cost of software development. For improving efficiency of software testing, the test needs to be designed in a way that the number of test cases is sufficient and appropriate in quantity. Test analysis is the activity to refine Application Under Test (AUT) into proper size that test design techniques can be applied to. It is for designing the test properly. However, the classification for proper size depends on individual’s own judgments. This paper proposes a test analysis method for the black box testing using a test category that is the classification based on fault and AUT knowledge.
Software testing techniques document discusses various software testing methods like unit testing, integration testing, system testing, white box testing, black box testing, performance testing, stress testing, and scalability testing. It provides definitions and characteristics of each method. Some key points made in the document include that unit testing tests individual classes, integration testing tests class interactions, system testing validates functionality, and performance testing evaluates how the system performs under varying loads.
Discover comprehensive manual testing courses in Hyderabad to kickstart your career in quality assurance. Join our expert-led program and gain hands-on experience in manual testing methodologies. Learn test case design, bug tracking, and test execution techniques. Enroll now for a valuable skill set that opens doors to rewarding job opportunities in the IT industry. Take the first step towards becoming a proficient manual tester with our Hyderabad-based course.
This document discusses testing object-oriented software. It covers:
- The need for object-oriented testing due to features like inheritance and polymorphism.
- Approaches to testing classes including non-modal, uni-modal, quasi-modal, and modal testing.
- Differences between testing OO and non-OO software, including a focus on operations and state in OO.
its a complete procedure of software testing.
Software Testing Research Paper.
step by step procedure of Software testing.
Software testing Techniques in this research paper.
introduction and Procedure software testing.
This document proposes a research project to develop techniques for automated testing of object-oriented software. The objectives are to design a framework for test case generation based on an intermediate graph representation of the software and to generate test cases by analyzing this graph. The plan is to use UML diagrams to construct a communication tree and then iteratively select predicates to transform into test data. The performance of the algorithms will be evaluated by testing them on sample data and comparing results.
This document provides 50 questions and answers on advanced testing techniques for the ISTQB CTAL certification. It discusses topics like conditional testing, expression testing, domain testing, perturbation testing, fault sensitivity testing, propagation oriented testing including path testing and compiler-based testing, data flow testing, and mutation testing. The full document provides detailed explanations of each testing technique.
This document summarizes a systematic review of empirical evaluations of regression test selection techniques. It identifies 32 techniques that have been evaluated in 38 studies covering 28 papers. The techniques can be classified based on their input, whether they are safe or unsafe, and the type of code or programming paradigm. However, the empirical evidence for differences between techniques is limited, with half of experiments conducted on small programs and few large-scale evaluations. As a result, there is no clear basis for determining a superior technique based on research alone. Future work should aim to better define regression test selection techniques, encourage replications, and standardize reporting of study contexts.
In this chapter, we will introduce you to the fundamentals of testing: why testing is needed; its limitations, objectives and purpose; the principles behind testing; the process that testers follow; and some of the psychological factors that testers must consider in their work. By reading this chapter you'll gain an understanding of the fundamentals of testing and be able to describe those fundamentals.
The document provides an overview of the ISTQB Certified Tester Foundation Level certification. It discusses the ISTQB organization and its global network of national testing boards. The benefits of ISTQB certification are presented, including becoming an internationally recognized qualification for testing professionals. The six modules that make up the Foundation Level certification are introduced.
Black-Box Testing, Model-Based Testing, Testing for Specialized Environments, Architecture, Object-Oriented Testing Strategies, Object-Oriented Testing Methods, Test Cases and the Class Hierarchy, Testing Concepts for WebApps, Testing Process – An Overview, User Interface Testing, Test Plan, Positive Testing Negative Testing
Smart like a Fox: How clever students trick dumb programming assignment asses...Nane Kratzke
This case study reports on two first-semester programming courses with more than 190 students. Both courses made use of automated assessments. We observed how students trick these systems by analysing the version history of suspect submissions. By analysing more than 3300 submissions, we revealed four astonishingly simple tricks (overfitting, evasion) and cheat-patterns (redirection, and injection) that students used to trick automated programming assignment assessment systems (APAAS). Although not the main focus of this study, it discusses and proposes corresponding counter-measures where appropriate.
Nevertheless, the primary intent of this paper is to raise problem awareness and to identify and systematise observable problem patterns in a more formal approach. The identified immaturity of existing APAAS solutions might have implications for courses that rely deeply on automation like MOOCs. Therefore, we conclude to look at APAAS solutions much more from a security point of view (code injection). Moreover, we identify the need to evolve existing unit testing frameworks into more evaluation-oriented teaching solutions that provide better trick and cheat detection capabilities and differentiated grading support.
How to Actually DO High-volume Automated TestingTechWell
This document summarizes a presentation on high-volume automated testing (HiVAT). Cem Kaner and Carol Oliver will present on techniques for doing HiVAT testing, including examples implemented in Ruby code. They will describe three HiVAT techniques - functional equivalence testing, long-sequence regression testing, and a more flexible HiVAT architecture. The presentation will cover the basic ingredients needed for HiVAT, examples of the techniques, and ideas for making HiVAT work in practice.
This document discusses search-based testing and its applications in software testing. It outlines some key strengths of search-based software testing (SBST) such as being scalable, parallelizable, versatile, and flexible. It also discusses some limitations of search-based approaches for problems that require formal verification to establish properties for all possible usages. The document compares classical optimization approaches, which build solutions incrementally, to stochastic optimization approaches used in SBST, which sample solutions in a randomized way. It notes that while testing can find bugs, it cannot prove their absence. Finally, it discusses how SBST can be combined with other techniques like constraint solving and machine learning.
In this presentation I will show a set of important topics about Software Engineering Empirical Studies that can be useful for increasing quality on your thesis and monographs in general. You can read this presentation and to think about how to do a good experimentation by apply its objectives, validation methods, questions, answers expected, define metrics and measuring it.I will exhibit how the researchers selected the data for avoid case studies in a biased way using a GQM methodology to sort the study in a simpler view as well.
power point presentation of software testing amravati.pptxpravinjedhe3500
IEEE 802.11 standards, commonly known as Wi-Fi, play a pivotal role in facilitating wireless communication by providing a robust framework for establishing and managing wireless networks. These standards define the protocols and specifications for wireless local area networks (WLANs), enabling devices to communicate with each other and access network resources without the need for physical wired connections. Here's how IEEE 802.11 standards contribute to wireless communication:
The document discusses test management which includes test planning, test process, test reporting, and test metrics. It provides details on developing a test plan, test case specification, requirement traceability matrix, and executing test cases. The key aspects of test management are test standards, infrastructure management, and people/team management. Test metrics such as requirements volatility, review efficiency, productivity, and defect ratios are used for test oversight and decision making. A test summary report communicates the results of testing to stakeholders and includes test coverage, outstanding defects, and an overall assessment of the testing effort.
The document discusses various concepts related to software errors, faults, failures, and testing. It defines that an error is made during development, a fault is the manifestation of an error in the code, and a failure occurs when the fault is triggered. Testing involves exercising the software with test cases to find failures or demonstrate correct execution. There are two main approaches to identifying test cases - functional testing based on specifications and structural testing based on code. Both approaches are needed to fully test the software.
Planning of experiment in industrial researchpbbharate
This document discusses key concepts in the design of experiments. It begins with definitions of systems and processes, and defines an experiment as a test where input variables are deliberately changed to observe their effects on outputs. The objectives of experiments are identified as understanding factor effects and developing models. Basic principles for experimental design are outlined, including randomization, replication, and blocking. Guidelines are provided for various steps in designing an experiment, from problem definition to statistical analysis and conclusions. Examples are given throughout to illustrate experimental design concepts.
A Test Analysis Method for Black Box Testing Using AUT and Fault Knowledge.Tsuyoshi Yumoto
With a rapid increase in size and complexity of software today, the scope of software testing is also expanding. The efficiency of software testing needs to be improved in order to ensure the appropriate delivery deadline and cost of software development. For improving efficiency of software testing, the test needs to be designed in a way that the number of test cases is sufficient and appropriate in quantity. Test analysis is the activity to refine Application Under Test (AUT) into proper size that test design techniques can be applied to. It is for designing the test properly. However, the classification for proper size depends on individual’s own judgments. This paper proposes a test analysis method for the black box testing using a test category that is the classification based on fault and AUT knowledge.
Software testing techniques document discusses various software testing methods like unit testing, integration testing, system testing, white box testing, black box testing, performance testing, stress testing, and scalability testing. It provides definitions and characteristics of each method. Some key points made in the document include that unit testing tests individual classes, integration testing tests class interactions, system testing validates functionality, and performance testing evaluates how the system performs under varying loads.
Discover comprehensive manual testing courses in Hyderabad to kickstart your career in quality assurance. Join our expert-led program and gain hands-on experience in manual testing methodologies. Learn test case design, bug tracking, and test execution techniques. Enroll now for a valuable skill set that opens doors to rewarding job opportunities in the IT industry. Take the first step towards becoming a proficient manual tester with our Hyderabad-based course.
This document discusses testing object-oriented software. It covers:
- The need for object-oriented testing due to features like inheritance and polymorphism.
- Approaches to testing classes including non-modal, uni-modal, quasi-modal, and modal testing.
- Differences between testing OO and non-OO software, including a focus on operations and state in OO.
its a complete procedure of software testing.
Software Testing Research Paper.
step by step procedure of Software testing.
Software testing Techniques in this research paper.
introduction and Procedure software testing.
This document proposes a research project to develop techniques for automated testing of object-oriented software. The objectives are to design a framework for test case generation based on an intermediate graph representation of the software and to generate test cases by analyzing this graph. The plan is to use UML diagrams to construct a communication tree and then iteratively select predicates to transform into test data. The performance of the algorithms will be evaluated by testing them on sample data and comparing results.
This document provides 50 questions and answers on advanced testing techniques for the ISTQB CTAL certification. It discusses topics like conditional testing, expression testing, domain testing, perturbation testing, fault sensitivity testing, propagation oriented testing including path testing and compiler-based testing, data flow testing, and mutation testing. The full document provides detailed explanations of each testing technique.
This document summarizes a systematic review of empirical evaluations of regression test selection techniques. It identifies 32 techniques that have been evaluated in 38 studies covering 28 papers. The techniques can be classified based on their input, whether they are safe or unsafe, and the type of code or programming paradigm. However, the empirical evidence for differences between techniques is limited, with half of experiments conducted on small programs and few large-scale evaluations. As a result, there is no clear basis for determining a superior technique based on research alone. Future work should aim to better define regression test selection techniques, encourage replications, and standardize reporting of study contexts.
In this chapter, we will introduce you to the fundamentals of testing: why testing is needed; its limitations, objectives and purpose; the principles behind testing; the process that testers follow; and some of the psychological factors that testers must consider in their work. By reading this chapter you'll gain an understanding of the fundamentals of testing and be able to describe those fundamentals.
The document provides an overview of the ISTQB Certified Tester Foundation Level certification. It discusses the ISTQB organization and its global network of national testing boards. The benefits of ISTQB certification are presented, including becoming an internationally recognized qualification for testing professionals. The six modules that make up the Foundation Level certification are introduced.
Black-Box Testing, Model-Based Testing, Testing for Specialized Environments, Architecture, Object-Oriented Testing Strategies, Object-Oriented Testing Methods, Test Cases and the Class Hierarchy, Testing Concepts for WebApps, Testing Process – An Overview, User Interface Testing, Test Plan, Positive Testing Negative Testing
Smart like a Fox: How clever students trick dumb programming assignment asses...Nane Kratzke
This case study reports on two first-semester programming courses with more than 190 students. Both courses made use of automated assessments. We observed how students trick these systems by analysing the version history of suspect submissions. By analysing more than 3300 submissions, we revealed four astonishingly simple tricks (overfitting, evasion) and cheat-patterns (redirection, and injection) that students used to trick automated programming assignment assessment systems (APAAS). Although not the main focus of this study, it discusses and proposes corresponding counter-measures where appropriate.
Nevertheless, the primary intent of this paper is to raise problem awareness and to identify and systematise observable problem patterns in a more formal approach. The identified immaturity of existing APAAS solutions might have implications for courses that rely deeply on automation like MOOCs. Therefore, we conclude to look at APAAS solutions much more from a security point of view (code injection). Moreover, we identify the need to evolve existing unit testing frameworks into more evaluation-oriented teaching solutions that provide better trick and cheat detection capabilities and differentiated grading support.
How to Actually DO High-volume Automated TestingTechWell
This document summarizes a presentation on high-volume automated testing (HiVAT). Cem Kaner and Carol Oliver will present on techniques for doing HiVAT testing, including examples implemented in Ruby code. They will describe three HiVAT techniques - functional equivalence testing, long-sequence regression testing, and a more flexible HiVAT architecture. The presentation will cover the basic ingredients needed for HiVAT, examples of the techniques, and ideas for making HiVAT work in practice.
This document discusses search-based testing and its applications in software testing. It outlines some key strengths of search-based software testing (SBST) such as being scalable, parallelizable, versatile, and flexible. It also discusses some limitations of search-based approaches for problems that require formal verification to establish properties for all possible usages. The document compares classical optimization approaches, which build solutions incrementally, to stochastic optimization approaches used in SBST, which sample solutions in a randomized way. It notes that while testing can find bugs, it cannot prove their absence. Finally, it discusses how SBST can be combined with other techniques like constraint solving and machine learning.
In this presentation I will show a set of important topics about Software Engineering Empirical Studies that can be useful for increasing quality on your thesis and monographs in general. You can read this presentation and to think about how to do a good experimentation by apply its objectives, validation methods, questions, answers expected, define metrics and measuring it.I will exhibit how the researchers selected the data for avoid case studies in a biased way using a GQM methodology to sort the study in a simpler view as well.
power point presentation of software testing amravati.pptxpravinjedhe3500
IEEE 802.11 standards, commonly known as Wi-Fi, play a pivotal role in facilitating wireless communication by providing a robust framework for establishing and managing wireless networks. These standards define the protocols and specifications for wireless local area networks (WLANs), enabling devices to communicate with each other and access network resources without the need for physical wired connections. Here's how IEEE 802.11 standards contribute to wireless communication:
The document discusses test management which includes test planning, test process, test reporting, and test metrics. It provides details on developing a test plan, test case specification, requirement traceability matrix, and executing test cases. The key aspects of test management are test standards, infrastructure management, and people/team management. Test metrics such as requirements volatility, review efficiency, productivity, and defect ratios are used for test oversight and decision making. A test summary report communicates the results of testing to stakeholders and includes test coverage, outstanding defects, and an overall assessment of the testing effort.
Similar to Metamorphic Testing Thesis Defense.pptx (20)
How to Manage Reception Report in Odoo 17Celine George
A business may deal with both sales and purchases occasionally. They buy things from vendors and then sell them to their customers. Such dealings can be confusing at times. Because multiple clients may inquire about the same product at the same time, after purchasing those products, customers must be assigned to them. Odoo has a tool called Reception Report that can be used to complete this assignment. By enabling this, a reception report comes automatically after confirming a receipt, from which we can assign products to orders.
How to Download & Install Module From the Odoo App Store in Odoo 17Celine George
Custom modules offer the flexibility to extend Odoo's capabilities, address unique requirements, and optimize workflows to align seamlessly with your organization's processes. By leveraging custom modules, businesses can unlock greater efficiency, productivity, and innovation, empowering them to stay competitive in today's dynamic market landscape. In this tutorial, we'll guide you step by step on how to easily download and install modules from the Odoo App Store.
CapTechTalks Webinar Slides June 2024 Donovan Wright.pptxCapitolTechU
Slides from a Capitol Technology University webinar held June 20, 2024. The webinar featured Dr. Donovan Wright, presenting on the Department of Defense Digital Transformation.
Information and Communication Technology in EducationMJDuyan
(𝐓𝐋𝐄 𝟏𝟎𝟎) (𝐋𝐞𝐬𝐬𝐨𝐧 2)-𝐏𝐫𝐞𝐥𝐢𝐦𝐬
𝐄𝐱𝐩𝐥𝐚𝐢𝐧 𝐭𝐡𝐞 𝐈𝐂𝐓 𝐢𝐧 𝐞𝐝𝐮𝐜𝐚𝐭𝐢𝐨𝐧:
Students will be able to explain the role and impact of Information and Communication Technology (ICT) in education. They will understand how ICT tools, such as computers, the internet, and educational software, enhance learning and teaching processes. By exploring various ICT applications, students will recognize how these technologies facilitate access to information, improve communication, support collaboration, and enable personalized learning experiences.
𝐃𝐢𝐬𝐜𝐮𝐬𝐬 𝐭𝐡𝐞 𝐫𝐞𝐥𝐢𝐚𝐛𝐥𝐞 𝐬𝐨𝐮𝐫𝐜𝐞𝐬 𝐨𝐧 𝐭𝐡𝐞 𝐢𝐧𝐭𝐞𝐫𝐧𝐞𝐭:
-Students will be able to discuss what constitutes reliable sources on the internet. They will learn to identify key characteristics of trustworthy information, such as credibility, accuracy, and authority. By examining different types of online sources, students will develop skills to evaluate the reliability of websites and content, ensuring they can distinguish between reputable information and misinformation.
5. LIMITATIONS OF TRADITIONAL TESTING
PRACTICES
• It is difficult to develop test cases that account for all feasible
circumstances and inputs, which might result in problems being
undetected.
• Traditional testing techniques can take a long time, especially in big
and complicated projects, which could cause product releases to be
delayed.
• Because testers are fallible, manual testing might result in errors, the
failure to notice flaws, or inconsistent test findings.
• Manual testing is continually running the same test cases, which can
be tedious and increase the likelihood of errors.
• Unaware biases among testers might cause them to concentrate on
certain features or locations while potentially ignoring other
6. TEST ORACLE PROBLEM
• In software testing, a test oracle is a mechanism used to determine the
correctness of the test results.
• The test oracle problem arises when there is no clear and definitive way to
verify the correctness of the test output automatically.
• It is challenging to determine the expected output for certain test cases,
especially in complex systems or when the expected result is not well-
defined.
• Inadequate or inaccurate test oracles may lead to false positives (incorrectly
flagging valid results as defects) or false negatives (failing to detect actual
defects).
7. To overcome these issues,
Metamorphic Testing was
Introduced in 1998 (Tsong
Yueh 1998).
Tsong Yueh, C. S. C., Cheung; Yiu, Siu-Ming; (1998). Metamorphic Testing: A New Approach for Generating
Next Test Cases, The Hong Kong University of Science and Technology.
8. WHAT IS METAMORPHIC TESTING?
• Metamorphic testing is a property-based testing approach used to verify the
correctness of a program without requiring an explicit oracle.
• It is particularly useful when a test oracle is difficult to define or when the
expected output is not readily available.
• Instead of verifying individual test cases, metamorphic testing focuses on
the relationship between inputs and their corresponding outputs.
John-Mathews, J.-M. (2022). "How to test ML models? #4 Metamorphic testing." Retrieved July, 2023, from
https://www.giskard.ai/knowledge/how-to-test-ml-models-4-metamorphic-testing.
9. WHAT IS METAMORPHIC TESTING?
(CONTD.)
• Metamorphic testing is based on the concept of metamorphic relations,
which describe the expected relationships between inputs and outputs. They
are also called follow-up test cases.
• A metamorphic relation is a high-level specification of how outputs should
change when inputs are transformed or mutated.
• Test cases are created by applying input transformations or mutations to the
original input and then comparing the output with the transformed input.
• If the metamorphic relation holds, the output should satisfy the specified
relationship, even though the actual output may be different from the
expected output. Otherwise, it indicates the presence of defects in the
program or an issue with the test case.
10. IMPORTANCE OF METAMORPHIC TESTING
• It does not require a predefined expected output for each test case, making
it valuable when it is challenging or impractical to define oracles.
• It complements traditional testing techniques and can significantly increase
test coverage, helping to detect defects that might be missed by other
methods.
• It can be applied during various stages of development to identify issues
early, facilitating prompt rectification and minimizing downstream impact.
11. IMPORTANCE OF METAMORPHIC TESTING
(CONTD.)
• It is applicable to different types of software and domains, offering a
versatile testing approach for various projects.
• It can reveal subtle and hidden defects that may not be apparent in
individual test cases but become apparent through the application of
metamorphic relations.
12. CHALLENGES OF METAMORPHIC TESTING
• Generating Effective and Diverse Test Cases
• Designing appropriate input transformations to create meaningful test cases.
• Ensuring sufficient coverage of input space to reveal potential defects.
• Avoiding redundancy in test cases while maintaining diversity.
• Prioritizing Test Cases for Efficient Fault Detection
• Identifying critical metamorphic relations for prioritization.
• Balancing the trade-off between high-priority relations and comprehensive
coverage.
• Developing strategies to optimize the order of test case execution.
14. OBJECTIVES FOR THIS RESEARCH STUDY
• Conduct an analysis of existing approaches and techniques in metamorphic
testing, identifying their limitations specifically in path-directed source test
case generation and prioritization.
• Propose a novel methodology, that integrates path-directed techniques with
metamorphic testing principles, aiming to enhance the generation and
prioritization of source test cases.
• Implement the methodology using the Python programming language,
leveraging its flexibility and widespread adoption in the software testing
community.
15. OBJECTIVES (CONTD.)
• Evaluate the effectiveness and efficiency of our approach through
experiments conducted on various software systems, comparing the results
with existing approaches.
• Provide comprehensive guidelines and recommendations for practitioners
and researchers on the application of the methodology in real-world
software testing scenarios.
• Contribute to the advancement of metamorphic testing techniques by
addressing the challenges associated with path-directed source test case
generation and prioritization.
16. RESEARCH QUESTIONS
RQ1. How does the integration of machine learning techniques, specifically
in Python, enhance the fault detection effectiveness of using the
generated source test cases?
RQ2. To what extent does this approach outperform existing source test
case generation techniques in terms of fault detection capabilities and
overall testing effectiveness?
RQ3. What is the computational overhead associated with the
implementation of this approach for generating source test cases, and
how does it impact the efficiency and scalability of the testing process?
17. SEARCH STRATEGY
• Source for Literature Search:
• Google Scholar
• DBLP
• Keywords Used During Search:
• Metamorphic Testing
• Software Testing
18. LITERATURE REVIEW
Title Year Tools & Techniques Area of Research
Evaluation of Metamorphic Testing
for Edge Detection in MRI Brain
Diagnostics
2022
MT through test case
generation technique
Healthcare,
Apply metamorphic
testing techniques on X-
rays, CT, and MRI
An innovative approach for testing
bioinformatics programs using
metamorphic testing
2018 MT through Ling Pipe Bioinformatics
Automated metamorphic testing on
the analyses of feature models
2011 Mutation testing Feature models
Testing Web Enabled Simulation at
Scale Using
2021 Regression testing
Facebook’s web enabled
simulation
Testing scientific software: A
systematic literature review
2014
MT through regression
testing
Testing scientific software
Automatic System Testing of
Programs without Test Oracles
2009
Amsterdam, Mutation
testing, SVM
To check metamorphic
relations on java codes
Metamorphic Testing on Nuclide
Inventory Tool
2020 Use of MT to guide MR
Whole project is divided
into three layers i.e.,
physics algo and code
20. PROPOSED APPROACH
• PaDMTP = (Path Directed Source Test Case Generation and
Prioritization in Metamorphic Testing using Python)
• Our approach is divided into two parts:
• Source Test Case Generation
• Source Test Case Prioritization
21. SOURCE TEST CASE GENERATION
This part has the following steps:
1. Python Constraint Solving
• During this step, the Python Constraint module was used to generate a
diverse range of outputs that adhered to the specified constraints of the
problem being addressed.
2. Path Constraints
• The constraints established in the previous stage are compiled into a
thorough list (also known as Source Test Cases) in this phase, which
serves as the basis for further processing and improvement of our
methodology.
22. SOURCE TEST CASE PRIORITIZATION
This part has the following steps:
3. Python Path Tracing
• In this phase, we made use of the Python Trace module's capabilities for
line-level tracing. We were able to obtain a thorough route for a
particular test case by carefully capturing the sequence of executed
statements using line-level tracing.
4. Test Case Prioritization
• In this phase, we made use of the Python Trace module's capabilities for
line-level tracing. We have been able to obtain a thorough route for a
particular test case by carefully capturing the sequence of executed
statements using line-level tracing.
31. OBJECT PROGRAMS
• The proposed approach was implemented on the following
programs:
S.
No.
Program Name Description
1. MyCode
There are two arguments specified for this
function. Its main objective is to identify
the output by using these input values as
inputs in a series of calculations and
conditional operations.
2. HCF
The Python program that we used may be
used to get the Highest Common Factor
(HCF) of two input integers.
3. LCM
The Least Common Multiple (LCM) between
two specified numbers is the main purpose
of this Python function.
4. DIFF
In the Python programme under tests, the
positive difference between two provided
numbers is determined.
32. TESTING TECHNIQUES UTILIZED
Each of the object programs was subjected to the following
testing techniques:
• PaDMTP (Proposed Approach)
• Random Testing (RT)
• Adaptive Random Testing (ART)
33. TESTING TECHNIQUES UTILIZED (CONTD.)
• PaDMTP
• 4 Types of Metamorphic Relations (MRs) were created for each object
program. They are as follows
Metamorphic Relation Description Positive Condition
Additive
Add a positive
constant
Increase or Remain
Inclusive Add a new element Increase or Remain
Permutative Permutate a value Remain
Multiplicative Multiply by a constant Increase or Remain
34. TESTING TECHNIQUES UTILIZED (CONTD.)
• To validate / compare the results of all testing techniques, we
used Mutation Testing
• Python Module, MutPy, was used for this purpose
42. CONCLUSION
• Metamorphic Testing (MT):
• It effectively addresses the oracle problem in software testing.
• It complements traditional methods by generating unique test cases.
• Research interest increased in source test case generation with metamorphic relations
(MRs).
• Our Novel Approach for Source Test Case Generation:
• Path-directed approach using Python.
• Leveraging Python path tracer and constraint solver.
• Obtaining program path constraints for extensive path coverage.
• Improving fault detection effectiveness.
43. CONCLUSION (CONTD.)
• Benefits of Our Approach:
• Comprehensive Path Coverage: Achieving extensive coverage of execution
paths.
• Enhanced Fault Detection: Significantly improving the effectiveness of fault
detection.
• Efficient Testing: Prioritization technique for test case diversity and testing
efficiency.
• Experimental Evaluations:
• Four representative programs used for evaluation.