A common trend widely observed across the market is for Software testing to be GUI-driven. Test cases & Test scripts tend to be more focused on the GUI aspects of the product being tested that the functional goals of the system are sometimes unfortunately forgotten. The result of this in most cases is an over sized Test suite that does not cater to functional testing needs of the product.
Another deficiency in many testing practices is that Software testing is often misinterpreted as verifying only written requirements. Functional testing starts & ends at: “Are all points in the SRS covered by the software?”. It is not sufficient to state that the product functions in accordance with its requirements & has passed functional testing stage if only the written down statements in the SRS are met. Functional coverage is a much deeper issue.
The asset of a good software testing practice is its ability to dive deeper into requirements & uncover the un-written ones as well. Thorough understanding of the product is required in order to enable this.
We at QSG understand the importance of testing software end-to-end. GUI attributes of the system are tested along the way during functional testing. Rather than seeing a GUI element as something to be tested, our testers reason the purpose behind the element being there. It then becomes a matter of verifying whether the GUI element meets its purpose. Our test suites are written entirely focused on functional testing & exercising the software from an End User perspective. Of course, if a GUI element along the way is broken, our functional Test suite is designed to capture that too.
We understand that all requirements cannot be written and that the un-written ones can sometimes be more important than the written ones.