Project report

profilelily33
TestPlanfinal.docx

Title: Project Test Plan

Team Members:

Date: July 16, 2024

Introduction

The software project involves developing a weather website that allows users to input a zip code and receive real-time weather information. This website fetches weather data from an external API and displays various weather parameters, including temperature, humidity, wind speed, and weather conditions such as thunderstorms and heavy rain. The scope of testing for this project encompasses all functionalities of the website to ensure that it performs correctly under various conditions and provides a seamless user experience. This includes ensuring the accuracy of data, compatibility across different browsers, and reliability of the entire system to ensure it meets user requirements and expectations.

Testing Objectives

The primary objectives of the testing effort are to ensure that the weather website operates correctly and efficiently, providing a high-quality user experience. The specific quality attributes to be assessed include functionality, usability, and reliability. The testing will focus on:

· Functionality: Ensuring the core features such as zip code input, weather data retrieval, and display operate correctly. This includes verifying that users can add and remove zip codes, preventing duplicate entries, and handling both valid and invalid zip codes appropriately.

· Usability: Confirming that the user interface is intuitive and easy to navigate, providing a seamless user experience across different devices and screen sizes.

· Reliability: Ensuring the application is dependable, with saved zip codes persisting across sessions and accurate weather information being consistently provided.

By assessing these attributes, the testing effort aims to ensure that the weather website delivers accurate, timely, and reliable weather information while providing a user-friendly experience to its users.

Test Strategy

The overall approach to testing will involve a combination of manual and automated testing methodologies to ensure comprehensive coverage and efficiency. The testing types to be performed include unit testing, integration testing, system testing, and usability testing. Each type of testing plays a critical role in validating different aspects of the weather website, ensuring it meets the highest standards of quality and user satisfaction.

Unit Testing

Unit testing will focus on verifying the functionality of individual components within the system. Each module, such as the zip code input handler, weather data fetcher, and user interface components, will be tested in isolation. This helps identify and fix issues at an early stage, ensuring that each part of the application works as intended.

Automated unit tests will be written to cover various scenarios, including edge cases, to ensure robustness:

1. API Key and Weather Fetching:

· The unit test will mock the behavior of external API calls to ensure that the getWeatherByZipCode method correctly constructs the API URL, handles responses, and populates the WeatherRecord object.

· Tests will cover scenarios such as valid zip code responses, invalid zip codes returning errors, and no response from the API.

2. Error Handling and Edge Cases:

· Tests will verify that the system gracefully handles errors, such as invalid zip codes or network issues, by displaying appropriate messages and maintaining application stability.

· Edge cases, such as empty inputs or malformed zip codes, will be thoroughly tested to ensure robust input validation and error handling.

Integration Testing

Integration testing will verify that different components of the weather website work together seamlessly. This involves testing the interactions between the frontend and backend, as well as between various backend services. The goal is to ensure that data flows correctly through the system and that integrated components interact as expected. Integration tests will include scenarios such as fetching weather data for a given zip code and updating the user interface with the retrieved information.

System Testing

System testing will assess the end-to-end functionality of the entire weather website. This comprehensive testing approach will cover all user interactions and system workflows, from entering a zip code to displaying weather information and managing saved zip codes. System testing will ensure that the application meets its functional requirements and provides a reliable user experience.

Test Scope

The test scope includes all functional and non-functional aspects of the weather website. Functional testing will cover core features such as zip code input handling, weather data retrieval from the API, and the display of weather information on the user interface. Non-functional testing will assess usability, reliability, and cross-browser compatibility. The boundaries of the testing effort exclude testing on deprecated browsers, and network conditions outside typical user scenarios. Additionally, backend integrations with external weather data providers will be tested under the assumption that their APIs are functional and reliable.

Test Cases

The test will focus on the following test cases to ensure comprehensive coverage of the system's functionality:

1. Valid Zip Code Fetch: Verify that entering a valid zip code fetches and displays the correct weather information.

2. Invalid Zip Code Error: Ensure that entering an invalid zip code results in an appropriate error message without crashing the application.

3. Adding Valid Zip Code to List: Confirm that valid zip codes can be added to a list for quick access.

4. Invalid Zip Code Addition Prevention: Verify that attempting to add an invalid zip code does not add it to the list.

5. Prevent Duplicate Zip Codes in List: Ensure that duplicate zip codes cannot be added to the list.

6. Remove Zip Code from List: Check that users can remove zip codes from their saved list.

7. Fetch Weather for Saved Zip Codes on Load: Ensure that the weather information for saved zip codes is fetched and displayed when the application is loaded.

8. Severe Weather Alert: Verify that the application can handle and display alerts for severe weather conditions when a relevant zip code is entered.

9. Persistent Zip Codes on Reopen: Ensure that saved zip codes are retained and reloaded when the application is reopened.

10. Cross-Browser Compatibility: Confirm that the website functions correctly across different browsers such as Chrome, Firefox, Safari, and Edge.

Testing Procedures

