Getting Started with Software Testing!
Priyanka Nair
Ph.D*| Data Science & Data Analytics ^ Technology Learning Strategist @ Tredence Inc.
The software development lifecycle includes software testing as a crucial step in ensuring the dependability and quality of software programs.
Before we learn the basics of software testing let us first comprehend the term Software and its association with testing followed by types, methods, approaches and levels of testing.
What is software?
An electronic device or a computer is given instructions, programs, and data through software. The software has grown to be an essential part of our lives in the current digital era. We rely on software programs to complete a variety of duties, from communication to entertainment, essentially managing every aspect of our daily lives.
For example:
WhatsApp is a popular messaging and communication software application that allows users to send text messages, make voice and video calls, and share media files with other WhatsApp users
But how can we be sure that the software we are using is functioning as intended? This is where software testing comes into play.
Finding out how effective something is involves testing.
What is Software Testing?
Software testing is the process of evaluating software to find defects, errors, or bugs. It is an essential step in the software development life cycle that helps ensure the software meets its intended purpose and delivers a quality user experience; quality being the essence of any software.
A simple software testing example could be to test message sending and receiving in WhatsApp thereby checking whether the messages are delivered and received in a timely manner when sent.
Types of Testing
Software testing can be done manually or automatically
As the name implies, manual testing is a sort of software testing where human testers execute testing manually without the use of automated tools or scripts.
The tester manually examines all of the software's features and functionalities---> find any defects or bugs---> and then informs the development team so they can be fixed.
The software testing that employs automated tools and scripts to run test cases and scenarios is known as automation testing. An automated testing tool or framework is used to automatically execute the test cases rather than manually performing them.
In automation testing, test cases are created in a programming language and then executed by an automation tool that simulates user behaviors
Selenium, testRigor, and Katalon Studio are a few well-known examples of functional testing automation technologies.
Testing Methods
The testing methods are the two most widely used and confused concepts.
The first methods accustoms to the question of whether Am I building the product right ? and is called Verification or Static Testing method
Verification is a static method of checking documents and files.?
The second method addresses the question of Am I building the right product ? and is called Validation or Dynamic Testing Methods.
Validation is a dynamic process of testing the real product.
Testing Approach:
There are 3 approaches to Testing
领英推荐
White Box Testing: White Box Testing is also called Glass Box, Clear Box, or Structural Testing.
Like a glass is transparent and the internal structure and functionality can be easily viewed, In the same analogy White Box Testing is based on the application’s internal code structure.
White box testing is a technique that involves examining the internal workings of a software application in order to identify errors, defects and is used?to test the functionality of individual modules, functions, or algorithms within a larger application
Black Box Testing: It is also called Behavioral/Specification-Based/Input-Output Testing.
In a magic show, as an audience member, you do not have any knowledge of how the trick is performed; you can only observe the inputs (that is the hat) and the outputs (that may be stack of cards, a rabbit, or a bird ).
Similarly, black box testing involves testing an application without knowledge of its internal workings. Testers evaluate the inputs and outputs of the application, without any knowledge of how the application processes the data or performs its functions. We give the input and check the output.
Grey Box Testing: Grey is a mix of white and black.
Grey box testing is a software testing technique that combines elements of both white box testing and black box testing.
It involves testing an application with some knowledge of its internal workings but without complete access to the application's source code and architecture.
Level of Testing
There are four levels of testing.
Unit Testing: Unit Testing is done to check whether the individual modules of the source code are working properly.
Integration Testing: It involves evaluating the interface and communication between various individual components to make sure they work properly when integrated.
System Testing: ?System Testing tests the overall functionality, performance, reliability, and other non-functional requirements of the system.
Acceptance Testing: Acceptance testing is a type of software testing that determines whether a system meets the requirements and expectations of its stakeholders
Let's look at a simple example to understand the levels :
In a calculator application, unit testing could be used to test the functionality of individual methods or functions that perform specific calculations.
For instance, try?different addition combinations to verify the correctness of addition operation: 2+2=4; -5+7=2; 0+0=0
In ?the same calculator application, integration testing could be used to test the interaction between different components of the application, such as the user interface, the calculation logic, and the memory function.
For instance, consider a scenario where you a series of numbers and operations into the calculator, then clear the memory and perform a new calculation that results in the intended output.
System Testing
In a calculator application, system testing could be used to test the application as a whole and to ensure that it meets the requirements and specifications set out for the application.
For example on launching the application, calculator should open without error, or on performing any operation, it should give the desired results, or the response time should be as required and so on.
System testing would typically involve testing the application from an end-to-end perspective, verifying that all the components and features of the application work together seamlessly and as expected.
Acceptance testing in a calculator application would typically involve testing the application with a focus on ensuring that it meets the needs and expectations of the end-users.
This type of testing is often done by the users or the customer, as they are the ones who will ultimately be using the application and need to be satisfied with its functionality.
Learn more with the video below and stay tuned!