Information Technology Software Testing

Types of software testing

Hola !! In today’s post we are going to have a look at types of testing

1.Compatibility testing

In today’s world , we have multiple devices , many flavours of operating systems and n number of dependent softwares to use one software. Behaviour of software application may differ depending on these factors. Compatability testing is crucial in understanding whether software functions well across different operating systems, web browsers, network, devices, hardware configurations, versions etc. Compatability also needs to be tested with respect to newer and older versions of related software applications

Some of the most common Compatibility testing defects for web applications are :

  • Differences in the user Interface with respect to look and feel
  • Changes with respect to font size, alignment issues, css styles, color, scrollbars
  • Broken Images
  • Information in tables is not displayed properly

To verify these kinds of issues , a website needs to be tested in different browsers (For Ex : Google chrome, Internet Explorer, Mozilla Firefox) on different operating systems(Windows, Linux,Android) in different devices(Desktop, Mobiles of different resolutions). We also need to consider different version of every operating system, web browser, devices in combination to ensure good user experience

2.Performance testing is part of performance engineering practices where system is examined for quality attributes like responsiveness, reliability, scalability etc. Performance testing validates system’s performance against predefined performance benchmarks for speed, memory, response time etc.

A performance bottleneck occurs when a single component’s failure results in slowdown or shutdown of an entire system. Identifying such an component requires quantitative and qualitative analysis of system under controlled conditions

Performance testing primarily includes stress testing and load testing Load testing checks system performance under specified load conditions while stress testing stimulates higher than expected load conditions to determine potential breakpoints. Stress testing includes soak testing and spike testing

A beautiful explanation of performance bottlenecks :

3.Security testing

Security testing is an approach to identify vulnerabilities in information system to protect the system against incidents like data theft, functionality breach etc. A vulnerability is a weakness or a flaw in system that can be exploited by attacker to harm respective stakeholders or end users.Some common security threats are as follows :

1.Privilege Escalation : Most software applications have multiple user accounts. Each user has certain roles and permissions. Common permissions / privileges include viewing and editing files, install new programmes etc.Hacker creates an account on a system and uses it to increase his system privileges to a higher level which he/she was not suppose to have. These privileges can be used to delete files, view private information, or install viruses or malwares.

2.SQL injection : SQL injection is used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker).For ex: Entering a single quote (‘) in any textbox should be rejected by the application. Instead, if a database error is displayed, it means that the user input is inserted in some query which is then executed by the application. In such a case, the application is vulnerable to SQL injection.SQL injection attacks are very critical as attackers can get vital information from the database.

3.URL Manipulation :URL refers to Uniform Resource Locator.URL is address of particular website on internet. For Ex : URL manipulation, also called URL rewriting, is the method of altering the parameters in a URL and capturing important information. When the web application uses the HTTP GET method to pass information between the client and the server, data is passed in parameters in the URL An attacker can exploit this vulnerability by sending altered link to unsuspecting users via e-mail or by posting it on a website. When users click the link, they can be redirected to a malicious third-party site containing malware or inappropriate material.

4. Cross site scripting(XSS) : XSS enables attackers to inject client-side script into Web pages viewed by other users and trick a user into clicking on that URL. Once this script is executed by the other user’s browser, hacker can cause potential harm to user’s system.

XSS occurs when a web page displays user input — typically via JavaScript— that isn’t properly filtered.A simple test shows whether web application is vulnerable to XSS. Choose any field in the application that accept user input (such as on a login or search form), and enter the following JavaScript statement:


If a window pops up that displays XSS, the application is vulnerable.

5.Denial of service (DoS)attack : A denial-of-service (DoS) attack is accomplished by flooding the target system with excess requests to overload it and prevent some or all users to avail the services In a distributed denial-of-service attack (DDoS attack), the incoming traffic attacking the target system originates from many different sources. Hackers behind the DoS attacks often target sites such as banks, credit card payment gateways, retail stores

OWASP ( ) is almighty reference for web information security concepts

4.Usability testing

Usability testing tests how easily users can use system. Usability is the measure of a product’s potential to accomplish the goals of the user. Goal of user refers to intention of user to complete a task. For Ex : Booking movie ticket or purchasing appliances online

In usability testing , users of a product are asked to perform certain tasks to analyze product’s ease-of-use, time to complete the task, and overall user experience. Participants are encouraged to share their every opinion. All feedback is noted and analyzed . The goal of Usability Testing is to create real world scenarios where the user will be actually using our product, then by observing their behavior we will be able to understand what could be done better.

5.Accessibility testing

Accessibility testing is a type of testing conducted to check if user with disabilities can use the software application with ease. Users with or without disabilities should have equal access to technology.People with disabilities use assistive technology which helps them in operating a software product. Example of assistive devices include Screen reader software that is used to read out the text that is displayed on the screen.

Accessibility testing tries to answer the questions like : Can screen reader identify all words? Do all images have alt descriptions? Are all page elements responding properly to keyboard keys?

W3C (World wide web consortium) provides Web content Accessibility Guidelines for a content to be presented on the web as below:

1.Information displayed should be perceivable

For ex : Every image, including icons, buttons, and graphics, video, charts, need to be properly tagged and described for a screen reader to show information properly.

2.User Interface and navigation of application should be operable

For Ex: A website needs to be navigable and interactive entirely through the the keyboard, which is essential for people who use a text browser or are unable to use a mouse for various reasons.

3. Consistent and effective organization of user interface elements can make use of application easier for users with different disabilities

For Ex : Forms can be confusing or difficult to use for many people, and, as a result, they may be more likely to make mistakes. To help users, we can include descriptive instructions, error messages, and suggestions for correction etc

4.Application should be compatible with newer and older versions of assistive technology

Adios for now….. In my next post, I will tell you more about how functional testing is conducted in a typical test cycle.

Till then , do like, share and subscribe to my blog 🙂