This time my focus goes to the performance testing ultimate work force which we can call as a Performance Testing Team and their growth.
When doing performance testing as a separate service, we need to build a unique team to deliver the service with quality results. This is not an easy task because all the team members should work as a team and need to gather a lot of knowledge regarding performance engineering and optimization principles. According to my experience, application performance assessment is very broad area when compared with other services. Because we need to know End to End cycle of the application and its architecture to give a good assessment. We need to know the DB technologies, Network related frameworks, Product architecture and the infrastructure of that system.
Altogether, this is not just a nonfunctional testing type, but an engineering discipline which needs a lot of technical expertise + performance testing specific knowledge. Hence, the Performance Test Team should have a very good and clear career path to avoid the issues related to motivation and retention in performance engineering track. So in the following area I have mentioned a career model which created using several industry models that suitable to our standards.
When doing performance testing as a separate service, we need to build a unique team to deliver the service with quality results. This is not an easy task because all the team members should work as a team and need to gather a lot of knowledge regarding performance engineering and optimization principles. According to my experience, application performance assessment is very broad area when compared with other services. Because we need to know End to End cycle of the application and its architecture to give a good assessment. We need to know the DB technologies, Network related frameworks, Product architecture and the infrastructure of that system.
Altogether, this is not just a nonfunctional testing type, but an engineering discipline which needs a lot of technical expertise + performance testing specific knowledge. Hence, the Performance Test Team should have a very good and clear career path to avoid the issues related to motivation and retention in performance engineering track. So in the following area I have mentioned a career model which created using several industry models that suitable to our standards.
In this model, I have defined 3
major levels and the information is as follows:
1.
Software Performance Engineer (First he/she
should come as Associate > Engineer > Senior Engineer)
Responsibilities:
·
Performs identified performance tests like load,
stress, endurance etc.
·
Understands the available workflows for test
script generation
·
Create workload models by working with
development team.
·
Executes test scripts with the required workload
at various points.
·
Monitors and captures performance statistics of
various system components like servers, databases, etc.
·
Collects defects and monitor.
·
Prepare required reports
Skills:
·
Need to have a BSc degree in Computer science or
information Technology
·
Good communication skills
·
A performance tester needs to have the good knowledge
of OOP principles
·
Need to have good analytical and problem solving
skills, a conceptual understanding of the network, operating systems, web servers
& database architecture, etc.
·
A performance test engineer needs to have the very
good knowledge of at least one standard industry performance testing tool.
2.
Software Performance Lead (First he/she should
come as Associate > Lead > Senior Lead)
Responsibilities:
·
Helps to define performance testing objectives
and strategy.
·
Designing of the test script and define the
available workflows for test script generation
·
Monitor test scripts with the required workload
at various points.
·
Verify performance statistics of various system
components like servers, databases, etc.
·
Customizes scripts for simulating business
transactions
·
Work with testing team to develop performance
test plans and cases.
·
Conduct job trainings and provide assistance to
Junior Test Engineers as needed.
·
Create the platform to automate test scenarios
and environments for performance testing.
·
Suggest new tools and techniques to improve
testing efficiency
·
Generate test summary reports for review
Skills:
·
Need to have a BSc degree in Computer science or
information Technology
·
Very good communication and negotiation skills
·
Good experience in performance testing service
model and the implementation.
· Knowledge of performance testing core principles and their usage
·
Need to have very good analytical and problem
solving skills
·
Good understanding of the network, operating
systems, web servers & database architecture, etc.
·
Very good knowledge in testing tools and related
technologies
·
A sound knowledge in performance testing matrixes/
counters, various application technologies and the concepts of load simulation
3.
Software Performance Architect (First he/she
should come as Associate > Architect > Senior Architect)
Responsibilities:
·
Define performance testing objectives (Short
term and long term).
·
Implement performance Testing service in the
company
·
Build and maintain Performance engineering
activities and benchmarking.
·
Verifies and validates workload models.
·
Provide support in project design, development
activities which related to the application performance.
·
Build and verify CI automation environment
·
Review and recommend improvements to existing
test strategies
·
Capacity planning and predicts the system
performance for the future.
·
Work with developers and the management to
develop performance testing culture at the company
·
Assist in project budgeting and resource
planning activities.
·
Generate test final reports for management
review
Skills:
·
Need to have a BSc or MSc degree in Computer science
or information Technology
·
Thorough knowledge in project management and
team handling.
·
Excellent communication and negotiation skills
·
Needs to have an excellent knowledge of testing
tool architecture and the distributed load mechanisms.
·
Strong problem analysis and solving skills
·
Thorough understanding of the network, operating
systems, web servers, database and application architecture.
·
Excellent knowledge in performance testing matrixes/
counters, various application technologies and core principles and their usage
·
Thorough knowledge regarding performance testing
process and strategies
·
Excellent knowledge of the relevant and current
industry trends.
Carrier path for a Software performance engineer is well defined in here.
ReplyDeleteAs performance engineering is quite new to most of the companies, this post would be valuable for them to declare a clear carrier path for performance engineers.
We love to see a "Performance-oriented" software development culture in Sri Lankan software companies in near future.