Office location: Shelford, Cambridge
Job title: Test Engineer
What I got up to at StarLeaf...
As part of my role at StarLeaf testing their software and hardware systems, I learnt a number of skills and techniques surrounding testing protocol and organization and how test is crucial to StarLeaf’s release process: I developed test cases and processes and performed these tests, being aware of different testing priorities (sanity, regression, new feature testing) and when these are appropriate to be performed. I made decisions regarding test prioritization and fate of builds being released based on my testing of them: for instance, deciding how thoroughly to test a build based on its ultimate destination and whether or not to block a release depending on how I thought it performed during testing. I gained an awareness of testing both general functionalities as well as bug verification and incorporated new features, verified bugs and behavioral changes into existing tests when appropriate. I worked with my team to continually develop a testing framework and release process in order to streamline app development by delivering feedback to the developers faster. Additionally, to this, I took part in weekly
meetings with the software and firmware developers to ensure both test and development were aware of latest changes to the codebase, each team’s respective priorities and how to most efficiently cooperate to achieve our goals. I’ve also been involved in creating test documentation detailing how to run more complicated tests (such as automated tests) and our testing flowchart, and amended these over time as improvements to the process were developed. I spent a lot of time thinking about and organizing TestRail: ensuring our test cases were up to date, sorted correctly and consistent across all platforms. I also learned how to release test and live builds to our test groups and customers using our firmware script, iTunesConnect and Google Play store release management, and was trusted with the responsibility to push builds to right places when I determined they should be.
On top of my usual testing responsibilities, I also worked on a test side project programming Python automated tests for the iOS version of the company’s application. This involved tackling compatibility issues seen between the test server software we were using and the application, initially tackling these issues by developing tests using the hardware simulator until we understood how to run the tests on a real device. We had to think about ways to emulate customer behavior using automation and continually minimizing the need for human input, such as by using existing StarLeaf infrastructure to call and control other devices in order to fully complete tests. We now have a near-complete set of automated sanity tests and an automated testing framework, and I have programmed an iOS autotest script and set this up to run on a dedicated machine for whoever wishes to test iOS builds. I also worked on automating adding test cases to our regression tests in order to further streamline the test organization process: I wrote a script into which you can input new test cases and these will be automatically added to the correct tests in TestRail across multiple platforms. I expect the automated testing framework will be worked on further after I’ve left since it requires work to make it more stable. Perhaps one day the entire sanity and regression test case bank will be fully automated!