-
Notifications
You must be signed in to change notification settings - Fork 4
Test strategy
Spreadsheet Application | YeetSheet
- Introduction
- Testing goals
- Testing methodologies
- Testing priorities
- Communication and Reporting
- Continuous Improvement
This document defines the YeetSheet Spreadsheet Application overall testing goals, types of testing to be performed, and testing techniques and tools to be used.
It provides a high-level overview of the testing approach and objectives for the entire project.
Align testing efforts with project goals and ensure consistency across different phases of the project.
Quality Assurance
Risk mitigation
Customer satisfaction
Documentation
Data Management Ensure that the application correctly handles tabular data, including data entry, editing, deletion, and saving.
JavaScript Syntax for Cell Functions Verify that users can define and execute cell functions using JavaScript syntax accurately.
Feature Parity Confirm that the application supports features like those found in spreadsheet applications (e.g., formulas, charts, data formatting) using JavaScript.
Ease of Use Ensure the application is user-friendly, with an intuitive interface and easy navigation.
Accessibility Verify that the application meets accessibility standards to support users with disabilities.
User Experience Test the overall user experience, ensuring that the application is enjoyable and efficient to use.
Lightweight Performance Ensure the application loads quickly and performs efficiently even with large datasets.
Resource Utilization Test the application’s resource consumption (CPU, memory) to ensure it is optimized for various devices.
Cross-Device Functionality Verify that the application works seamlessly across different devices (desktops, tablets, smartphones).
Browser Compatibility Ensure the application functions correctly on major web browsers (Chrome, Firefox, Safari, Edge).
Offline Functionality Confirm that the application can be used offline and that data syncs correctly when back online.
Data Portability Ensure users can import and export data easily in standard formats (e.g., CSV, JSON).
Data Security Ensure that user data is securely handled, stored, and transmitted.
Authentication and Authorization Verify that user authentication and authorization mechanisms are robust and secure.
Unit testing Verify the functionality of individual components or units of the application to ensure they work as expected in isolation.
End-to-End (E2E) testing Test the complete flow of the application from the user’s perspective to ensure all components work together as expected.
Manual testing Perform exploratory and ad-hoc testing to identify issues that automated tests might miss, focusing on usability, accessibility, and overall user experience
Integration testing Ensure that different modules or components of the application work together as expected.
Acceptance testing Validate that the application meets the business requirements and is ready for release
Function-level testing (Unit)
Write unit test for new features or changes
Document findings or report any issues in Pull request
Communicate directly with developer if doing Test-driven-development
Branch-level testing (E2E, Manual testing)
(Current example Workflow branch)
Write E2E tests to simulate user interactions and verify outcomes.
Execute manual tests, focusing on usability, accessibility, and overall user experience.
Document findings and report any issues in GitHub Issues.
Before merging to main branch (Integration Testing)
CI/CD pipeline with automated test
After merging to main branch (Acceptance testing)
Execute manual tests, focusing on usability, accessibility, and overall user experience.
Document findings and report any issues in GitHub Issues.
Guidelines for prioritizing testing activities based on project goals and constraints.
| Priority | Category | Example |
|---|---|---|
| P1 | Critical functions | Cell functionality using javaScript syntax |
| P2 | High risk/impact | Cross-Platform Compatibility |
| P3 | Medium risk/impact | Import/Export Functionality |
| P4 | Low risk/impact | Noncritical user features |
| P5 | Nice to have | Integration with other apps |
To ensure effective communication between QA engineers and developers, we will utilize GitHub’s features
Issues Log and track defects, feature requests, and test results.
Pull Requests (PRs) Comment on code changes and report test results.
Discussions Facilitate broader conversations and questions.
Notifications Ensure team members are set to receive relevant notifications.
Title Clear summary of the issue.
Description Detailed description and steps to reproduce.
Expected vs. Actual Results Document discrepancies.
Attachments Include relevant screenshots and logs.
Labels Categorize issues appropriately.
Maintain a centralized repository for all documentation on GitHub Wiki with project-specific READMEs.
Plans for reviewing and refining the testing strategy throughout the project lifecycle. TBD