Podcast
Questions and Answers
What is the primary goal of structural testing in software development?
What is the primary goal of structural testing in software development?
The primary goal of structural testing is to test as much of the program as possible.
In the context of a directed graph, what do nodes and edges represent?
In the context of a directed graph, what do nodes and edges represent?
Nodes represent sequential statements or blocks of code, while edges represent the transfer of processing control.
Define 'test coverage' and its importance in software testing.
Define 'test coverage' and its importance in software testing.
Test coverage is the minimal set of test cases that ensure certain criteria are satisfied, and it is important to determine how effectively a set of tests validates the program.
What is statement testing, and how does it relate to code execution?
What is statement testing, and how does it relate to code execution?
Signup and view all the answers
Explain how iterations (loops) affect the concept of paths in a directed graph.
Explain how iterations (loops) affect the concept of paths in a directed graph.
Signup and view all the answers
Define software testing in your own words.
Define software testing in your own words.
Signup and view all the answers
Explain the difference between an error and a fault in software.
Explain the difference between an error and a fault in software.
Signup and view all the answers
What is the purpose of a good test case?
What is the purpose of a good test case?
Signup and view all the answers
What is meant by 'structural testing'?
What is meant by 'structural testing'?
Signup and view all the answers
Describe what a test plan should include.
Describe what a test plan should include.
Signup and view all the answers
How does a fault relate to software failure?
How does a fault relate to software failure?
Signup and view all the answers
What is the significance of testing at various stages of software development?
What is the significance of testing at various stages of software development?
Signup and view all the answers
What does 'fit for purpose' imply in terms of software quality?
What does 'fit for purpose' imply in terms of software quality?
Signup and view all the answers
What is branch testing and how many tests are required to cover both outcomes for the given code example?
What is branch testing and how many tests are required to cover both outcomes for the given code example?
Signup and view all the answers
In condition testing, how many test cases are needed to cover all conditions in the expression '(A || B) && C'?
In condition testing, how many test cases are needed to cover all conditions in the expression '(A || B) && C'?
Signup and view all the answers
Explain decision/condition testing and its significance.
Explain decision/condition testing and its significance.
Signup and view all the answers
What is the goal of multiple condition testing?
What is the goal of multiple condition testing?
Signup and view all the answers
Define path testing in the context of program execution.
Define path testing in the context of program execution.
Signup and view all the answers
What issue arises with loops during testing, and why can it complicate path testing?
What issue arises with loops during testing, and why can it complicate path testing?
Signup and view all the answers
How is data flow classified in programming, particularly in reference to variable occurrences?
How is data flow classified in programming, particularly in reference to variable occurrences?
Signup and view all the answers
What type of testing would you apply to ensure that all paths through a program are executed at least once?
What type of testing would you apply to ensure that all paths through a program are executed at least once?
Signup and view all the answers
What does a d-u pair represent in terms of variable usage in programming?
What does a d-u pair represent in terms of variable usage in programming?
Signup and view all the answers
How does data flow testing help in identifying variables in a program?
How does data flow testing help in identifying variables in a program?
Signup and view all the answers
What is the primary advantage of data flow testing?
What is the primary advantage of data flow testing?
Signup and view all the answers
What is the main weakness of data flow testing?
What is the main weakness of data flow testing?
Signup and view all the answers
What is the role of equivalence partitioning (EV) in testing?
What is the role of equivalence partitioning (EV) in testing?
Signup and view all the answers
Why is boundary value analysis (BVA) important in testing?
Why is boundary value analysis (BVA) important in testing?
Signup and view all the answers
In unit testing, what is the significance of deriving tests from the unit specification?
In unit testing, what is the significance of deriving tests from the unit specification?
Signup and view all the answers
What is a potential issue with functional testing based on requirement specifications?
What is a potential issue with functional testing based on requirement specifications?
Signup and view all the answers
Study Notes
Software Quality and Testing
- Critical awareness/evaluation/assessment involves comparing, contrasting, and justifying judgments with evidence.
- Software is a list of instructions executed on a computer to fulfill a predetermined purpose.
- Software Testing is the process of evaluating and verifying if software fulfills its intended purpose.
- Errors are mistakes made by people that can lead to faults.
- Faults are caused by errors in software and may or may not lead to failures.
- Failures are observed deviations from the expected behavior of software, dependent on user expectations.
- Quality meets and exceeds requirements.
Software Quality
-
External and internal quality are aspects of software quality.
- Functionality, reliability, usability, efficiency, maintainability, and portability are examples of aspects of external quality.
- Suitability, maturity, accuracy, interoperability, reliability, completeness, testability, compatibility, complaince are all part of aspects of external quality. Other aspects of internal quality include: Understandability, learnability, usability, efficiency, maintainability, portability, adaptability, installability, resource utilization, testability, replaceability, and compliance.
A good test
- A good test case has a high probability of finding undiscovered errors.
Testing and Reviewing
- Testing is the dynamic execution of software towards the end of the process.
- Reviewing is a static examination of an output and can be done earlier in the process.
Test Plan
- A test plan organizes and manages the testing effort, outlines the testing approach, and specifies tests to run.
- Contains the information of what is to be tested, personnel required, schedules, test tools, test failure reporting process, regression testing, records, and outcomes of each test.
- Test cases define aspects of software for testing and should be written for invalid and unexpected input conditions.
- Test data includes planned inputs, starting conditions, and expected outputs for each test.
Stages of Testing
- Different stages of testing include: unit testing, integration testing, system testing, acceptance testing, beta testing, and field trials. Regression testing is almost always a stage.
Testing Techniques
- Structural (white-box/glass-box) testing analyzes software based on its internal structure. Testing focuses on control flow and/or data flow using a directed graph in order to execute a large portion of possible code paths.
- Functional (black-box) testing is based on the software's requirements specification without examining its internal structure. Tests are designed to exercise paths through the unit that evaluate the functionality of the program.
- Path testing is a method of designing test cases that cause each possible path through the program to be executed.
- Test Coverage is the minimal set of cases that satisfy the testing criteria.
- Statement testing executes every statement in the software at least once.
- Branch testing executes both true and false outcomes of each decision in the program.
- Condition testing tests all possible combinations of true and false values for each condition in a decision statement in the code.
- Decision/Condition testing ensures each decision has both TRUE and FALSE outcomes executed at least once.
- Multiple condition testing involves testing all possible combinations of conditions in each decision.
- Data flow testing analyzes the data flow for each variable, choosing test cases.
Dealing with Loops
- The number of iterations in a loop can be infinite, which can be a problem for testing.
Functional Testing
- Equivalence partitioning divides inputs into subsets where the program behaves the same way.
- Boundary value analysis focuses on input values at the boundaries.
- Combinatorial testing examines combinations of input parameters.
- Pairwise testing covers pairs of input parameter combinations.
- N-way testing tests all possible combinations of parameters.
System Testing
- Functional testing evaluates functions, volume, load, usability, security, performance, and recovery.
Additional Testing Concepts
- Beta testing uses real users to test products.
- Test scaffolding is used in unit and integration testing with stubs and drivers.
- Stubs simulate unavailable components (modules).
- Drivers execute tests of lower level modules.
- Incremental testing combines modules for testing.
- Top-down testing starts testing control modules first.
- Bottom-up testing starts testing a lower-level unit first and uses drivers to test those modules/units.
- Cause of test failure can be faults in software, the test itself, or the expected results.
Software Maintenance and Quality
- Maintainability depends on the ease of changing software. Issues such as maintenance and debugging should be the developer's responsibility.
- Error seeding is deliberately introducing faults into software to see how well tests find faults.
- Code style has impacts on code maintainability.
- Technical review is an assessment of technical outputs (requirements, code, documentation, plans).
- Walkthrough is similar to inspection where engineers trace inputs through the code.
- Fagan inspection is a structured review to detect defects.
- Reporting test failures is a summary of testing issues with what was tested and what the issues were.
Exploratory Testing
- Exploratory testing is used when specifications are poor or time is limited. It is a semi-structured testing method that helps understand the software.
- By using different criteria, a researcher can compare techniques based on effectiveness, efficiency, and cost.
- Review techniques are used to separate and identify types of fault in the software.
- Quality is an important part of maintaining software as maintaining it efficiently and easily can have an important impact on a project.
- Stopping testing at a reasonable point is an interesting factor as it is not easy to know when to stop testing effectively and efficiently. Software defects are often assessed as a ratio to the size of the software being tested.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This quiz covers essential concepts in software testing, including structural testing, test coverage, and the significance of test cases. Explore various testing techniques and their importance throughout the software development lifecycle. Ideal for software development students and professionals looking to test their knowledge.