Podcast
Questions and Answers
What is the primary goal of structural testing?
What is the primary goal of structural testing?
Which of the following best defines a path in the context of a directed graph?
Which of the following best defines a path in the context of a directed graph?
What does test coverage refer to in testing?
What does test coverage refer to in testing?
What describes statement testing in software testing?
What describes statement testing in software testing?
Signup and view all the answers
Why is it necessary to justify the use of a testing technique?
Why is it necessary to justify the use of a testing technique?
Signup and view all the answers
What is the primary purpose of software testing?
What is the primary purpose of software testing?
Signup and view all the answers
Which term refers to the observed departure of software from its expected behavior?
Which term refers to the observed departure of software from its expected behavior?
Signup and view all the answers
What does a 'good test case' provide in software testing?
What does a 'good test case' provide in software testing?
Signup and view all the answers
How is structural (white-box) testing defined?
How is structural (white-box) testing defined?
Signup and view all the answers
Which of the following best describes a fault in software?
Which of the following best describes a fault in software?
Signup and view all the answers
What is included in a test plan?
What is included in a test plan?
Signup and view all the answers
What is the main reason why complete testing of software is not possible?
What is the main reason why complete testing of software is not possible?
Signup and view all the answers
What does the term 'reviewing' denote in the context of software quality assurance?
What does the term 'reviewing' denote in the context of software quality assurance?
Signup and view all the answers
What does the acronym d-u pair stand for in data flow testing?
What does the acronym d-u pair stand for in data flow testing?
Signup and view all the answers
What is the main advantage of data flow testing?
What is the main advantage of data flow testing?
Signup and view all the answers
What is a primary weakness of conventional data flow testing?
What is a primary weakness of conventional data flow testing?
Signup and view all the answers
Which of the following techniques derives test cases from requirements analysis?
Which of the following techniques derives test cases from requirements analysis?
Signup and view all the answers
What does equivalence partitioning involve?
What does equivalence partitioning involve?
Signup and view all the answers
What should be included in boundary value analysis (BVA)?
What should be included in boundary value analysis (BVA)?
Signup and view all the answers
What is the purpose of deallocating a variable before it is used?
What is the purpose of deallocating a variable before it is used?
Signup and view all the answers
Which of the following is a key assumption when implementing equivalence partitioning?
Which of the following is a key assumption when implementing equivalence partitioning?
Signup and view all the answers
What does branch testing primarily ensure in the design of test cases?
What does branch testing primarily ensure in the design of test cases?
Signup and view all the answers
In condition testing, how many tests are usually sufficient for three conditions?
In condition testing, how many tests are usually sufficient for three conditions?
Signup and view all the answers
Which statement is true about decision/condition testing?
Which statement is true about decision/condition testing?
Signup and view all the answers
What is the main goal of multiple condition testing?
What is the main goal of multiple condition testing?
Signup and view all the answers
Why is path testing important in software testing?
Why is path testing important in software testing?
Signup and view all the answers
What issue can arise with loops in program testing?
What issue can arise with loops in program testing?
Signup and view all the answers
In data flow testing, what does 'd' stand for?
In data flow testing, what does 'd' stand for?
Signup and view all the answers
Which aspect is NOT typically covered by branch testing?
Which aspect is NOT typically covered by branch testing?
Signup and view all the answers
Study Notes
Software Quality and Testing
- Critical awareness is essential for evaluating and assessing information, and making judgments supported by evidence.
- Software is a set of instructions executed on a computer to achieve a specific purpose.
- Software Testing is the process of evaluating if software meets its intended purpose.
- Errors are mistakes made by people. They can lead to faults.
- Faults are defects in software caused by errors. They can or cannot cause software to fail.
- Failure happens when software deviates from its expected behavior, based on its intended purpose.
- Quality means software meets and exceeds requirements.
Measures of Quality
- External Quality: includes factors like functionality, reliability, usability, efficiency, maintainability, and portability.
- Internal Quality: encompasses factors, such as suitability, maturity, accuracy, interoperability, fault tolerance, recoverability, understandability, learnability, operability, time behavior, analysability, changeability, adaptability, installability, resource stability, co-existence, security, attractiveness, utilisation, testability, and replaceability compliance. (These are different areas or metrics involved in assessing the quality of a software program).
Testing and Reviews
- A "good test case" is highly likely to find undiscovered software errors.
- Testing and review are done at each stage of software development.
- Testing (narrowly defined): is the dynamic execution of software towards the end of the development process.
- Reviewing: examining an output to detect defects and is done early in the development process, often a static evaluation process.
- Test plan: documents what's to be tested (features, etc.), stages of testing, test cases per stage, test environment(s), personnel, schedules, test tools, process for reporting and handling failures and regression testing.
- Test data describes inputs, initial conditions, and expected outputs for testing.
- Test case: part of software that needs to be tested, purpose of testing, should be written for invalid and unexpected input conditions.
Stages of Testing
- Unit testing: testing individual units or modules in isolation.
- Integration testing: testing the interactions between different units or modules.
- System testing: testing the complete system, including all modules or units.
- Acceptance testing: user acceptance of software, potentially involving field trials and beta tests.
- Regression testing: testing after changes or bug fixes, to ensure the existing functionality is maintained.
Testing Techniques
- Structural testing (white-box): tests based on software internal structure.
- Functional testing (black-box): tests based on software requirements rather than its internal design.
- Directed graph: node/edge diagram showing sequential statements/blocks of code.
- Paths: unique routes from start to end in a program, including iterative loops and loops.
- Test coverage: minimum set of test cases needed to satisfy the testing criteria.
- Statement testing: ensuring that each source code statement is executed at least once.
- Branch testing: ensuring both true and false outcomes for each decision point are tested.
- Condition testing: ensuring each condition in a decision evaluates true and false. An if condition or loop condition should be both tested.
- Multiple condition testing: checking all possible combinations of variables in conditions.
- Path testing: testing all possible paths through the program.
Data Flow Testing
- Classifies variable occurrences (definition, use)
- d-u pairs: design test cases to execute the definition-use of each variable
Types of Testing (Further Details):
- Equivalence partitioning: divides input values into groups with similar behavior.
- Boundary value analysis: focuses on values at the boundaries (edges) of valid/invalid inputs.
- Combinatorial testing: tests all possible combinations of input parameters.
- Pairwise testing: tests combinations of two input variables at a time.
- N-Way Testing: testing all possible combinations of multiple input parameters, likely to be impractical
- Scenario testing: tests possible sequences of interactions or steps, often based on use-case diagrams
- Error guessing testing: uses intuition to devise test cases.
- Exploratory testing: tests are derived during the testing process based on observed behavior.
Managing Software Quality
- Effective testing is done by detail-oriented, patient, and skilled individuals.
- Planning testing involves tasks such as defining testing stages, scheduling, and allocating resources.
- Independent testing provides an objective view of the product, with skilled testers.
- Testers as reviewers identify defects in requirements.
- Software maintainability: ease of making changes, adding functionality, and correcting faults in the software.
- Technical reviews are assessments of technical output.
- Walkthroughs are reviews of code.
- Fagan inspections are structured reviews to find defects.
- Code Style involves using consistent layouts, comments, and naming standards.
- Defect density is a measure of faults per unit of code, used to assess the quality of the software, and whether further testing is worthwhile.
Managing Testing (Specific aspects)
-
What is supplied by testers and developers: Includes details about what was being tested, environment details, reported errors (inc description), reproducible steps to trigger symptoms, severity of the issue
-
Error seeding: Deliberately adding faults to software to see how well testing finds them.
-
Management of testing/problems: Use of problem reporting tools and processes for developers and testers to communicate.
-
Stopping testing: Determining when the level of testing is sufficient. This is usually a combination of defect density, time allocated, confidence in code, and cost considerations.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This quiz covers the essential concepts of software quality and testing. It explores definitions of software, testing processes, and distinctions between errors, faults, and failures. Additionally, it discusses measures of quality, including both external and internal factors.