Week 9 Testing Strategies in Software Quality Assurance

Testing Strategies in Software Quality Assurance

Overview of Testing Strategies

  • Importance of Communication in Requirements

    • Communication breakdowns can lead to poor software quality.

    • Effective collaboration among team members ensures clarity in requirements and design.

Types of Testing

Differentiation
  • System Testing

    • Tests the entire system's behavior against requirements.

  • Integration Testing

    • Tests interactions between integrated units/components.

  • Acceptance Testing

    • Validates the system against acceptance criteria set by the business and users.

Agile and DevOps Testing Framework

  • Benefits of Testing in DevOps

    • Integrates testing at various stages.

    • Faster feedback and detection of defects.

    • Enhances collaboration between development and operations teams.

Requirements Reviews

  • Conducted by cross-functional teams

    • Participants: Developers, Testers, Business Analysts, Product Designers, Product Management.

    • Helps in validating that requirements can be implemented and tested.

Iteration/Sprint Planning

  • Purpose

    • Estimate user stories to determine capacity for the next sprint.

    • Seek clarifications regarding acceptance criteria from the Product Owner.

Client-Side and UI Testing

  • Importance of Correct UI/UX

    • Tests should cover various devices, operating systems, and browsers (e.g., Windows, iOS, Android, Chrome, Firefox).

    • Ensure branding, look and feel, and user-friendliness using tools like Selenium, Cypress, and Playwright.

Types of System Testing

  • Key Forms

    • Smoke Testing: Validates core functionalities in new environments.

    • Functional Testing: Ensures compliance with functional specifications.

    • Usability Testing: Focuses on the ease of use through user interactions.

    • Accessibility Testing: Ensures software is usable by people with disabilities (WCAG standards).

    • Security Testing: Identifies vulnerabilities in the software.

    • Performance Testing: Assesses system behavior under load.

Acceptance Testing

  • Types

    • Business Acceptance Testing (BAT): Ensures software meets business needs.

    • User Acceptance Testing (UAT): Conducted by end-users to verify satisfaction with requirements.

Elements of a Test Strategy

  • Key Components

    • Objective, Scope, Roles & Responsibilities, Test Approach, Test Environment, Test Data, Testing Tools, Release Control, Risk Analysis, Review, and Approval.

The Heuristic Test Strategy Model (HTSM)

  • A guiding framework to focus testing strategy on:

    • General Test Techniques

    • Project Environment

    • Product Elements

    • Quality Criteria Categories

Challenges in Agile Environments

  • The dynamic nature of Agile requires flexibility in test strategies.

  • Strategies must adapt to focus on Sprints while maintaining oversight on overall project goals.

Mind Mapping for Test Strategies

  • Importance

    • Provides a visual representation of testing strategies and their relationships.

    • Facilitates better understanding of the project as a whole.

  • Creating Mind Maps

    • Start with a central idea and branch out into subcategories.

    • Continuously add levels until a comprehensive structure is achieved.

Practical Application

  • Case Study Example

    • Development of a Password Keeper application.

    • Considerations include functionality, security, and cloud-based storage.

  • Team Collaboration

    • Requires cooperation among team members with clear communication.