System testing is defined as a testing phase conducted on the complete integrated system, to evaluate the system compliance with its specified requirements. A system is complete set of integrated components that together deliver product functionality and features.

System Testing: Overview

system testing
  • Save

A system can also be defined as a set of hardware, software and other parts that together provide product features and solutions. On the functional side, system testing focus on real-life customer usage pf the product and solutions.

On the non-functional side, system brings in different testing types also called quality Tactors, some of which are as follows:

1. Performance/Load testing – To evaluate the time taken or response time of the system to platform its required functions in comparison with different versions of same product or a different competitive product is called performance testing.

2. Scalability testing – A testing that requires huge amount of resource to find out the maximum capability the system parameters is called scalability testing.

3. Reliability testing – To evaluate the ability of the system to perform its function repeatedly for a specified period of time is called reliability testing.

4. Stress testing – Evaluating a system beyond the limits of the specified requirement to ensure the system does not break down unexpectedly is called stress testing.

5. Interoperability testing – This testing is done to ensure that two or more products can exchange information, us the information, and work closely.

6. Localization testing – Testing conducted to verify that the localized product works in different languages is called localization testing.

Why is System Testing Done?

An independent test team normally does system testing.
The behaviour of the complete product is verified during system testing

Tests that refer to multiple modules, programs, and functionality are included in system testing. System testing helps in identifying as many defects as possible before the customer finds them in deployment.

System testing is conducted with an objective to find product level defects and in building confidence before the product is released to the customer. To summarize, system testing 1s done for the following reasons. Provide independent viewpoint in testing. Bring in customer perspective in testing.

Provide a fresh pair of eyes to discover defects not found earlier by testing Test product behaviour in a complete and realistic environment Test both functional and non-functional aspects of the prediction Build confidence in the product.

Analyse and reduce the risk of releasing the product. Ensure all requirements are met and ready the product for acceptance testing.

Advantages of System Testing  It covers a complete end to end software testing. The business requirements and System software architecture are both tested in system testing.

System testing help in relieving after production goes live issues and bugs. J System testing is run in a situation like a production condition or some of the time it is finished with production parallel test condition where the same data input is feed to the exiting framework and new framework to look the differences in functionalities removed and added.

This causes the client to understand the new framework better and feel great with new functionalities included or existing functionalities revised or removed.

Disadvantages of System Testing

  • As it needs to test the entire framework it requires a lot of time
  • Releving upon the business necessities and application architecture cost may also increase.

 Categories: Reliability Security Performance Recovery

Reliability:

Reliability Testing is a software testing process that checks whether the software can perform failure-free operation for a specified time period in a particular environment. The purpose of Reliability testing is to assure that the software product is bug free and reliable enough for its expected purpose.

Reliability means “yielding the same,” in other terms, the word “reliable” means something is dependable and that it will give the same outcome every time. The same is true for Reliability testing.

Factors Influencing Software Reliability :
  1. The number of faults presents in the software
  2. The way users operate the system

Reliability Testing is one of the keys to better software quality. This testing helps discover many problems in the software design and functionality.

The main purpose of reliability testing is to check whether the software meets the requirement of customer’s reliability. Reliability testing will be performed at several levels. Complex systems will be tested at unit, assembly, subsystem and system levels.

Why to do Reliability Testing:

Reliability testing is done to test the software performance under the given conditions,
The objective behind performing reliability testing is,

  1. To find the structure of repeating failures.
  2. To find the number of failures occurring is the specified amount of time.
  3. To discover the main cause of failure
  4. To conduct Performance Testing of various modules of software application after fixing defect.

After the release of the product too, we can minimize the possibility of occurrence of defects and thereby improve the software reliability. Some of the tools useful for this are – Trend Analysis, Orthogonal Defect Classification and formal methods, etc.

Security:

Security testing involves testing a software in order to identify any flaws and gaps from security and vulnerability point of view. Listed below are the main aspects that security testing should ensure:

  • Confidentiality
  • Integrity
  • Authentication
  • Availability
  • Authorization
  • Non-repudiation
  • Software is secure against known and unknown vulnerabilities
  • Software data is secure
  • Software is according to all security regulations
  • Input checking and validation
  • SQL insertion attacks
  • Injection flaws
  • Session management issues
  • Cross-site scripting attacks
  • Buffer overflows vulnerabilities
  • Directory traversal attacks

