The project goal is to collaborate my current knowledge of Software Development along with the challenge of new tools, technologies, and frameworks, bringing light to the importance of visual testing when releasing code during the Software Development Lifecycle.

Following completion of my college internship, I undertook this project to explore the possibilities of improving testing by adding the additional component of automated visual testing. An issue with automated testing in many cases is the User Interface aspect, as this is omitted in many automation scripts and unit-tests and widely done manually. Even if the visual element’s structure is tested, the background imagery or surrounding text distortion may not be captured.

Automated tests are usually done on a code-based assertion level, through API status assertion or element assertion. API status assertion compares the response of an API request to an expected response, and element assertion is achieved using the Document Object Model to extract element values and compare them to expected values.

An example of the problem at hand - if an API automated test script is built to test a company's login, it would pass if an API 200 status was returned and the script could find the 'welcome' text on the homepage. However, if there is some text or imagery which is not rendering correctly this may be overseen by the automated test if not accounted for.

It is not practical to automate every aspect of a page, and tests cannot account for everything. However, the notion that this room for error can be drastically reduced inspired me to tackle visual impurities like the example just mentioned, by adding a visual testing tool to a Behavior Driven Development (BDD) testing workflow.