Project Overview
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.
Technologies Used
Python, Gherkin Python Testing Language-supported by Behave, Selenium, Image Classification - Tensorflow and Keras, Netlify hosting with CircleCI and jenkins CI/CD pipeline
Personal Bio
BSc in Computing student with an average grade of 2.1, performing best in Programming and Database Systems modules.
Other modules include Business Systems, Strategic Management, Web Design, Wireless Networking, Graphic Design/Animation, Android Development, Data Application Development, Introduction to Artificial Intelligence, and Cloud Computing.
8 months experience in Rapid Ratings as a Software Engineer Intern, exploring API's, Python, Django, and an Introduction to QA Engineering.
I have received a lot of positive feedback on my ability to work in groups.
In particular, work ethic and working out disagreements to arrive at solutions in a professional manner, often holding the team captain role throughout many college group projects.
I always strive to be business literate and accountable.
Keen to continuously develop Programming skills with a focus on Artificial Intelligence, and expand knowledge in areas of new tools, technologies, frameworks, and languages.