Ritu Walia, John Casey – Siemens Digital Industries
Many software failures can be traced back to incomplete, inadequate, or poorly designed quality assurance (QA) testing. Designing and implementing an effective QA process is critical to the delivery of software that performs as intended and delivers the expected results. A graphical user interface (GUI) is often the primary or single point of interaction between the user and the underlying software. No matter how well-planned a GUI and its functionality may be, any failure of the GUI to operate correctly, either from the user’s or the owner’s perspective, can result in a significant loss of market reputation for the entire product. We define and examine ten critical processes in relation to GUI testing and test automation. These include traditional QA testing techniques requiring experience/knowledge on the underlying software and its applications, for effective test execution and software analysis:
• Error identification: determine the common user mistakes likely to be made when using the GUI
• Character risk level: determine which characters may create problems and when/where (e.g., using reserved characters incorrectly)
• Operation usage: determine if/when operations are used incorrectly in the application (e.g., loading an invalid rule file)
• Element relationships: determine if/when different settings or combinations of related elements create problems
• Limitations and boundary values: determine what issues are created when limits are exceeded, or boundary values are not observed
• Performance and stress testing: typically observing time and memory consumption performance under extreme conditions
• Smoke testing: finding fundamental instability within builds, to prevent superfluous testing
• Real-world data: using actual data (e.g., customer data) that is not refined or limited, to ensure adequate coverage of customer-critical issues
• Exploratory testing: when bugs are found, performing random testing in the general area, or of elements created by the same developer, to look for additional bugs.
• Efficient bug reporting: giving back a clear bug report that can drive the efficiency of the bug fix
Ritu Walia, 2021 Technical Presentation, Paper, Presentation