Do you understand the Agile? I have shared my understanding here; give it a read.
The eighth question from season two of 100 Days of Skilled Testing is:
Can you share some best practices for conducting performance tests within an Agile development environment?
Best Practices and the Agile
Performance in Waterfall and Agile
I learn, the performance is an experience. It does not differ because of the Waterfall or Agile. If the performance is not a pleasing experience, it will impact stakeholders no matter it is Waterfall or Agile.
What is your practice to evaluate the performance right from the start of product development in your project?
The Culture of Engineering
At the start and end of the day, when we developers start and finishes the work,
- How the work is done and why, is defined by the engineering culture practiced by that organization.
- The Performance Engineering of the software products and solution being built will be driven the by the culture practiced.
The Test Engineering and how we test and automate will be driven by the culture of engineering practiced in the organization.
Testing for Performance - Where to Start?
- What is the minimum viable questioning performance tests that you have got to test this feature?
- What is the minimum viable questioning performance tests that you have got to test this workflow?
Unit Tests for Time and Space Complexity
- The execution time taken by the code of that feature - the Big O Notations for space and time complexity
- Usually the Unit Tests focuses on functional tests and clean code practice
- But, when we test team ask and push for performance data, this can come as part of Unit Tests
- An architect or a principal engineer can set an expectation on
- What should be the time and space complexity of a code for a feature?
- Each functions and blocks need to be evaluated on this
- As said earlier, this depends on a engineering practice culture of an organization
- If the culture wants it, it will be there; else just the functional code will be delivered and not the performance code
- If the time and space complexity analysis outcome is not as expected, the code written has to rethought and refactored
- The review process need to put it back
- The comment with data has to be published
- This will be useful to model the performance tests by test engineers who will be working on performance tests
- Doesn't it look a like a effective useful practice as part of Performance Engineering right in the early stage?
- This is very well applicable to projects running on Agile or Waterfall
Do you have this in your project and Unit Tests written?
Profiling Tests by Test Engineers
- Test Engineers can test the feature's code with the help of IDE's profiling (runtime analysis) and collect the performance data by identifying the performance bottlenecks
- This runtime analysis can profile for
- Memory snapshots
- Thread analysis
- Monitoring resources
- CPU and allocation profiling
- And, more
- The problems and risks can be reported upon analysis
- Compare the two different solution's approach performance data
Get Started with Performance Engineering and Tests
- Just do not test for functionality from day one, also test for the performance from the day one.
- Influence your organization's engineering culture and developers not just for developing functional code, but, also for the performance code