Speed has become one of the differentiating factors for business and each business wants to drive users towards it. Without speed, users don’t prefer to re-visit the site / app. Performance hence has become an extremely important attribute to be desired. This is the reason why performance testing is increasing across the globe. It is also becoming extremely important to develop one’s skill in such a conceptual area where in lot of knowledge regarding technology and tools to be used is desired. Performance testers are not just looked as testers but as engineers who could optimize the application to increase its performance. It is thus essential to develop expertise in this domain.
As I just mentioned, that there is a lot to learn and thus a lot of resources available to refer to. It is however important to understand what are the key areas that one should start with and how should he take his exploration ahead to learn the key aspects quickly so as to deliver to the projects early into the phase. Focus on those key areas is essential and I have thus highlighted few items over here which readers can pay key attention to and understand importance of.
It is very essential to properly understand the performance testing concepts and then apply those while working on the projects. Unless there is an application of the knowledge and a practical setting, it would be difficult to visualize what all of the concepts are trying to explain. I would thus recommend readers to have a dummy application available with you while trying to understand at least the advanced concepts. A lot of material is available on the internet which one can refer to while understanding the basics. It is essential to understand the business importance of each of the concept to understand it more clearly.
- Testing tools: To expertise in performance testing, getting the tool knowledge is extremely critical since most projects use some or the other tool to test the application. The tool can be used for scripting, test execution, report analysis and in some cases for server monitoring too. As one spends more and more time on tool in understanding its features, he gains more expertise on the tool. It is however important to look at each functionality from its business importance perspective. That will help the tester visualize and understand its usage in a better way.
- Analysis tools: In case of some tools’ analysis capabilities are built in and the same tool (or a component of the tool) can be used to analyze the data gathered over the test. However in some other cases, the scripting tool may not provide data gathering and analysis capabilities. In such cases an external tool is built that gathers the data and presents it in a readable format which further can be analyzed over excel or any other data analysis tool. Spending a good time on such analysis tools also helps since each of those come with tons of feature and functionalities which take time to learn.
- Monitoring tools: Similar to analysis tools, many scripting tool vendor provide monitoring tools built in with the scripting tools however many other do not. So based on the infrastructure available, it is essential to get expertise on monitoring concepts and tools and provide insights to business teams through the monitored details obtained while sharing the results. This will help tester further enhance his knowledge and skills.
- Practice makes man perfect: As you script more, more you learn and simpler it becomes for you to use your knowledge for the next part of scripting. More and more practice enhances your skills to write code and to use functions available in the tool library.
- Test – Fail – Re-test – Succeed: Every tool comes with a lot of key features and many of those could be used in your test either to achieve a production like test or to simplify your testing experience. For some new tools, sufficient literature may not be available (or if available, may not be easy to gather). For such scenario, it is better to understand tool functionality by using it in your test. You might fail at first instance or at more attempts but as you try you will get more and more information about the functionality and would eventually be able to make use of it in your tests whenever required.
- Best practices: A lot of material is available on the internet on ‘best practices’ topic. While writing scripts keeping those best practices available in front of your desk or in your mind (if you can remember them all) helps a lot. This helps you write good scripts and makes you’re a great coder.
- Be consistent: While writing your scripts it is extremely helpful to maintain consistency. Being consistent in the naming convention, indentation and commenting habits help not only you while going through the scripts the next time but also any other team member who would eventually have to use the same script to run it for tests.
- File and folder organization: Being organized helps and yes it helps while scripting too. One should try to appropriately name the scripts and keep those organized in right folders while saving those. Yes it takes some time to organize things but the time saved later would be sufficiently large as compared to what gets invested in organizing things.
An analytical mind – Road to success
Every decision when taken while selecting an option over another must have a logical reason behind it. That would help one evaluate the weightage of different situations and make one understand concepts, implement those and explain those to others in a better day. All of these aspects can help you be an expert!!!
It’s a slow and steady process but goal oriented action, right approach and being focused would help you master the process and be an expert.