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.