Software Testing: What,why and Who?

Table of contents
Reading Time: 4 minutes

Hi, all in this blog I am going to explain the concepts of Software testing in detail. In addition to that I will also discuss about the methodologies related with Software testing.

Software: It is a program that enables a computer to perform a specific task, as opposed to the physical components of the system (hardware).

This includes application software such as a word processor, which enables a user to perform a task, and system software such as an operating system, which enables other software to run properly, by interfacing with hardware and with other software.

Types of Software:

a) System Software

b) Application Software

Now I will be explaining these two types in detail.

a) System Software:  It includes the programs that are dedicated in managing the computer, such as the operating system, file management, and disk operating system (or DOS). The operating system manages the computer hardware resources in addition to applications and data. Without systems software installed in our computers we would have to type the instructions for everything we wanted the computer to do.

b) Application Software:  They are generally called productivity programs or end-user programs because they enable the user to complete their tasks, such as creating documents, spreadsheets, databases and publications, doing online research.It is specific to the task for which it is designed and can be as simple as a calculator application or as complex as a word processing application.

Why Software needs to be tested?

A software product should be released only after it has gone through a proper process of development, testing and bug fixing. Testing looks at areas such as performance, stability and error handling by setting up test scenarios under controlled conditions and assessing the results.

It is important that software is mainly tested so that it meets the customers needs and matches to the standards. It is a usual norm that software is considered good if it meets the user requirements.

What is Quality? How important is it in our life?

Quality can be described “as a degree of excellence”. A customer’s idea of quality may cover many features like good performance. SQA includes the systematic process of assuring that standards and procedures are established and are followed throughout the software development life cycle and test cycle as well.

But if we have Quality software, it can saves good amount of time and money. Greater reliability contributes to an immeasurable increase in customer satisfaction as well as lower maintenance costs.

There are two such cases which shows us the importance of Software Quality are

a) On the Amazon Alexa mobile app, if you rearrange the order of the podcasts in your flash briefing, the app will still appear as if a podcast is still “settling in” to its new location, and the app will hang.

b) In January 2018, the citizens of Hawaii were notified to take immediate cover in the face of an inbound ballistic missile strike. It turned out to be a false alarm, as it took over 30 minutes (and, presumably, several thousand heart attacks) before the alert was retracted.

So, if we had followed the best practices of Software Quality, then we could have avoided it.

What are the responsibilities of a software tester?

Some of the responsibilities of a Software tester are :

a) Speed up the development process by identifying the bugs at initial stage.

b) Inform your test lead about the resources which are required for testing the product.

c) You should always carry out regression testing when the changes are made to fix the defects of code.

d) Assure successful launch of the product, save money, time and reputation of the company by discovering bugs and design flaws.

What makes one a good tester?

Software engineering is a technical engineering profession. It is important that the software test engineer must possess the following traits :

  1. Know the technology well: The tester must be aware of the tech-stack in which he is working and giving his inputs. As, it will be an added advantage for him. It helps him better to design the powerful test cases as he would be aware of the weakness of that particular technology.
  2. Defects are valuable: Good testers learn from them. Each defect is an opportunity in itself. A defect found early substantially costs less compared to detected later in the project.
  3. Organized: Testers also know that they can make mistakes and don’t take chances. They are very well organized and have their checklists, use files which are always ready with them. It helps them in reproducing the bug.
  4. Explorer: He must be creative and risk taker that helps him to take to the unknown situations and find bugs easily.
  5. Posses interpersonal skills and tenacity: Testers can face a lot of resistance from programmers. They need to find a middle path and best testers are both socially adept, smart when it comes to reporting bugs.
  6. Troubleshoot: Tester must clearly communicate their idea to developers as a particular functionality is not working properly.

If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter or Facebook. Thank you!

Come back here and tell us about the before-and-after. I bet you’ll have something to say!

That’s all for this blog, stay tuned for the upcoming blogs on the testing practices and other interesting stuff related to the Software testing.



Written by 

Ayush Sharma is a Trainee - Software Consultant at Knoldus Software LLP. He has done MCA from C-DAC, Noida of IP University. He has good knowledge of C, C++, Java, Software Testing and is currently working as Quality Assurance Intern.He is currently working to improve the testing skills. He loves almost every North-Indian cuisines and eager to try different cuisines also. He is a die hard fan of Indo-Pak matches and loves to scribble stories in his free-time.