​The Challenge

For this project our client is a very large Consumer Electronics Manufacturer.
Among the myriad of devices they create, a wireless speaker of high audio quality
is the base of this project. The device exists in various sizes and features set.
It is bluetooth low energy based. Its internal batteries are rechargeable via USB connection.
We were taken to create automated platform to validate the new
versions of firmware and software that the company release every few months.
Results of the regression tests of all the various platforms and firmware
releases have to be saved for statistical analysis.

Our Approach

Our approach to the successful completion of this task was to leverage
the Continuous Integration Tool JENKINS along with the distributed
version control system GIT.

With the help of those two major tools the latest image of the firmware for each
of the platforms can be automatically build.

The regression test platform install those image on each of the Device Under Test Units.
A series of regression automated tests suites are run on those devices and the results
of tests is stored in a database.

From this database reports, alerts and summaries are produced and send via
various means to parties that have registered their interest.

The Solution

Our solution to this Challenge was to bring together a collection of
different technologies to achieve the objectives.

✓ Jenkins:
⁃ For the continuous integration of software building

✓ Git:
⁃ For the version control system and source code repositories on GitHub.

✓ Python 3.5:
⁃ For the development of the test infrastructure and storing and reporting of results

✓ C++
⁃ For the interfacing with the device under test Bluetooth and USB

✓ C:
⁃ For utilities and tool development

✓ Bluetooth BLE 5.0:
⁃ For communication with the device under test and firmware update OTA

✓ USB
⁃ For communication with the device under test and firmware update

✓ MySql:
⁃ For the creation and management of a test result data base.

✓ Phidgets modules:
⁃ for interfacing with off the shelf modules to provide relays and monitoring devices

✓ Doxygen:
⁃ for documentation of code and procedures

Summary

In summary this project was successful in bringing together a wide pallet of tools and technologies in order to complete the required objective.

The emphasis was to bring those building blocks in an harmonious system easy to use, manage and upgrade.

Those principals can be replicated for a large number of similar requirements