Testing procedures will involve specific steps for executing each test case, including setting up the test environment, preparing test data, and recording results. Test data preparation will involve creating a set of valid and invalid zip codes, as well as simulating various user interactions. The test environment configuration will ensure that the backend server, frontend client, and network conditions are consistent with typical user scenarios.

Testing Schedule

The testing schedule for the weather website outlines the timelines for each phase of the testing effort, ensuring that all testing activities are completed within the project timeline. The schedule includes deadlines for unit testing, integration testing, system testing, and usability testing, with specific milestones and deliverables. Each phase has been allocated sufficient time for test case development, test execution, defect resolution, and re-testing. The testing schedule is as follows:

July 10 - July 11: Unit Testing

· July 10:

· Develop unit test cases for the zip code input handler and weather data fetcher.

· Set up the testing environment and write automated unit tests using JUnit and Mockito.

· July 11:

· Execute unit tests.

· Identify and log any defects found during unit testing.

· Begin fixing identified defects.

July 12 - July 14: Integration Testing

· July 12:

· Develop integration test cases to verify interactions between the frontend and backend components.

· Set up the testing environment for integration tests.

· July 13:

· Execute integration tests.

· Identify and log any defects found during integration testing.

· July 15:

· Fix identified defects and re-test to verify the fixes.

July 17 - July 20: System Testing

· July 17:

· Develop system test cases to cover end-to-end functionality of the weather website.

· Prepare the testing environment for system testing.

· July 19:

· Execute system tests.

· Identify and log any defects found during system testing.

· July 20:

· Fix identified defects and re-test to verify the fixes.

Testing Resources

To run the application and perform comprehensive testing, the following resources will be required:

Personnel

· Dedicated Testers:

· William Nguewa

· Taehoon Song

· Developers: Available to fix defects and provide support during the testing process.

· Tsegent Tekilemariam

Equipment

· Test Devices: Each tester will need a personal computer or laptop capable of running Java 17, an IDE, and multiple browsers for testing purposes.

Software Tools

· Java 17: Ensure that all testers have Java 17 installed, as it is required to run the Spring Boot application.

· Integrated Development Environment (IDE): An IDE such as IntelliJ IDEA or Eclipse for developing, debugging, and running the application.

· Multiple Browsers: Ensure that the application is tested on the latest versions of major browsers, including:

· Google Chrome

· Mozilla Firefox

· Microsoft Edge

Budget

No additional budget is required as all necessary tools and software are open-source and free to use, and existing personal computers or laptops will be utilized for testing purposes.

Execution

· Running the Application: Testers will run the Spring Boot application on their local devices.

· Browser Testing: Testers will open the site on multiple browsers and perform the testing as per the test cases.

By ensuring these resources are in place, the testing team will be well-equipped to conduct thorough and effective testing of the weather website, ensuring it meets all functional and non-functional requirements.

Defect Management

Establishing a robust defect management process is crucial for identifying, reporting, and tracking defects or bugs encountered during testing.

Identifying Defects

· Testing Execution: During the execution of test cases, testers will document any discrepancies between the expected and actual results.

Reporting Defects

· Defect Tracking Tool: Jira

· Defect Report: Each defect will be reported with detailed information to facilitate quick resolution. A standard defect report will include:

· Defect ID: A unique identifier for the defect.

· Summary: A brief description of the defect.

· Description: Detailed information about the defect, including steps to reproduce, expected results, and actual results.

· Priority: The urgency of addressing the defect (e.g., high, medium, low).

· Attachments: Screenshots, logs, or any other relevant files that provide additional context.

Tracking Defects

· Defect Lifecycle: Establish a lifecycle for tracking defects from discovery to resolution. Typical stages include:

· New: The defect has been identified and logged.

· Assigned: The defect has been assigned to a developer for resolution.

· In Progress: The developer is actively working on fixing the defect.

· Fixed: The defect has been resolved and awaits verification.

· Verified: The fix has been verified by a tester.

· Closed: The defect is considered resolved and closed.

· Reopened: If the defect reoccurs, it can be reopened for further investigation.

By following this defect management process, the testing team can efficiently identify, report, and track defects, ensuring timely resolution and contributing to the overall quality and reliability of the weather website.

Summary

This test plan for the weather website outlines a structured approach to ensure the application delivers accurate, reliable, and user-friendly weather information. The testing strategy includes unit testing, integration testing, and system testing, each targeting specific components and interactions within the application. The detailed testing schedule and resource allocation, including Java 17, multiple browsers, and an IDE, provide a clear roadmap for executing comprehensive tests. This approach ensures that each aspect of the website is thoroughly examined and meets the desired quality standards.

A robust defect management process is also established to identify, report, and track issues efficiently. By leveraging the JIRA tool, the testing team can systematically document and resolve defects, ensuring a smooth and reliable user experience. This well-defined testing plan and defect management process contribute to the overall goal of delivering a high-quality weather website that meets user expectations and performs reliably in real-world scenarios.