Week 9 Testing Strategies in Software Quality Assurance

Overview of Testing Strategies

  • Key Focus Areas of Testing Strategies

    • Communication breakdowns in requirements and design leading to poor software quality.

    • Differentiation of system, integration, and acceptance testing.

    • Benefits and issues of testing within a DevOps framework.

Importance of Requirements Reviews

  • Reviewed by a cross-functional team including:

    • Developers

    • Testers

    • Business Analysts

    • Product Designers

    • Product Management

  • Ensures requirements are valid and clearly understood by all stakeholders.

Iteration and Sprint Planning in Agile Development

  • Goals of Sprint Planning:

    • Estimate user stories.

    • Determine the number of user stories to accommodate in the upcoming Sprint.

    • Obtain clarification from the Product Owner.

    • Focus on understanding features and confirming acceptance criteria.

  • Agile Change Management:

    • Prioritize items; higher priority items are better detailed, while lower priority items can be less detailed.

Types of Software Testing

System Testing Forms
  • Smoke Testing

  • Functional Testing

  • Usability Testing

  • Accessibility Testing

  • Security Testing

  • Regulatory Testing

  • Performance Testing

Smoke Testing
  • Validates basic functions in a new environment through a subset of critical test cases.

  • Originates from early practices where devices were tested for smoke upon startup.

Functional Testing
  • Validates that application functions follow specifications based on user stories and functional specs.

  • Involves detailed test cycles aligned with ongoing development.

Usability Testing
  • Assesses how easy the software is to use for end-users.

  • Conducted ideally by actual users or observed users to ensure ease of use.

  • Tools: Optimizely, CrazyEgg, Usabilla.

Accessibility Testing
  • Ensures software is usable by individuals with physical limitations, following standards like WCAG and AODA.

Security Testing
  • Identifies vulnerabilities in software based on Confidentiality, Integrity, and Availability principles.

  • Tools: Metasploit, NMAP, WireShark, Fiddler.

Regulatory/Compliance Testing
  • Confirms adherence to governmental regulations in industries like healthcare, finance, and transportation.

Performance Testing
  • Determines optimal operating conditions for software, focusing on non-functional requirements.

  • Tools: Apache Jmeter, LoadRunner, WebLoad.

Acceptance Testing Types

  • Business Acceptance Testing (BAT):

    • Ensures software meets business requirements.

  • User Acceptance Testing (UAT):

    • Conducted by users to validate system meets user requirements.

Objectives of Acceptance Testing
  • Confirm system meets criteria and performance standards.

  • Identify and resolve discrepancies.

  • Assess the system's readiness for launch.

Test Strategy Development

Test Strategies vs. Plans
  • Strategy: Overall approach.

  • Plan: Tactical elements, often reactionary and updated frequently.

Elements of a Test Strategy
  • Objectives, scope, roles, test approach, test environment, test data, testing tools, risk analysis, review and approval, traceability matrix.

Heuristic Test Strategy Model (HTSM)
  • Provides guidewords to focus testing strategy, aiming for comprehensive coverage.

Challenges in Agile Environments

  • Traditional strategies often cover the entire project, while agile development focuses on Sprints and functionalities.

Using Mind Maps in Test Strategy Development

  • Creating a Mind Map:

    • Start with a central idea (application name).

    • Branch out with sub-categories.

    • Continue to break down categories until complete.

Sample Mind Map Elements
  • Covered topics such as performance, UI testing, acceptance testing, roles, responsibilities, and tools used.