Week 6 Learning Journal- CST438

This week’s learning focused on the critical distinction between simple testing and the broader mindset of Quality Assurance (QA). I learned that QA is not merely a final phase of development but an attitude that must permeate requirements, design, and coding. A significant portion of the material covered the Therac-25 case study, a tragic example where a radiation machine malfunctioned in 1986 due to software failures, causing fatal overdoses. The root causes were complex: software was reused from an older model that relied on hardware safety interlocks which the Therac-25 lacked, and a race condition occurred between concurrent tasks when technicians entered data too rapidly. This taught me that we must design for faults, carefully analyze how software interacts with hardware, and never assume inputs will be reasonable.

I also expanded my technical vocabulary regarding test coverage. I learned the hierarchy of coverage levels, ranging from basic S0 (Method Coverage) and S1 (Call Coverage) to the more rigorous C0 (Statement Coverage) and C2 (Path Coverage). The lecture highlighted that while 100% path coverage is often impractical due to the exponential number of paths in complex code, testing remains essential even if it cannot mathematically prove a program's correctness.

Finally, I applied these concepts to practical frontend architecture for the course project. I learned about the inefficiencies of rendering a hidden <dialog> component for every single row in a data table, which bloats the DOM and frequently causes Selenium automation errors when the test driver interacts with the wrong hidden element. The optimal solution is to implement component reuse by defining a single <EditOrder> dialog outside the table structure. By using a state variable to populate and display this single dialog only when an "Edit" button is clicked, we reduce DOM complexity. This architectural change not only improves application performance but ensures that Selenium scripts are robust, as they no longer struggle to distinguish between active and hidden inputs.

Comments

Popular posts from this blog

My Educational and Career Goals

Learning Journal – Week of May 11, 2025

Week 5 Learning Journal