Saturday, 15 August 2015

MT - 55 - Spiral Model !

Spiral model is one of the best models that may be used for risk-based projects. In this model more emphasis is given on risk analysis. The spiral model is favored for large, expensive, and complicated projects.The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model.It has basically following four phases :

Planning Phase/Determine Objective: Requirements are gathered during the planning phase. Requirements like ‘BRS’ that is ‘Bussiness Requirement Specifications’ and ‘SRS’ that is ‘System Requirement specifications’. This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase.This also includes understanding the system requirements by continuous communication between the customer and the system analyst. At the end of the spiral the product is deployed in the identified market.

Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. Risk Analysis includes identifying, estimating, and monitoring technical feasibility and management risks, such as schedule slippage and cost overrun. A prototype is produced at the end of the risk analysis phase. If any risk is found during the risk analysis then alternate solutions are suggested and implemented.

Engineering/Design Phase: In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done. Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and final design in the subsequent spirals.

Evaluation phase: This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.after testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.

These all phases keeps on rotating in spiral.After one spiral the planning includes the plans for next iterations and so on. Although this is a complex model but can be used to risk-based projects.




Advantages : 

- Changing requirements can be accommodated.

- Allows for extensive use of prototypes

- Requirements can be captured more accurately.

- Users see the system early.

- Development can be divided into smaller parts and more risky parts can be developed earlier which helps better risk management.

- A highly customized product can be developed using this.

Friday, 14 August 2015

MT - 54 - SOAK/Endurance Testing !

Also known as endurance testing , soak testing is done to see the behaviour of the system after giving load for a prolonged period of time.Soak Testing is the form of Performance Testing, which incorporate testing a system with expressive load extended over an expressive period of time, to discover how the system and product behaves under repeated use.

As an example we can take the closing of the banks that are done at the end of year. At this time there is a huge load on the server for a prolonged period of time. At this time we would not want the application to crash or show slow response time, so endurance testing is done.

 A soak test would generally execute some times more transactions in an entire (full) day (or night) that intend be expected in a busy day, to distinguish any performance issues that appear after a immense number of transactions have been executed.A soak test also called an endurance test is generally done to originate whether an application can handle with the continuous expected load. A soak test is also used to audit whether there is any performance degradation afterwards a long period of activity.The goal is to discover how the system behaves under sustained use. That is, to ensure that the throughput and/or response times after some long period of sustained activity are as good or better than at the beginning of the test.It may also be used to check memory leaks and failure of the application over a long period of time.

MT - 53 - Spike Testing !

Spike Testing is a form of load testing process in which an application is tested with unusual increment and decrements in the load. The system is unexpectedly loaded and unloaded. It is done to notice how actually the system reacts with unexpected rise and decline of users.

Spike testing is mechanism of testing which means when in a web page frequent number of visitor access the page unexpectedly increases to maximum then obviously performance of the page breaks down. So the mechanism of testing a performance about web page due to unexpected sort of traffic on the page is always called as Spike testing.

Spike testing is usually done by unexpectedly increasing the number of loads generated by users by a very enormous amount and observing the dramatic behavior of the system.The goal of spike testing is to regulate whether performance will deteriorate, the system will always fail, or it will be able to hold dramatic changes in load.




Spikes represent the sudden rise and fall of number of users


As an example we can take the exam results declaration. Suppose the results will be declared at 9.00 A.M. So exactly at 9.00 A.M. the load will increase suddenly for a particular period of time. So this sudden rise and file needs to be tested for an application .

MT - 52 - Volume testing!

Volume testing is a kind of non-functional testing. As the name says the volume testing is performed to see the behave of the system over a large volume of data.
As an example we can take an application which is performing very well but there are very users for that application. But in future the number of users will keep growing and growing. Hence we would want to see the response of the system over a larger volumes.The purpose of volume testing is to determine system performance with increasing volumes of data in the database.
Also we can take an example of online ticket booking. Suppose a alrge number of users started booking tickets. So here we need to see that how the system is responding over a large volumes. We can also  check that the correct data is saved without failure.
Volume test shall check if there are any problems when running the system under test with realistic amounts of data, or even maximum or more. Volume test is necessary, as ordinary function testing normally does not use large amounts of data,rather the opposite.

MT - 51 - Stress Testing !

Like load testing stress testing is also non-functional testing. Stress testing is a generic term used to describe the process of putting a system through exertion or stress. The Stress test can combine aspects of performance testing and security testing. It is performed to see the behaviour of the system beyond its maximum capacity. It may be used to find the breaking point of the system where the system starts behaving abruptly.Stress tests commonly put a greater emphasis on robustness, availability, and error handling under a heavy load, than on what would be considered correct behaviour under normal circumstances.

Lets take an example that on an application there are maximum of 1000 visitors on the daily basis. Now to perform stress test we will see the behave of the system beyond 1000 users. We will observe the throughput and response time  at increased loads beyond 1000. We keep on increasing the load until the system breaks.

MT - 50 - Load Testing!

Load testing is a kind of non-functional testing which is all about measuring response of the application on the given load to measure the response and see the behaviour of system.A load test enables you to measure response times, throughput rates, and resource-utilization levels, and to identify your application’s breaking point, assuming that the breaking point occurs below the peak load condition.Load testing is done to see the behaviour of the system on the given controlled load whether its normal or too high. It helps seeing the behaviour of the system at different expected loads.It involves simulating real-life user load for the target application. It helps you determine how your application behaves when multiple users hits it simultaneously.

Lets take an example of the application which is having 1000 users on the daily basis and criteria given is that the response time should not be more than 2 seconds. So now to do the load testing we start measuring the response of the system from a low load. Suppose we start at 40 users then we keep on increasing till it reaches 1000 and at different stages we measure its response.Its done in such way because there may be possibility that on the load of 100 users the response time becomes 5 seconds so there will be no use of testing it at heigher load.

The primary goal of load testing is to define the maximum amount of work a system can handle without significant performance degradation on a given controlled load.

Tools Used : Load Runner , Jmeter