Test software projects

Software development has come to the fore of Compute Thing's work, with a focus on driving improvement in client organisations. Prior to setting up Compute Thing Limited, Michael's work retained some hands-on software development even while occupying leadership positions.

IoT sensor automated test system development

Automated testing of the sensor had been an unobtainable goal of the client for a number of years

Creation of an asynchronous automated test framework in Python for a low-power IoT device. Software drivers for GPS, MQTT, test instruments, Protobuf, NFC. Integration with AWS IoT. Azure Devops Pipelines

Software testing of a device that spends most of its time powered down and typically communicates once a day provides some unique challenges. The testing needs to control and monitor many aspects of the interaction between the sensor and its physical environment.

The development from scratch by Compute Thing Ltd required the creation of drivers for many different interfaces running in parallel, together with a connecting framework. This allowed test scripts to observe asynchronous events related to the IoT sensor under test.

A regression test suite using the automated test system has been established.

Test, analysis and support tools at IndigoVision

To mitigate a support issue a support engineer was sent to a customer site to change the web configutation of 100s of devices. Aware of the unfolding situation I explored the use of Selenium and Python producing a prototype script just in time to be asked if I could help. Within 2 working days I had a packaged executable sent to site. The next day the script was used to resolve the customer issue.

Many support cases and some more complex tests required the creation of Python scripts to analyse Wireshark traces and isolate issues in large log files, e.g. find 10 time discontinuities in a 1000000 line log file. Other longer term tests have used Python scripts in conjunction with Linux shell script to extract diagnostics on a periodic basis

I produced a tool in Java that simulated the presence of 7500 cameras on a CCTV network, responding to polls on 7500 IP addresses

Test tools at Agilent Technologies

I produced a number of scripts for test data generation at Agilent Technologies. Written in AWK, the tools would manipulate large files of protocol packets used in a mobile and fixed phones network (GSM, GPRS, UMTS, SS7)

I produced AWK scripts to retrieve information from test specs and test results written in Word. The scripts were used to collate test progress information and to migrate the test specs from Word to Mercury Test Director (now HP Quality Center)

Motorola Tetra System test

For performance and scaleability testing I created many scripts for analysing test outputs and for configuring custom test tools. I also created scripts for automated testing controlling mobile handsets, radio signal attenuation (to move handsets from one cell to another) and verification of messages sent through mobile network (extracting data from base stations and other network links)

Working in conjuction with Motorola Research, I created a test framework that was used by all the development teams involved in the Tetra project (5 teams, 4 countries) and the System Integration Test team. This was built using SDL (Specification & Desscription language) and allowed integration tests to be before and after hardware availability