Deployment, Installation, Configuration & Un-installation Testing

Out of all types of QA testing hope this is self-explanatory – testing the software processes of deployment, installation, configuration to specific environment and finally the un-installation. A software should perform as expected post deployment, installation & configuration – with respect to functionality, performance & security. What if there is an upgrade to the software version? The objective is to test the software setup activities & uninstall process.

Performance Testing

One of the most important and common out of all types of QA testing. The objective is not functional but to uncover performance issues such as network delay, data rendering, database transaction processing, load balancing between servers, throughput, response time, etc. (speed and efficiency of the system). Performance testing is critical for business intensive applications such as stock trade, financial transactions, etc. It’s a broader set of Test type including Load, Stress & Volume tests – generally carried out using automation tools.

Caution: It is not until all systems elements are fully integrated and certified as free of defects the true performance of a system can be ascertained. As you are measuring the application’s performance, to gauge accurately the environment (hardware requirements) should be as it will be in production environment.

Load Testing

Load as in testing the ‘capacity’ of the application under test. Didn’t get it? The common scenario in most of the IT firms – the company portal cannot be accessed as soon as you get the news that appraisal letters have been released J The reason – Load testing wasn’t performed 🙂 The portal couldn’t handle the Users’ rush or concurrent access to the system.

The objective is to check the behavior of the software under normal and over peak load conditions – at what point the system’s response time degrades or fails. Load testing is usually performed using automated testing tools like JMeter, Load Runner, and Silk Performer – several virtual users can be created and then a script can be executed to check how the software behaves when multiple users try to access the system concurrently.

Stress Testing

When do you get stressed? Yeah! When we can’t handle the pressure. To a certain limit, we can handle the tension but beyond it – stressed.

Similarly a software is built to handle a certain load, beyond that it breaks. The objective of ‘Stress Testing’ is to test the software under abnormal load conditions (beyond the acceptable limit) and then its performance is monitored to observe how the software would behave at breakpoint. There are many ways of creating abnormal conditions – the database can be turned off and on, complex database queries, continuous input to system, database load or network ports can be shut or restarted randomly. A graceful degradation under load leading to non-catastrophic failure is the desired result. The most common way of performing stress testing is by starting processes that would consume a lot of resources. Stress testing enables to check some of the quality attributes like robustness and reliability.

Volume testing

Volume (meaning ‘Bulk’) testing is carried out to find the response of the software with different sizes of the data being sent/received or to be processed. E.g. If you were to be testing Microsoft word, volume testing would ensure if word can open, save and work on files of different sizes (10 to 100 MB).

Security Testing

What if any one logging to Facebook can access your profile data & can post on your behalf? Critical security breach, right?

As the name suggests – the objective of security testing is to verify how secure the software is to external or internal threats from humans and malicious programs. E.g. software’s authorization mechanism, how strong is authentication, maintaining data confidentiality & integrity, etc. In other words Security testing assures that the program is accessed by the authorized personnel only. Authentication (login credentials are checked) and authorization (privileges to access restricted features) are considered to be two very important aspects of software testing. Security is especially important for applications that require firewalls, encryption, user authentication, financial transactions, or access to databases with sensitive data. Security testing requires good knowledge of application, technology, networking & security testing tools.

Penetration Testing

Also known as PenTest in short, it’s a type of security testing. The objective is to gauge how secure software and its environments (hardware, operating system and network) are when subject to attack by an external or internal intruder. Intruder can be a human/hacker or malicious programs. Pentest uses methods to forcibly intrude (by brute force attack) or by using a weakness (vulnerability) to gain access to a software or data or hardware with an intent to expose ways to steal, manipulate or corrupt data, software files or configuration. Penetration Testing is a way of ethical hacking, an experienced Penetration tester will use the same methods and tools that a hacker would use but the intention of Penetration tester is to identify vulnerability and get them fixed before a real hacker or malicious program exploits it.

Vulnerability Testing

Vulnerability or weakness in the software system that exposes it’s important functionality or data to unauthorized access. Vulnerability testing involves identifying & exposing the software, hardware or network vulnerabilities that can be exploited by hackers and other malicious programs likes viruses or worms. With increase in the number of hackers and malicious programs, Vulnerability Testing has become one of the critical types of QA testing for success of a business.

Recovery testing

What if the system crashes? Even though it won’t after all the testing is completed, but still we need to be prepared for the worst, i.e. testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.

Data & Database Integrity Testing

After all everything online is about the data. How can we exclude the database then? Data integrity testing aims to check if the data stored in the database is accurate and produces results as per the expectations – whether it is possible to retrieve blank information from the database or not, is data validated properly before getting saved in the database, can the data stored in database be updated, are you able to run tests for all kind of data files etc. In other words data integrity testing is carried out to ensure that the data is accurate and consistent over its entire life cycle.

Database integrity on the other hand deals with testing of all the necessary methods and processes that are important for accessing the database and managing the data within. The data should not get corrupted and should not get deleted, updated or created unknowingly, and there should be test cases to make these validations.

Manual approach is to carefully examine the data flow between back-end & front-end. Creating, updating or deleting the data from front-end is successfully reflected at the back-end, check for database mandatory fields, database constraints & rules or checking the procedure using SQL Query analyzer.

Related Articles

Looking for Software Testing Interview questions? Let us start with basics…What’s the difference between a defect & a failure? What Test methodology did you follow? Which all methods did you use? You have worked at which all Test levels? How did you organize different Test cycles? Involved in what all Testing types? What about the Test artifacts – did you prepare any? Which technique did you use for Test Design or execution? Confused with these fundamental Software Testing Interview questions?

Regression testing, one of the most important yet neglected Testing type. Why? Because we are bored of it. Why bored? Because we do it incorrectly or don’t follow the best practices. Most of the time it results into wasted efforts – repeated testing without any qualitative results. Have you ever tried to revamp your regression approach? Or to actually work on the challenges faced?

In software project management, software testing, and software engineering, Verification & Validation (V&V) is the process of checking that a software system meets specifications and that it fulfills its intended purpose. In the context of testing, “Verification and Validation” are very widely and commonly used terms. Most of the times, we consider the terms same, but actually the terms are quite different. In this article we will first explore Verification vs. Validation and then move on to its practical application in Software Testing.

Are you a Manual Tester? A Test Lead? Good in people’s management? Or Planning? Whatever! You still need to know the basics of programming and automation tool. You need not be a framework-developer, but every organization now wants a Software Tester who knows both functional test + automation scripting!

The Defect Severity (Technical) - In simple words, how severe is the defect for the application’s quality? Say you click on the ‘Help’ link and the application crashes. Whoaa! Bing-Bang Craaaashh..! Quite a severe defect, right?

The Defect Priority (Business) - In simple words, what is the precedence, importance or urgency to fix a defect? Say you click on the ‘Help’ link and the application crashes. Whoaa! Bing-Bang Craaaashh..! Quite a severe defect, right? But how many of us really click the ‘Help’ link? Business usage statistics show less than 2%. Now what do you think should be the urgency to fix a defect that impacts just the 2% of the end-users? Yeah! Not ‘High’ obviously. There would be other urgent defects to fix prior to this. Defect Priority defines the order in which defects should be fixed, i.e. its impact to the end-users, the business perspective.

About STS

Software Testing Studio is an attempt to share some incredible knowledge from industry leaders & experts, which should be helpful for anybody to start his/her career in ‘Software Testing’ or to progress it further. Apart from the technical nitty-gritties, one can also find some intellectual posts by industry experts sharing their Wisdom.