Return back to the README.md file.
Software testing is a common practice and a crucial step in the development process that ensures the quality, functionality and reliability of a web application. There are two primary approaches to testing - manual and automated. They both play vital roles in the process.
Both manual and automated testing have their strengths and limitations, but let's focus on the strengths. Manual testing offers flexibility and human insight, while automated testing provides efficiency and repeatability. Combining these two approaches can help achieve comprehensive test coverage.
Manual Testing involves human testers who interact with the software and assess its behavior against predefined criteria. This method relies on the tester's intuition, experience, and creativity to identify defects, making it particularly effective in exploratory testing and scenarios where user interaction is complex or subjective.
"It's just a phase!" has been tested manually to check if the project works according to the user stories, to check its performance in different browsers and to check its responsiveness at different resolutions. Some manual testing was also performed while writing JavaScript code and checking its outcome by using console.log
method. Some friends and family members were invited to test the app on their devices and to check for potential functionality issues.
Automated Testing, on the other hand, employs specialized testing tools and scripts to automate the execution of test cases and verification of results. It excels in repetitive, time-consuming, and regression testing scenarios, where the same tests need to be run repeatedly to ensure new code changes do not introduce defects.
All tests described and documented in the Code Validation and the Lighthouse Audit sections are automated tests.
The W3C Markup Validation Service and The W3C CSS Validation Service were used to validate every page of the project to ensure there were no syntax errors. The results clearly showed that the website stays in compliance with the standards and recommendations set by the World Wide Web Consortium.
JSLint, a static code analysis tool, was used to check if JavaScript source code complies with coding rules. No errors were found in this area.
I have used the recommended HTML W3C Validator to validate all of my HTML files. No errors were found. A few minor warnings appeared indicating empty headings in index.html file. The headings were empty for a reason though as they were designed to be containers for external API's data.
Page | W3C URL | Screenshot | Notes |
---|---|---|---|
Current Moon Phase | W3C | Pass: No Errors | |
Moon Cycle Explained | W3C | Pass: No Errors | |
FAQ | W3C | Pass: No Errors | |
Gallery | W3C | Pass: No Errors |
I have used the recommended CSS Jigsaw Validator to validate my CSS file. No errors were found.
File | Jigsaw URL | Screenshot | Notes |
---|---|---|---|
style.css | Jigsaw | Pass: No Errors |
I have used JSLint to identify potential errors in my two JavaScript files. No errors were found.
File | Screenshot | Notes |
---|---|---|
script.js | No errors found | |
gallery.js | No errors found |
I have tested my deployed project on multiple browsers to check for compatibility issues.
Browser | Screenshot | Notes |
---|---|---|
Chrome | Works as expected | |
Firefox | Works as expected | |
Edge | Works as expected | |
Opera | Works as expected |
I have tested my deployed project on multiple devices to check for responsiveness issues. It responds well to different screen sizes ensuring that users can access and navigate the content effortlessly, regardless of their chosen device. No design or functionality issues were found.
Device | Screenshot 1 | Screenshot 2 | Screenshot 3 | Screenshot 4 | Notes |
---|---|---|---|---|---|
Mobile (DevTools) | Works as expected | ||||
Tablet (DevTools) | Works as expected | ||||
Desktop | Works as expected |
I have tested my deployed project using the Lighthouse Audit tool to check for any major issues.
User Stories | Completed? |
---|---|
As a client, I would like to provide users with accurate and up-to-date information about the current phase of the Moon. This could include displaying the Moon's appearance, percentage of illumination, distance to the Moon from Earth, and other relevant details. | ✔️ |
As a client, I would like to educate users about the different phases of the Moon and the science behind them. It could provide explanations, diagrams, and relevant images to help users understand the lunar cycle. | ✔️ |
As a client, I would like to provide a visual calendar that displays the Moon phases for a specific period (e.g., a year) that can help users track the Moon's changing appearance over time. | ✔️ |
As a client, I would like to deliver all of the above in the form of a visually appealing, intuitive, responsive across different devices and easy to navigate website. | ✔️ |
User Stories | Completed? |
---|---|
As a first time user, I should be able to quickly and easily see the current phase of the Moon, whether it's a Full Moon, New Moon, Waxing Crescent, Waning Gibbous, etc. | ✔️ |
As a first time user, I should be able to access more than just the current Moon Phase. I should be able to see additional information such as Moon illumination percentage, number of days through the cycle, number of days till the next Full Moon, etc. | ✔️ |
As a first time user, I should be able to explore a calendar view that shows the Moon's phases for a specific period, helping me understand how the Moon's appearance changes over time. | ✔️ |
As a first time user, I should be able to learn about the different phases of the Moon, their significance and why the Moon's appearance changes over time. | ✔️ |
As a first time user, I should be able to navigate throughout the page in an easy, effortless and intuitive way. | ✔️ |
As a first time user, I should be able to have a positive and enjoyable experience while browsing the website. | ✔️ |
User Stories | Completed? |
---|---|
As a returning/frequent user, I should be able to continue tracking the Moon's changing phases to deepen my understanding of the Lunar Cycle. | ✔️ |
As a returning/frequent user, I should be able to plan upcoming activities that align with specific Moon phases, such as outdoor events, photography sessions, or astronomical observations. | ✔️ |
As a returning/frequent user, I should be able to revisit the website's settings to fine-tune my preferences, such as adjusting my time zone or choosing my favorite locations. | Take a look at the Future Implementations section in README.md file. |
As a returning/frequent user, I should be able to share my own observations, photos, or experiences related to Moon phases within the website's community. | Take a look at the Future Implementations section in README.md file. |
As a returning/frequent user, I should be able to stay informed about upcoming celestial events beyond Moon phases, such as meteor showers, planetary alignments, asteroids and comets. | Take a look at the Future Implementations section in README.md file. |
As a returning/frequent user, I should be able to access the provider's social media accounts. | ✔️ |
As a returning/frequent user, I should be able to offer feedback to the app developers based on my experiences, helping to shape future updates and improvements. | Take a look at the Future Implementations section in README.md file. |
- The Lunar Cycle Calendar was initially delivered in markdown format. I have managed to find the library that successfully converted it into HTML.
- The calendar used to display all months as 31-day-long, except December, which should be 31-day-long, but was displayed one day shorter. As suggested by my mentor, I used a
for loop
to delete all extra days. It didn't affect the Moon Phases. The data is still correct and up-to-date.
There are no remaining bugs that I am aware of.