Software testing – An introduction

I believe that this article will give you a good understanding about software testing even if you are from a non-IT industry. First, let me tell you from the base, what software is and then, what testing is.

A software is a program/set of programs enabling a computer to do the given task. For example, when we are done with the wish list of our shopping and we are about to do payment, we get a computerized bill for the same. Who generates the bill? Obviously, it is a computer, right. Of course not. It is a software merely developed to serve the purpose of bill generation by calculating ‘n’ number of customer products available at different rates with ease, time saving, and perfect stock maintenance concept. So, the overall purpose of the software is to satisfy the customer’s as well as the vendor’s needs. It is notable that the manual work is done by a software with the help of a computer and not by the computer. The software instructs the computer to do the given task. This set of instructions, for example, billing the products includes required arithmetic operations like addition, multiplication, subtraction for some offers or discounts that are designed or built into a programming language and which can be understood by a computer. Thus, the computer performs the given task (bill generation) as per the instructions (arithmetic operations) of the program (software) by satisfying vendors and customers.

I hope it is clear what a software is… and its purpose of development. What is testing then…when do we do this testing…? maybe after the launch of the software…or before or after a month or two of the software development…when does testing take place exactly…? I can see that so many questions like these are scrolling through your mind. Here I am, to tell you in detail.

Testing, in general, means some diagnoses. Yes, it is something similar to a blood test. What is a blood test recommended for? Just to identify the levels of certain components of blood, some infection, and existence of infection causing germs/microbes? The purpose of the blood test is to get a remedy to recover back to normal. The same for testing the software. Testing is very much required for a software to detect the errors (bugs), occurrence of some malfunctions, to find any drawbacks in its performance. The purpose of testing is to make the software error-free and to recover the software to function normally. This testing must be performed before the launch of the software. The vital notion of testing is to deliver error-free software.

Software/website testing has a few basic steps to be performed in order to make it complete and professional. Since we are in a digital world it is must to know such things. Software testing techniques are more or less similar for website testing too. Website testing techniques include the following:

  • Functional testing
  • Usability testing
  • Interface testing
  • Database testing
  • Compatibility testing
  • Performance testing
  • Security testing

Functional testing:

It is a process to test each and every feature of the website or a software. Manual testing and automated testing tools are available to perform this test. The web-based testing activities include testing all the links like internal links, external links, mail to links, etc. Form testing includes form readability, menus, buttons, field validation, data input and retrieval, display of messages, mandatory field entry, performance of form as expected, etc. Cookies are the small temporary files used by the website to remember the active user sessions. That is why it is not needed to log in each and every time when we visit a website. Cookie testing is required to check whether active user sessions are created and deleted (session expires after a particular time duration and asks for login credentials again). Work flow testing checks for the flow of work (connectivity) which takes users to a series of webpages. HTML and CSS testing check for syntax errors and readable colour schemes. QTP and Selenium are the available tools to perform this functional testing.

Usability testing:

It is a vital test which checks for the user friendliness, quality content, and convenient navigation from one page to another in the application (software/website). Navigation test checks that all the available menus, buttons, links to different webpages of the site are visible and consistent on all the pages. Content test check is for spelling, grammatical errors and “alt txt” for images. Chalkmark and Clicktale are the available tools to perform the usability test.

Interface testing:

It is one of the required test techniques which checks for the proper communication between the application and the data server. Interface connects the application with the data server and all the user communication. Data can be stored and retrieved from the application to the data server and vice versa only through the interface. Say, for example, browser.

Software testing

Interface testing checks for the following:

  • To make sure that the user does not encounter any problem when they use the application/software/website.
  • To know about which part of the application is used most by the users, say, for example, online payment page, product purchase page, etc.
  • To check for the security requirements when communication happens between the systems (front end and back end).
  • To check whether the interface can display any error messages to the user or provide any solution/intimation about network issues that happen between an application and data server
  • Alertfox, Ranorex are the tools used to perform this test.

Database testing

It is very important to do database testing since all the user data and product details are to be stored here.

Database testing includes:

  • Test for the display of errors while executing queries.
  • Checking that the accuracy and reliability of data is maintained while creating, updating or deleting data in the database.
  • Test for the response time of queries.
  • Testing that data retrieved from the database is displayed accurately in the application.
  • QTP and Selenium are the tools used to do this test.

Compatibility testing

Compatibility testing makes sure that the web application displays correctly across different devices, across different browsers and different OS.

Oval: Browser

This testing will also check for mobile compatibility with different mobile devices like iOS, Android, Blackberry, Windows, etc.

Performance testing

Performance testing will do the following:

  • Check for the response time at different connection speeds.
  • Test the web application to make sure that its behaviour is fine under normal and peak loads.
  • Test for the occurrences of a crash due to peak load.
  • Ensure buffering to reduce load times.

Security testing

It is the most vital test to be conducted if it is an e-commerce website/possesses a payment gateway that stores sensitive customer information like credit cards. Security testing includes:

  • Test for unauthorized access.
  • Make sure to secure pages that should not be permitted for all users to access.
  • Download of certain files to be restricted for unauthorized users.
  • Check for sessions that are automatically deleted after prolonged user inactivity.
  • Usage of SSL certificates to auto encrypt all the webpages during communication, to get rid of hackers.

Software testing tools are also available to do automated testing. I hope you have got to know about software testing/web application testing. Congratulations!! You have successfully completed level 1 in software testing and you are now a basic grade software tester..!! Wow..fantastic of You..!!