CST438 - Week 5 Reflection

Summarize in a few sentences what you have learned this week.


         This week's reading of SAG served to expand upon the various roles and varieties of larger tests and test styles including integration, end-to-end, performance-based, and production-based testing. Unit tests persist as a cornerstone of fast, isolated, and useful testing that verifies individual classes or components that comprise large systems. These unit tests cannot provide complete assurance on their own for an application's functionality when services, configurations, databases, interfaces, and external dependencies are to be combined and collectively accounted for. Large tests close the gaps by exercising the actual system--or at least an accurate approximation of the system--to produce results that reflect the behavior real-life users will encounter once the system enters production.

        Fidelity--the degree to which a test accurately portrays or represents the real system being tested--was a substantial concept touched upon in this week's reading. Unit tests replace databases and external services with mocks, but that does not accurately recreate the behavior of a production environment. Large tests can provide better fidelity via realistic data, production-reflecting configurations, and actual measured interactions between services in a system. The added realism reveals problems that would otherwise remain hidden from unit tests. This could include incompatible configurations, inaccurate or outdated mocks, network behavior, performance issues that arise during actual system operation, and other unexpected behaviors arising as components attempt to work together. 

Comments

Popular posts from this blog

CST438 - Week 1 Learning Journal

CST462 - Service Learning Reflection: LibreOffice

CST370 - Week 7 Reflection