Python Code Refactoring
A Fortune 500 storage systems and software company engaged Trianz to refactor its existing AWS scripts to Python based framework for testing functional scenarios enabled by the E Series hardware application.
Business Challenge
The client’s existing scripts were written in “Action word scripts” and executed in JRE, which was complex and hard to understand. The initial requirement was to convert approximately 500 test case scripts to a single python-based testing framework as per the client’s coding standards, which was reduced to 162 test case scripts. The testing script should leverage the REST API based integration to test and validate the results. The design and development of libraries and fixtures were also a part of the project scope.
Technology Components
Python, AWS
Approach
Followed the Agile delivery methodology considering each milestone as a sprint for the entire project duration of 6 months.
Executed daily internal scrum calls with 9 developers and Project manager acting as scrum master as well as with the NetApp team and onsite architect at the end of the day. Client SMEs joined weekly scrum calls based on requirement or on rotational-basis.
Conducted Check Point reviews a week before the Toll Gate Review which was followed by the release to the client a week later. If all the requirements aren’t met during the review, the Delivery Assurance team can take a call to stop the release to the client until all the delivery issues are closed.
Every script and library was reviewed by a dedicated offshore Technical Lead
Transformational Effects
Converted and delivered 162 Action word scripts to PyNT
Designed and developed Pit & feature verification libraries
Delivered 46 libraries for different categories of AWS scripts; 5 fixtures were incorporated in PyNT scripts for further refinement and 18 new functions developed to avoid duplication of code in scripts
Created 5 additional libraries for the issues encountered by NetApp
Developed 15 PyCharm templates to increase the efficiency of the team by reducing the time taken for repeat or default steps in multiple scripts