Digital Image Processing for Test Automation
Mahmoud Eltohamy
Automation Sr. Consultant Deloitte | Ex: ServiceNow | Ex: Dell | Ex: Orange
Introduction
Image processing is a way to convert an image to a digital aspect and perform certain functions on it, to extract useful information from it. Image processing basically includes multiple scopes/steps:
Image Acquisition
This is the first digital step in image processing. In the field of test automation, the image acquisition is fairly easy through taking screenshots of webpages, mobile apps during test exaction?
Image Enhancement
Procedure of improving the quality and information content of original image before processing. Common practices include contrast enhancement, spatial filtering, density slicing, etc..
Image Restoration
Image Restoration is a function of taking noisy image and measuring an unused, new image. Exploitation can occur in many ways such as action blurring, sound and camera focus, the purpose of image restoration techniques is to reduce noise and reclaim the loss of decision.
Coloring Image Processing
The understanding of the physics of light, color vision phycology for the classification of objects in an image. Color for the purpose of separation image processing process is used.
Wavelets Processing
Wavelet transform is an effective technique for image representation. The wavelet transform allows for the investigation of multiple brushes/forms of the image.
Image compression
Image compression is a type of data useful pressure digital photography, reducing their costs last or spread. Processes can reap visual benefits awareness and asset data image assets to complex effects related to normal pressure strategies.
Optical Character recognition (OCR)
the electronic or mechanical conversion of images of typed, hand-written, or printed text into machine-encoded text, whether from a scanned document, a photo of a document etc...
All these processes and functions can be achieved by a set including and not limited to the following libraries are involved in performing Image processing, Scikit-image, OpenCV, SciPy, Pillow, Matplotlib.
Image Processing for test automation (Image comparison & Visual Regression)
Regression Testing is used to verify that any system changes do not interfere with existing features and/or code structure. Visual Regression Testing applies the same logic but confines testing to the visual aspects of the software. In other words, it checks that code changes do not break any aspect of the software’s visual interface. A visual regression test checks what the user will see after any code changes have been executed by comparing screenshots taken before and after code changes.
How Visual Regression Testing Works?
Demo image procesing server
Image Processing for complex systems [Game apps, AR/VR automation testing]
The approach