This lesson contains basic information about software testing. WHY do we test?
Learning Objectives
This lecture discusses how test groups are organized and how they organize their work, highlighting the variability in test strategies. It emphasizes the importance of understanding the diverse objectives and stakeholders in software testing. The video also touches on Karl Popper's philosophy of testing and the need for testers to focus on gathering useful information rather than just finding bugs.
Video Highlights
Topic | Key Concepts | Video Location |
---|---|---|
This section discusses the diversity in test groups and the various aspects of organizing test efforts. |
| 00:01 |
Information in testing is about learning new things, not just confirming what we already know. |
| 02:16 |
Different situations require different information objectives for the test team. |
| 04:33 |
The video discusses the importance of test strategy and test design in achieving the testing mission. |
| 06:49 |
Learning Highlights
How test groups are organized and how they approach their work, matters. There is an undeniable significance of learning from tests, contrasting competent testing with mere demonstration and exploring the role of mission statements and test strategies in achieving information objectives. There are popular testing definitions and techniques, such as bug hunting, scenario testing for realism, and domain testing for power. Strategic and design choices, along with key questions guiding test decisions, are outlined, setting the stage for more detailed exploration in the course on test design.
Core Learning Concepts
Scenarios
A scenario refers to a specific situation or set of conditions that the test team considers when planning and executing their testing efforts. It could involve a particular user interaction, a sequence of events, or a specific environment in which the software will be used. Understanding and testing different scenarios helps ensure that the software functions as intended across various real-world situations.
Domain Testing
Domain testing, also known as boundary value analysis, is a software testing technique where the extreme values and boundaries of input domains are tested. The goal is to identify any errors that may occur at the edges of the input domain, as these are often where defects are found. This technique helps ensure that the software behaves correctly at the boundaries of different input ranges, such as minimum and maximum values, or valid and invalid inputs. It is a valuable method for identifying potential issues in the software's handling of boundary conditions.
For example, if you are testing a software feature that accepts a range of values from 1 to 100, domain testing would involve testing the boundaries of this range. This means testing values such as 0, 1, 50, 99, 100, and 101 to ensure that the software handles these boundary values correctly. By testing at the edges of the input domain, you can uncover any issues related to boundary conditions and ensure the robustness of the software.
Regression testing
This involves re-running test cases to ensure that new code changes have not adversely affected existing functionality. It helps identify any unintended side effects of code modifications.
Exploratory testing
This is a simultaneous learning, test design, and test execution approach. Testers explore the application, learn about its behavior, and design and execute test cases on the fly.
Risk-based testing
This approach prioritizes testing efforts based on the areas of the software that pose the highest risk if they were to fail. It involves identifying and addressing the most critical aspects of the software first.
Automated testing
This involves using software tools to execute tests, compare actual outcomes with expected outcomes, and report test results. It can be particularly useful for repetitive tasks and regression testing. At Pricefx, we will mainly focus on automated testing using our tools, XRay and Cypress.