Week 6: Learning Software Quality – GUI Analysis and User Acceptance Testing

    In this week’s class, we focused on the topic of "Software Testing and Quality," emphasizing the role of testing in identifying defects and ensuring that software meets specified requirements. We began by discussing the importance of software testing, which involves executing a program with specific test inputs to observe whether it behaves as expected. The primary goal of testing is not just to find bugs but to ensure the software's reliability, functionality, and overall quality, even though it is impossible to guarantee a completely error-free program.

    We explored several testing techniques and strategies, including black box and white box testing. Black box testing assesses the software's functionality without knowledge of its internal code or design, using techniques like equivalence class partitioning and boundary value analysis to design test cases. White box testing, on the other hand, focuses on the internal structure and logic of the code, employing methods such as statement coverage, branch coverage, and McCabe’s Cyclomatic Complexity to ensure comprehensive testing. We also covered regression testing, which checks that recent code changes or bug fixes do not adversely affect the existing functionality.

    A significant part of our discussion centered on test automation, which uses specialized tools and scripts to automatically execute tests. This approach enhances efficiency by automating repetitive tasks, allowing for quicker identification of defects and reducing manual effort. In addition, we delved into Quality Assurance (QA) practices, which go beyond traditional testing by integrating continuous monitoring and validation processes throughout the development lifecycle. Unlike Quality Control, which focuses on detecting defects, QA aims to prevent them by refining processes and maintaining high standards.

    We also examined User Acceptance Testing, particularly John Brooke’s System Usability Scale (SUS), a key tool for measuring the usability and user experience of software. The SUS uses standardized feedback to quantify how well a system meets user needs, providing valuable insights into the overall effectiveness of a design. The class highlighted that systematic testing and robust QA processes are vital components in the software development lifecycle, ensuring that software is reliable, functional, and meets user expectations. As we continue to explore software testing and quality, the importance of thorough testing strategies and continuous quality assurance becomes evident, reinforcing their role in the development of successful software products.



    After our lecture, our professor gave us an activity to help us understand the topic better. We were divided into six groups, and our task was to look at different software interfaces shown on the screen. Each group had to examine these interfaces, find the errors, suggest how to fix them, and discuss what could be done to improve the design. There were five GUIs (Graphical User Interfaces) to review, and each had different problems, like buttons that were hard to find, text that was too small, or confusing layouts.

    We worked together in our groups, talking about what was wrong with each interface and how those issues could affect users. We then shared ideas on how to make the interfaces better, such as rearranging elements to make them easier to understand, fixing color contrasts, or adding clear error messages. For the last part of the activity, we used John Brooke’s System Usability Scale (SUS) to measure user acceptance of one of the interfaces. The SUS helps us see how easy an interface is to use by asking 10 simple questions. We rated how well the interface worked for users—if it was easy to navigate, if everything worked together smoothly, and if it made sense overall. This was a great way to practice assessing usability and learn how to make software more user-friendly.

    The activity was a fun and practical way to apply what we learned in class. It showed us the importance of testing software and fixing problems early. Using the SUS also helped us understand how to measure if users like an interface, which is important for creating software that people enjoy using.

Picture during our activity.

Comments