Logo

Navigation
  • Home
  • Services
    • ERP Solutions
    • Implementation Solutions
    • Support and Maintenance Solutions
    • Custom Solutions
    • Upgrade Solutions
    • Training and Mentoring
    • Web Solutions
    • Production Support
    • Architecture Designing
    • Independent Validation and Testing Services
    • Infrastructure Management
  • Expertise
    • Microsoft Development Expertise
    • Mobile Development
    • SQL Server Database and BI
    • SAP BI, SAP Hana, SAP BO
    • Oracle and BI
    • Oracle RAC
  • Technical Training
    • Learn Data Management
      • Business Intelligence
      • Data Mining
      • Data Modeling
      • Data Warehousing
      • Disaster Recovery
    • Learn Concepts
      • Application Development
      • Client Server
      • Cloud Computing Tutorials
      • Cluster Computing
      • CRM Tutorial
      • EDI Tutorials
      • ERP Tutorials
      • NLP
      • OOPS
      • Concepts
      • SOA Tutorial
      • Supply Chain
      • Technology Trends
      • UML
      • Virtualization
      • Web 2.0
    • Learn Java
      • JavaScript Tutorial
      • JSP Tutorials
      • J2EE
    • Learn Microsoft
      • MSAS
      • ASP.NET
      • ASP.NET 2.0
      • C Sharp
      • MS Project Training
      • Silverlight
      • SQL Server 2005
      • VB.NET 2005
    • Learn Networking
      • Networking
      • Wireless
    • Learn Oracle
      • Oracle 10g
      • PL/SQL
      • Oracle 11g Tutorials
      • Oracle 9i
      • Oracle Apps
    • Learn Programming
      • Ajax Tutorial
      • C Language
      • C++ Tutorials
      • CSS Tutorial
      • CSS3 Tutorial
      • JavaScript Tutorial
      • jQuery Tutorial
      • MainFrame
      • PHP Tutorial
      • VBScript Tutorial
      • XML Tutorial
    • Learn Software Testing
      • Software Testing Types
      • SQA
      • Testing
  • Career Training
    • Career Improvement
      • Career Articles
      • Certification Articles
      • Conflict Management
      • Core Skills
      • Decision Making
      • Entrepreneurship
      • Goal Setting
      • Life Skills
      • Performance Development
      • Personal Excellence
      • Personality Development
      • Problem Solving
      • Relationship Management
      • Self Confidence
      • Self Supervision
      • Social Networking
      • Strategic Planning
      • Time Management
    • Education Help
      • Career Tracks
      • Essay Writing
      • Internship Tips
      • Online Education
      • Scholarships
      • Student Loans
    • Managerial Skills
      • Business Communication
      • Business Networking
      • Facilitator Skills
      • Managing Change
      • Marketing Management
      • Meeting Management
      • Process Management
      • Project Management
      • Project Management Life Cycle
      • Project Management Process
      • Project Risk Management
      • Relationship Management
      • Task Management
      • Team Building
      • Virtual Team Management
    • Essential Life Skills
      • Anger Management
      • Anxiety Management
      • Attitude Development
      • Coaching and Mentoring
      • Emotional Intelligence
      • Stress Management
      • Positive Thinking
    • Communication Skills
      • Conversation Skills
      • Cross Culture Competence
      • English Vocabulary
      • Listening Skills
      • Public Speaking Skills
      • Questioning Skills
    • Soft Skills
      • Assertive Skills
      • Influence Skills
      • Leadership Skills
      • Memory Skills
      • People Skills
      • Presentation Skills
    • Finding a Job
      • Etiquette Tips
      • Group Discussions
      • HR Interviews
      • Interview Notes
      • Job Search Tips
      • Resume Tips
      • Sample Resumes
 

What is Performance Testing

By Exforsys | on January 1, 2012 |
Software Testing Types

Performance testing is a kind of testing that determines the speed and effectiveness of a software application or suite. This process will involve many quantitative tests carried out in a laboratory like the measurement of the response period or the number of millions of instructions per second (MIPS) at which the system will function and perform. Software testers also evaluate and inspect many qualitative parameters like reliability, fidelity, trustworthiness, scalability and inter-operatability.

Topics

  • Performance Testing Considerations
  • Performance Testing Vs Stress Testing
  • Performance Testing Guidelines
  • Conclusion

Performance testing has the ability to verify that a particular system meets all specifications as claimed and owned by its creator. The testing process can compare two or more programs related to several parameters like speed, transfer of data rate, bandwidth, efficiency and reliability.

You can also use performance testing as a diagnostic tool to detect bottlenecks in communication technology. A system can work very well when you resolve a problem at a single or solitary point or within a single component. Slow data transfer rate is a common hardware related issue, but it could also relate to software related problems like:

  • Too many, different applications running simultaneously
  • A corrupted file or folder tucked within a Web browser
  • An apparent security exploit or weakness
  • Conflicting antivirus software running on background
  • An active malware or spyware in the system

A result oriented performance test can quickly and easily identify and find the exact nature or location of a software-related performance problem. The main purpose of using performance testing is to remove the bottlenecks and pitfalls within the software to create a platform for future regression testing.

Performance Testing Considerations

You will need to consider two important things when you are conducting a performance test. The first thing to consider is the load related to the http connections and the concurrent users. The next consideration is the response time of the software, whether it is acceptable or not. Once you go past these activities, it is possible to increase the system tasks of the application that eventually help you to see for possible bottlenecks.

Let us take the example of an internet application to consider multiple levels where such errors can occur:

At the application level: Obviously, the first level is the application level. By using profilers, you can detect where the inefficiencies are.

At the database level: This is the second level that you need to test. You can use query to optimizers and many specific profilers in this level.

At the operating system level: You can use different types of utilities to perform the test. These utilities may include such resources as the vmstat, the iostat, and the top, while hardware resources will include the memory, the CPU, and the disk. You can even use kernel-monitoring program at this level.

At the network level: This is the last level. You can use packet sniffers like the network-protocol analysis tools and the tcp dump at this level.

Performance Testing Vs Stress Testing

Performance testing may look similar to stress testing. Whereas, in stress testing, the sheer numbers of outstanding tasks may overwhelm the entire system. Another goal of stress testing is to test the tolerance of the application by lessening the quantum of resources taken to process data. However, with this approach it becomes almost difficult to pinpoint the exact area where errors and bugs occur. In essence, the main goal of using a stress tests it to break the application so that there is nothing wrong with these methods.

Performance testing runs in a controlled environment along with some controlled processes so that you can measure and analyze the data in an efficient manner. You may need to conduct performance testing to ensure stable and robust applications.

Performance testing is an effective and practical usability evaluation of a working system under real-life conditions to identify and detect many usability problems, and to compare different measures like success rate, task time and user satisfaction with differing requirements. One of the critical goals of this test is to empower the software developers to set a benchmark against the system that is under the test.

Stress testing and performance testing are two tests that relate to each other. Stress test, load test and the performance test should test different levels of performance of a software application. However, testers may confuse between performance test and load test as they have some similarities and likeness.

The first thing that you should note here is to check whether the application code is checked properly on the server where you are conducting the test. If you feel that you are checking it properly, then you will be conducting a performance test. If not, you are most likely running a load test or even a stress test. Whether the test is leaning towards either black box testing or white box testing, could give you an idea about the test you will be conducting.

If you use more of white box testing to check your software system, then you are conducting a performance testing procedure. You will need to learn how to apply the application codes together to query the database. To query the database, you will need different tools like the top, the vmstat, and the iostat.

To say it differently, if you apply white box testing approach to performance testing, then you would be using black box testing in the load testing approach. In load testing, you may need to run the application against the load tools so that you can measure the responsiveness of the software.

Most common tools that you can use to test are the openload, the Apache Flood, and the httperf. On the contrary, you will need to use the JMeter and the Grinder if you need heavy-duty tools. With all these perceived differences, you can still note that both load testing and performance testing have something in common because both of them use load tools  to be test the application.

Performance Testing Guidelines

Here are some of the prescribed guidelines to determine if the procedure is actually effective or not:

  1. Start connecting the web server to database server. If possible, place both of them behind a firewall. On the contrary, if you want to balance the load later, then you may need to place the server on a load balancer. Now, you will have a system of servers working under natural conditions.
  2. You will need to run a test on the server by initiating with at least ten numbers of concurrent users until it reaches a hundred requests in increments of ten.
  3. There will be some specific spots that will need further improvements when you are working on profiling the application
  4. Here, you have the necessary set of information about the software performance. If you find any serious issues about response time, then you will need to traverse back to the code to repeat profile measurements and fix the problems.
  5. Later, you may need to verify whether the server is acting properly and make it work under the actual environment.

A precise and well-defined set of expectations is quite essential for result oriented performance testing. If you do not know where you want to venture in terms of the performance of the system, then does not matter which route you take.

For example, for a Web application, you will need to know the following two issues:

  • Expected load in terms of concurrent users or HTTP connections
  • Acceptable response time

Once you know where you want head or where you want to be, you can start on your way to reach the destination, by constantly increasing the load on the system while looking for possible weaknesses or bottlenecks.  In a typical web development scenario, when you have more than hundred concurrent users working in the back of the database with a response time of three seconds or less, then you will need to ensure that the software is meeting the said requirements.

Conclusion

Performance is an indicator of how efficient a software system or its component meets its requirements for timeliness. As indicated before, one of the key objectives of performance testing is to discover or uncover problems when the system is run under specific workloads.

Performance requirements should come in a concrete, verifiable manner so that you can confirm the efficiency of the software applications.  The main goal of performance testing is not to find any bugs, but to eliminate and prevent weaknesses and bottlenecks, and to establish a solid baseline for future regression testing. To conduct performance testing is to work in a well-controlled process of different types of measurements and analyses. Ideally, the software under test is stable and robust enough, so that this process can proceed smoothly without any hitches.

« « What is Negative Testing
What is Data Recovery Testing » »

Author Description

Avatar

Editorial Team at Exforsys is a team of IT Consulting and Training team led by Chandra Vennapoosa.

Free Training

RSSSubscribe 394 Followers
  • Popular
  • Recent
  • What is Incremental Integration Testing

    December 8, 2011 - 0 Comment
  • What is Usability Testing

    February 16, 2012 - 0 Comment
  • What is Cross Browser Testing

    July 25, 2011 - 0 Comment
  • What is Install and Uninstall Testing

    December 10, 2011 - 0 Comment
  • What is Stress Testing

    February 15, 2012 - 0 Comment
  • What is Black Box Testing

    June 3, 2011 - 0 Comment
  • What is Load Testing

    December 12, 2011 - 0 Comment
  • What is White Box Testing

    February 22, 2012 - 0 Comment
  • What is Comparison Testing

    June 4, 2011 - 0 Comment
  • What is Monkey Testing

    December 17, 2011 - 0 Comment
  • What is White Box Testing

    February 22, 2012 - 0 Comment
  • What is Usability Testing

    February 16, 2012 - 0 Comment
  • What is Stress Testing

    February 15, 2012 - 0 Comment
  • What is Static Testing

    February 10, 2012 - 0 Comment
  • What is Smoke Testing

    February 6, 2012 - 0 Comment
  • What is Security Testing

    January 27, 2012 - 0 Comment
  • What is Sanity Testing

    January 23, 2012 - 0 Comment
  • What is Regression Testing

    January 11, 2012 - 0 Comment
  • What is Data Recovery Testing

    January 9, 2012 - 0 Comment
  • What is Negative Testing

    December 27, 2011 - 0 Comment

Exforsys e-Newsletter

ebook
 

Related Articles

  • What is White Box Testing
  • What is Usability Testing
  • What is Stress Testing
  • What is Static Testing
  • What is Smoke Testing

Latest Articles

  • Project Management Techniques
  • Product Development Best Practices
  • Importance of Quality Data Management
  • How to Maximize Quality Assurance
  • Utilizing Effective Quality Assurance Strategies
  • Sitemap
  • Privacy Policy
  • DMCA
  • Trademark Information
  • Contact Us
© 2023. All Rights Reserved.IT Training and Consulting
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT