Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This lesson contains basic information about software testing. WHY 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..

Core Topics and Takeaways

  • What is software testing?

  • Stakeholders

  • Different testing objectives during the project

  • Mission on the project

  • Testing strategy

  • Choice of different techniques

Widget Connector
overlayyoutube
_templatecom/atlassian/confluence/extra/widgetconnector/templates/youtube.vm
width400px
urlhttps://www.youtube.com/watch?v=fGcgIK5aJpM
height300px

Video Highlights

Topic

Key Concepts

Video Location

This section discusses the diversity in test groups and the various aspects of organizing test efforts.

  • Test groups cannot be organized in one standard way.

  • There are several possibilities for organizing test efforts.

  • The readings highlight the variability of tasks assigned to testers.

  • Different definitions of testing are discussed, with emphasis on the importance of every test being a question.

00:01

Information in testing is about learning new things, not just confirming what we already know.

  • The importance of designing experiments relies in them challenging beliefs rather than confirming them.

  • Many testers simply rerun old tests when the program has changed, which is not effective testing.

  • Testing should aim to learn new information about the quality of the software that is useful to stakeholders.

02:16

Different situations require different information objectives for the test team.

  • In the first case, the test group's objective is to find serious bugs that can delay the product release.

  • In the second case, the objective is to gather information to help a lawyer understand and explain the software's problems in court.

  • Defining a clear mission statement is important for the test team to prioritize relevant tasks and communicate with stakeholders effectively.

04:33

The video discusses the importance of test strategy and test design in achieving the testing mission.

  • Test strategy is the plan for achieving the testing mission.

  • The strategy guides the selection of test tools and techniques.

  • The set of possible tests for a program is infinite, so the designer must choose a subset that will expose significant bugs.

  • Strategic decisions involve choosing which techniques to use or not use, while design decisions focus on how to implement specific tests.

  • The choice of techniques is important as different techniques will find different types of bugs.

  • Scenarios are widely used by people who understand their own business and want to test how well the program meets their needs.

  • Domain testing is the most widely used technique by professional testers and is optimized for power rather than realism.

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.