Performance:

 It is mostly used to identity any bottle or performance issues rather then finding bugs in software. There are different causes that contribute in lowering the performance of a software.

  • Network delay
  • Client-side processing
  • Database transaction processing
  • Load balancing between servers
  • Data rendering
  • Derformance testing is considered as one of the important and mandatory testing types
  • in terms of the following aspects
  • Capacity
  • Stability
  • Scalability

Performance testing can be either qualitative or quantitative and can be divided into different sub-types such as Load testing and Stress testing.

Load Testing:

It is a process of testing the behaviour of a software by applying maximum load in terms of software accessing and manipulating large input data. It can be done at both normal and peak load conditions.

This type of testing identifies the maximum capacity of software and its behaviour at peak time.

Most of the time, load testing is performed with the help of automated tools such as Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load Test, etc. Virtual users (Users) are defined in the automated testing tool and the script is executed to verify the load testing for the software.

The number of users can be increased or decreased concurrently or incrementally based upon the requirements.

Stress Testing:

Stress testing includes testing the behaviour of a software under abnormal conditions.

For example. it may include taking away some resources or applying a load beyond the actual load limit.

The aim of stress testing is to test the software by applying the load to the system and taking over the resources used by the software to identify the breaking point.

This testing can be performed by testing different scenarios such as Shutdown or restart of network ports randomly Turning the database on or off Running different processes that consume resources such as CPU, memory, server, etc.

Recovery:

recovery
  • Save

Recovery Testing is software testing technique which verifies software’s ability , recover from failures like software/hardware crashes, network failures etc.

The purpose of Recovery Testing is to determine whether software operations can he continued after disaster or integrity loss.

Recovery testing involves reverting back software to the point where integrity was known and reprocessing transactions to the failure point.

For Example, when an application is receiving data from the network, unplug the connecting cable.

Restart the system while a browser has a definite number of sessions open and check whether the browser is able to recover all of them or not.

  • Power supply failure
  • The external server is unreachable
  • Wireless network signal loss
  • Physical conditions
  • The external device not responding
  •  The external device is not responding as expccted, etc.
  • The time taken to recover depends upon:
  • The number of restart points

A volume of the applications Training and skills of people conducting recovery activities and tools available for When there are a number of failures then instead of taking care of all failures, the recovery testing should be done in a structured fashion which means recovery testing It is done by professional testers.

Before recovery testing, adequate backup data is kept in secure locations. This is done to ensure that the operation can be continued even after recovery.

Recovery Strategy:

The recovery team should have their unique strategy for retrieving the important code and data to bring the Operation of the agency back to normalcy. The strategy can be unique to each organization based on the criticality of the systems they are handling.

The possible strategy for critical systems can be visualized as follows:

  • To have a single backup or more than one
  • To have multiple back-ups at one place or different places
  • To have an online backup or offline backup

Can the backup be done automatically based on a policy or to have it manually? To have an independent restoration team or development team itself can be utilized for the work.

Advantages of Recovery Testing:

  • Improves the quality of the system by eliminating the potential flaws in the system so that the system works as expected.
  • Recovery testing is also referred to as Disaster Recovery Testing.
  • A lot of companies have disaster recovery to make sure that if any of the systems is damaged or fails due to some reason, then there is back up to recover from the failure.
  •  Risk elimination is possible as the potential flaws are detected and removed from the system.
  • Improved performance as faults is removed and the system becomes more reliable and performs better in case a failure occurs.

Disadvantages of Recovery testing:

  • Recovery testing is a time-consuming process as it involves multiple steps and preparations before and during the process.
  • The recovery personnel must be trained as the process of recovery testing takes place under his supervision. So, the tester needs to be trained to ensure that recovery testing is performed in the proper way.
  • For performing recovery testing, he should have enough data and back up files to perform recovery testing.
  • The potential flaws or issues are unpredictable in a few cases. It is difficult to point out the exact reason for the same, however, since the quality of the software must be maintained. so random test cases are created and executed to ensure such potential flaws are removed.

Follow on Twitter

New Post

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *