Monday, June 28, 2010

Software testing Questions and Answers

Q1. What is Software Testing?
A1. Software testing is the process used to measure the quality of developed computer software. Testing is a process of technical investigation, that is intended to reveal quality-related information about the product with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding errors.

Q2. What is the purpose of Testing?
A2. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing can be used as a generic metric as well. Correctness testing and reliability testing are two major areas of testing. Software testing is a trade-off between budget, time and quality.

Q3. What types of testing do testers perform?
A3. Regression Testing is carried out both manually and through automation. It is mostly done using automation tools, as repeated testing of the same applications is required. It is done to note the changes the application goes through for new functionality, after fixing previous bugs and whether any changes in the design is required. Whenever any change takes place in the Application we should make sure, the previous functionality is still available.

Q4. What is the difference between load testing and intersystem testing?
A4. Inter System Testing: This type of testing is also called end-to-end testing. In this testing, test engineer validates application build co-existence with other software applications.Load Testing: Is also called scalability testing. In this testing, we run the application under customer expected load and customer expected configuration to estimate the load performance
That is, how many users can simultaneously access the application, be it a popular website or a software application.

Q5. What is the difference between load and stress testing?

In Load testing, we actually test the behavior /performance of the software by varying the load on the same from minimum to maximum as specified in the 'Technical Specifications' document.
In Stress Testing, our main intention is to test the software's behavior once it reaches the point where it actually breaks. Here we gradually increase the load while denying more resources (eg. RAM) which are needed to run the same, and test how the application behaves under stressed condition.
Both Load and Stress testing are performed between minimum and maximum specified limits of the application as per the Technical Requirements document.

Q6. What do we analyze in load testing?
A6. We analyze a number of things in load testing, to name a few:1. Response times - Do they appear consistent, is there any degrade over a period of time, or are they higher than what is expected?2. Performance of the hardware components – mid-tier server or the application server, http server, and the database server. The CPU utilization, JVM memory heap of the application server, and the CPU of database server are important for assessing the performance.

Q7. What is the difference between Load testing and Performance Testing?
A7. Performance testing verifies loads, volume and response time as defined by requirements while load testing is testing an application under heavy loads to determine at what point the system response time degrades.

Q8. What are the uses of load testing? What are deferred graphs? And what are the different components in Loadrunner?

Load testing is used to find the minimum and maximum load the application can handle. It ensures the usage of the fixed number of users using the application frequently or concurrently. This exercise is done and ensured using a Load testing tool.
Deferred Graphs give information CPU time usage, Throughput & Response time and the load against the varying number of users.The components are Generator, Controller & Load Runner Analysis.

Q9. What is the difference between Scalability testing & Load Testing?
A9. Load Testing - Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.
Scalability Testing - Scalability testing focuses on the performance of your Web site, hardware and software products, and internal applications at all the stages from minimum to maximum load.