Testing Phase : Bug hunting and Feature Validation

Monday, April 14 2025 – Last week, since the development of our features had been completed, it was time to thoroughly test the application.

Initially, I focused on testing the newly developed feature that I had worked on. After that, I started diving into other features developed by the previous intern. I also took the initiative to understand how the code worked so I could handle any bugs that might be discovered later. I consulted Mr. Peter for clarification on how certain buttons and modes were supposed to function.

A few bugs were identified, mostly minor, but still important to resolve.

Since there were numerous updates happening on both the frontend and backend, including major logic changes to enable syncing between the new and previous systems, I tried testing as many scenarios as I could and reported bugs as soon as I found them.

By the end of the week, we had discovered and resolved a number of bugs, especially in the critical features. However, there are still some features I need to continue testing, which I unfortunately didn’t manage to cover last week.

Testing the Full Transfer Flow and Taking on New Daily Tasks

Monday, April 7 2025 – Over the past few weeks, I’ve been working on several features that are part of a larger parent module, the transfer process. This includes building pages for creating transfer orders, picking and packing, delivery, and receiving. Last week, I successfully completed end-to-end testing of the entire flow, ensuring that everything functions smoothly from start to finish.

Through this testing phase, I was able to identify several bugs and issues. Whenever I encountered an error, I took the time to trace its source, whether it originated from the UI or the backend. I made it a habit to document every bug I came across and performed stress testing by intentionally trying to “break” the page. For example, I repeatedly switched between view and edit modes to confirm that the state transitions were handled correctly in the code. I also tested actions like creating and canceling, undoing and redoing, and made sure to resolve all errors thrown by React.

In addition to that, Mr. Peter recently assigned me a new daily task. Starting last week, I’ve been dedicating the last two hours of my workday to this task. It involves uploading item information into the system, and also includes editing item images. Since the image editing part requires Photoshop, Mr. Peter gave me a walkthrough on how to do it. I’m still adjusting to the image editing process, but I’m committed to learning and doing my best.

Enhancing UI Performance and Auto-Refresh Implementation

Monday, March 24 2025 –Last week, I focused on resolving several UI bugs based on the latest findings. While addressing these issues, I also identified and implemented necessary improvements.

The first task was to create a new dropdown component that displays a list of all stores. This dropdown was required for features that had recently been developed, making it essential to have a reusable component for consistency.

Next, I worked on implementing an auto-refresh mechanism that updates the page every five seconds. Using useEffect, the function runs at a set interval (which I set to 10 seconds) but only when the page is visible. It detects when the tab is active, triggering the function immediately and then setting up a timer to refresh the data. If the tab is hidden, the timer stops to conserve resources. 

Initially, I applied this feature to all pages that retrieved lists of data. However, Mr. Peter later advised that it should only be implemented on specific lists, prompting me to refactor the logic into a reusable component. I placed this component under the hooks folder and tested it on the selected lists. The component automatically runs when the tab is active, executing a callback function passed from the parent page. The callback was defined as void, simply acting as a trigger.

By the end of the week, the component successfully refreshed the page as intended. However, there was one issue, filters and pagination reset to their initial state upon refresh. This occurred because the component’s useEffect reloaded the content, causing state loss. Resolving this behavior will be the next step in refining the implementation.