Portfolio

A brief summary of the projects I have worked on

Projects

Cloud-based Test Automation Framework

Company: Gallagher Group Ltd

I am part of a two-man team who started this project for a new project in Gallagher, a Cloud-based Security Application targeted for small and medium businesses. My contribution is mainly in the design and implementation of the Selenium and Appium sides of test automation. We are using an in-house BDD-style test framework library based on rspec . Since its inception, the test framework has now grown into more than a hundred test scenarios each encompassing a single or multiple User Stories. The test automation framework has matured and proven to be very effective picking up any inadvertent changes to both the frontend and backend. The test framework runs on an ephemeral environment (EC2 instance) on AWS via TeamCity.

In-House Mobile Device Farm

Company: Gallagher Group Ltd

I was assigned this task to design and implement the best way to test our application on mobile devices. The Application supports both iOS and Android devices as a hybrid app. We acquired a Mac mini, an iPhone 7, a Samsung Galaxy S7 and an iPad 4 mini especially for this project. The Mac mini was used to test the Application on both standard and mobile Safari browsers using real and simulated iPhone devices. We use WebDriverAgent to remotely control iOS devices. Multiple Virtual Machines running on macOS are provisioned on the physical Mac mini to provide capability for parallel testing multiple iOS simulators. Android testing is done on Linux machines using both real and emulator devices. The Test Automation Framework execute tests in such a way that localhosts provide the resources for the browsers while the test scripts are running on AWS Cloud by using Selenium Grid.

Evaluation of Third-Party Mobile Device Farms

Company: Gallagher Group Ltd

Before the in-house device farm was implemented, I have evaluated multiple third-party cloud-based mobile device farms to assess whether our test framework can be run effectively run on their platforms. The following third-party devices farms were evaluated:

* - This was before TestObject was acquired by Sauce Labs.
During evaluation, our test automation framework was successfully run on their platforms except for AWS Device Farm. The test script was running either on our local machines or AWS EC2 instances but directed to use the third-party mobile device farm's browser resource simply by modifying our Selenium desired capabilities. Since we are using Ruby for our test framework, only AWS Device Farm needed to be migrated to Python.

Test Automation Framework for Recordbase

Company: Wild Bamboo Ltd

I was hired at Wild Bamboo mainly to create a Test Automation Framework from scratch. I had full autonomy on the design and implementation of the entire test framework although I did have some essential advice from the developers. I decided to use Python as the scripting language and Selenium as the test automation library. The main objective to cut down regression time by automating most test cases every feature release. The main product is called Recordbase, a web-based client manangement tool used by organizations that work in the social sector. The product has a lot of features, from keeping client records to generating reports. The test runner was a custom Python script that collects and parses individual test case scripts. The test result was saved in log file also in customized format.

Raw Bit Processing Network Packets Test

Company: Endace Technology Ltd

Endace developed a new feature on one of it patented DAG cards product line. This feature allows the capture of raw bits (Level 0) on the network. It is agnostic to any protocol or bit rate. The information is encapsulated in a propietary Endace frame format. My task was to automate and verify that the network card captures raw bits correctly regardless of any network protocol and bit rate. Raw bits capture was tested on the following networks:

  • Ethernet - 1/10/1000 Mbps to 10 Gbps and 100 Gbps
  • SONET/SDH - OC-3 to OC-48/STM-1 to STM-16