Podcast
Questions and Answers
What is the difference between an error and a defect in software testing?
What is the difference between an error and a defect in software testing?
An error is a mistake in coding, while a defect is an error found by the tester.
What is the purpose of software testing?
What is the purpose of software testing?
Regression testing is performed to verify that a fixed bug hasn't resulted in another fault being uncovered.
Regression testing is performed to verify that a fixed bug hasn't resulted in another fault being uncovered.
True
What type of testing is used to verify that a software has all the desired functionality specific to its functional requirements? Functional _______________.
What type of testing is used to verify that a software has all the desired functionality specific to its functional requirements? Functional _______________.
Signup and view all the answers
Match the following testing levels with their descriptions:
Match the following testing levels with their descriptions:
Signup and view all the answers
What is the difference between Defect Severity and Priority?
What is the difference between Defect Severity and Priority?
Signup and view all the answers
Which category does a defect fall into if it completely blocks the functionality of an application?
Which category does a defect fall into if it completely blocks the functionality of an application?
Signup and view all the answers
Which defect category may prevent significant system functionalities from working but does not cause a complete system shutdown?
Which defect category may prevent significant system functionalities from working but does not cause a complete system shutdown?
Signup and view all the answers
Match the defect severity and priority levels:
Match the defect severity and priority levels:
Signup and view all the answers
What is the purpose of localization testing?
What is the purpose of localization testing?
Signup and view all the answers
What does security testing aim to check for?
What does security testing aim to check for?
Signup and view all the answers
Usability testing is a black box testing technique.
Usability testing is a black box testing technique.
Signup and view all the answers
Performance testing is mainly used to identify any bottlenecks or _________ issues in a software.
Performance testing is mainly used to identify any bottlenecks or _________ issues in a software.
Signup and view all the answers
Match the following Black Box Test Design Techniques with their descriptions:
Match the following Black Box Test Design Techniques with their descriptions:
Signup and view all the answers
Study Notes
Software Testing
- Software testing is the process of verifying and validating a software application to check whether it is working as expected.
- The intent is to find defects and improve the product quality.
Error vs Defect vs Bug vs Failure
- Error: a mistake in coding
- Defect: error found by the tester
- Bug: defect accepted by the development team
- Failure: software build does not meet the requirements
Software Validation vs Verification
- Verification: checks whether the system is being developed in the right way
- Validation: checks whether the system is built right
Why Software Testing is Required
- To check the reliability of the software
- To ensure that the system is free from any bug that can cause any kind of failure
- To ensure that the product is in line with the requirement of the client
- To make sure that the final product is user-friendly
- To ensure the quality of the product
- To stay in the business
Trend of Software Testing
- The earlier the testing team starts testing the software, the easier it would be for the developers to complete the project on time
- Starting testing in the later stages of development can turn out to be an expensive matter
Software Testing Levels
- Unit testing: individual software modules are tested
- Integration testing: individual software modules are integrated logically and tested as a group
- System testing: the application is tested as a whole
- User Acceptance Testing (UAT): checks whether the application meets the intended specifications and satisfies client requirements
Types of Software Testing
- Functional testing: verifies that a software has all the desired functionality specific to its functional requirements
- Non-functional testing: tests the characteristics (or quality) of the software
Functional Testing
- Regression testing: verifies that a fixed bug hasn’t resulted in another functionality or business rule violation
- Mutation testing: a type of software testing where certain statements in the source code are changed and checked if the test cases are able to find the errors
- Smoke testing: a kind of software testing performed after receiving a software build, with minor changes in code, or functionality
- Sanity testing: a kind of software testing performed after receiving a software build, with minor changes in code, or functionality
Non-functional Testing
- Performance testing: identifies any bottlenecks or performance issues
- Usability testing: identifies errors and defects as well as improvements in the software
- Scalability testing: ensures that the application can function in any culture or locale
- Security testing: checks for flaws and errors in the software as well as the system in which it will be implemented
- Maintainability testing: tests how well an application is able to recover from crashes, hardware failures, and other problems
- Recoverability testing: tests how well an application can recover from crashes, hardware failures, and other problems
- Reliability testing: tests how well an application can perform over a certain period of time
Software Testing Techniques
- Static testing techniques: find defects in application under test without executing the code
- Dynamic testing techniques: test the dynamic behavior of the application under test by executing the code
Black Box Testing
- Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions
- Equivalence partitioning: partitions a set of test conditions into groups or sets that can be considered the same or equivalent
- Boundary value analysis: tests the boundary values of valid and invalid partitions
- Decision table testing: tests systems with multiple conditions and rules
- State transition testing: tests changes in input conditions that cause state changes in the application under test### Software Testing
-
White-box Testing: Requires knowledge of internal program structure
- Also known as clear box testing, open box testing, glass box testing, structural testing, code-based testing, and transparent testing
- Techniques include:
- Condition coverage
- Decision coverage
- Branch coverage
- Statement coverage
White-box Testing Techniques
-
Condition Coverage: Ensures all Boolean expressions are evaluated to both TRUE and FALSE
- Example:
( (A or B) and C )
requires 3 tests to cover all conditions
- Example:
- Statement Coverage: Involves executing all statements in the source code at least once
- Branch Coverage: Tests every outcome from a code module (statement or loop)
- Decision Coverage: Involves testing every decision (condition) in the code
Gray-box Testing
-
Experience-Based: Neither involves internal nor external structure, but is based on experience
- Techniques include:
- Exploratory testing
- Fault attack
- Error guessing
- Checklist-based
- Techniques include:
Defect Life Cycle
- New: New defect reported
- Assigned: Defect assigned to developer team
- Open: Developer starts analyzing and working on defect fix
- Fixed: Developer makes necessary code changes and verifies fix
- Pending Retest: Defect fixed, awaiting retesting by tester
- Retest: Tester retests code to ensure defect is fixed
- Verified: Defect fixed and verified by tester
- Reopen: Defect reopened if fix is incomplete
- Closed: Defect no longer exists
- Duplicate: Duplicate defect report
- Rejected: Defect rejected as not genuine
- Deferred: Defect prioritized for future release
- Not a Bug: Defect does not affect application functionality
Defect Severity and Priority
-
Defect Severity: How badly the defect affects application functionality
- Categorized as Critical, Major, Minor, and Low
-
Defect Priority: Order in which developers will fix defects (business importance)
- Categorized as High, Medium, and Low
Defect Severity Levels
-
Critical: Defect blocks entire application functionality
- Example: Login screen not working, making application inaccessible
-
Major: Defect prevents significant system functionalities
- Example: User cannot transfer money to beneficiaries
-
Minor: Defect affects application functionality, but not significantly
- Example: Download link in Help section not working, but user can still read online
-
Low: Cosmetic defects that don't affect functionality
- Example: Spelling mistakes on webpage
Defect Priority and Severity Combinations
- High Severity and High Priority: Defect requires immediate attention
- Low Severity vs. High Priority: Defect has minor impact, but high business importance
- High Severity vs. Low Priority: Defect has significant impact, but low business importance
- Low Severity vs. Low Priority: Defect has minor impact and low business importance
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Learn about software testing, including validation vs verification, QA vs QC, testing levels, and techniques. Understand defect life cycle and levels of defect.