In the modern age of product development, most software/hardware modules are readily available for the developers, allowing them to spend most of their time in the design and module interface. Next is the testing stage, which can be divided into two – manual testing and automation testing.
Depending on the test report and customer feedback, feature addition and bug fixing can take place in the software. This calls for different versions of software releases. Each version of the software must be verified using the same test cases if it is manual testing.
Manual testing is the traditional way of testing but has a lot of disadvantages in comparison to automation testing. Hence, most product developers have started using automation testing at some, while remaining test cases can be done by manual testing.
Electromechanical products like washing machines and printers contain mechanical components, such as valves, brakes, and paper rollers. These can be activated by electrical components (like solenoid coil, and motor) and can be controlled by electronic main control boards (processor boards) with respect to the system requirements. These electromechanical products can undergo automation testing by mainly two methods – white box and black box testing.
WHITE BOX TESTING (also known as open box testing): In an embedded product, white box testing can be used in the initial state of development, where the product is completely open. So, the tester can tap the sensor and the actuator connectors from the hardware board to simulate the sensor inputs and validate the actuator output.
BLACK BOX TESTING (also known as behavioural testing): Behavioural test is used in the final stage of the product development. Here, the tester will not be able to see the real hardware, allowing the person to do only the functional testing with limited inputs and outputs.
In white box testing approach, most of the sensor feedback and output are open from the main control board. So, they can be tapped and monitored by the automation tool to validate product functionality. But in the black box approach, in most cases, the product is completely closed and is almost ready for the end user, so there are no open points to tap sensor signals or output signals to verify the functionality. Due to this reason, full automation testing is not possible in a behavioural test as compared to open box testing.
For example, a washing machine has an inlet valve, which is used to fill the water in the washtub. This can be monitored by the main control board during the initial stage of the wash cycle. During black box testing, this valve ON condition can be verified by the tester manually by seeing the water flow in the washtub. The tester can also feel the coil vibration or hear the coil noise, which is generated by the solenoid valves. So, automation is not possible here and a similar condition is applicable for the remaining electromechanical components in the washing machine. Here are some solutions below:
The above mentioned issues can be addressed by using a vibration sensor (accelerometer) and sound sensor (microphone). In the black box approach, sound and vibration are the key parameters that are used by the tester to validate the functionalities of electromechanical components or mechanical motions.
Along with this, the tester can use his own understanding to differentiate the vibration/noise between the electromechanical components/mechanical motions to find the current status of the same. Here, the above solution can be implemented by using machine learning (ML) algorithms. The combination of the sensors and machine learning (ML) algorithms can help achieve full test automation in a black box approach along with the existing test setup.
Any electromechanical or mechanical motion can have its own pattern of vibration or own sound/noise configuration while operating. This can be captured by using sensors like accelerometer and microphone and this value gets sampled through the microcontroller boards (refer fig 1). The sampling rate selection should be with respect to the accuracy level, i.e., higher the sampling rate, greater the accuracy. It also requires more computational power, whereas, lesser the sampling rate lower the accuracy and less computation required.
In ML, the classification algorithm will be suitable for this application where it initially requires training to create the learning model. Here, the above sensor sample is used to prepare the training data for the algorithm. Training data should contain mainly two information: sensor information and classification information; that shows which vibration or noise belongs to mechanical motion.
For instance, the accelerometer has vibration information as x, y, and z digital values. These are used as sensor parameters, with classification information like which vibration belongs to which mechanical motion (refer to the below image). This is similar for the sound which can be recorded using the microphone.
Initially, training data preparation and training model can be done manually and will be a one-time activity. Once the training model is ready, it can directly use the existing black box test automation setup. Whenever a mechanical motion accurses, there will be a vibration or noise, which can be captured by the sensor as samples and send the same to the machine learning algorithm as a test data.
Machine learning algorithms classify the test data and identify which mechanical motion belongs to this vibration or noise. Using the same, current status of the electromechanical component or the mechanical motions can be verified.
Finding the placement of the sensor is a bit difficult. This is because the vibration sensor should capture all the mechanical motion, placed in different locations in the same electromechanical machine or product. To address this problem, one should go with one or more vibration sensors in different locations, which will cover all the vibrations in the machine.
A higher sampling rate is required for more accuracy, but this takes more computation power to process the machine learning algorithm. To address this problem, process the algorithm in a high-end PC with more RAM and graphics card.