Skip to content

What is Testing?

Insights

Static testing is where you’ll find the majority of issues!

Testing is the process of verifying a system meets it’s specified requirements. But it’s not just about meeting functional requirements. It’s also to ensure that an acceptable level of quality is attained for the user experience, whether that be related to aspects such as security, performance, ease of use, and system protection.

It also verifies it’s ability to handle various exceptional and boundary use cases exhibited by user and system behavior that the developers may not have accounted for.

Static testing involves testing and reviewing resources related to the software without executing it, e.g. reviewing test objects, code, or designs, while dynamic testing evaluates the software by execution to test its actual behavior against its requirements.

Static Testing

80% of the issues are in this section.

Else, you’re a “fire fighter” because you’re fixing issues once it’s been developed.

“Shifting left” is about finding issues before they’re implemented.

  • Reviewing design documents and documentation
  • Motivations
  • Business requirements
  • Wire frames
  • Design Specs
  • Pseudo code
  • Architecture

Test Objectives

EXAM: Know this list.

  1. Ensuring Coverage
    Thorough testing to ensure quality and reliability

  2. Evaluate Work Product
    Ensure software development aligns with product goals

  3. Verify Requirements
    Ensure system meets it’s specified functionalities and behaviors

  4. Validate Test Objects
    Ensure test designs meet the product requirements. If the user hates it, the feature is useless. QA is about quality, not just catching developer bugs and regressions.

  5. Build Confidence
    Ensuring the software provides a quality user experience. It’s about knowing the stakeholders are getting what they expect.

  6. Reduce Risk Integrate testing early to mitigate the risk of releasing buggy software.

  7. Share Information
    Provide comprehensive reports and insights for data-driven decision making. Engage with the people invested in us and give them information so they can make intelligent business decisions.

  8. Find Failures and Defects
    Identify issues early to ensure quality releases.

  9. Verifying Test Objects
    Check tests for compliance with specific external standards and agreements (e.g. performance). For example, if you work in a regulated industry, you need to observe whether the software meets regulatory requirements.

Review Questions

What's the difference between static and dynamic testing?

Static testing tests a system without executing or using it, e.g. reviewing code and product requirements vs UI design. Testing early helps identify defects and potential issues early, which is a lot cheaper and easier than fixing it later once developed.

Dynamic testing evaluates running software to establish if it’s behavior meets its stated requirements, as well as identifying issues that can’t be caught during static testing, such as runtime errors. It also evaluates aspects the user experience, as not only should a feature work, it must work in a way that the user finds satisfactory.

What's the difference between testing and debugging?