Skip to content

Test strategy

Malkenes edited this page Jun 5, 2024 · 1 revision

Testing Strategy

Spreadsheet Application | YeetSheet

Table of contents

Introduction

Objectives

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.

Purpose

Align testing efforts with project goals and ensure consistency across different phases of the project.

Quality Assurance

Risk mitigation

Customer satisfaction

Documentation

Testing goals

Functional goals

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.

Usability goals

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.

Performance goals

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.

Compatibility goals

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).

Portability goals

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).

Security goals

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.

Testing methodologies

Testing types

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

Testing approach

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.

Testing priorities

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

Communication and Reporting

To ensure effective communication between QA engineers and developers, we will utilize GitHub’s features

Channels

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.

Test Reports (in Issues)

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.

Documentation

Maintain a centralized repository for all documentation on GitHub Wiki with project-specific READMEs.

Continuous improvement

Plans for reviewing and refining the testing strategy throughout the project lifecycle. TBD

Pages

Home

Version (0.x.x)

Quality Assurance

Clone this wiki locally