top of page
hand-businesswoman-touching-hand-artificial-intelligence-meaning-technology-connection-go-

Software Testing Fundamentals


         

 Whenever we open an application or use any software, we expect it to work. But we never thought about what ensures the application or software to work smoothly. It’s all thanks to software testing.

If you’ve ever been questioning about the behind process of application that gives you a bug free experience. Let’s dive in and explore the software testing together.


What is Software Testing?


 Software testing is a part of the software development process. Software testing is an activity to detect and identify the defects in the software.

In similar terms, software testing ensures the quality of the software. Software testing ensures that an application or system works correctly and is glitches-free.

Main agenda of testing is to release quality product to the customer.


Why do we need software testing?


So, we must give the quality product to customers, ensuring that the software or application is up to mark.

Well, here are some reasons why test do be done before it reaches to public:


Quality Check: It ensures the application works perfectly every time we use it.

Happy Users:  Our aim is that users should not feel frustrated while using the application. Testing aims to prevent the application crash.

Staying Safe: Testing make sures things are safe and secure.

Staying Updated: Testing helps you keep up to date with the current trends.

 

Software testing terminology


Regression Testing:

Testing conducts on modified build to make sure there should not impact on existing functionality. Because of changes like adding deleting or modifying features.

In regression testing we will do

Unit regression testing: Testing only modified module done by the developers.

Regional regression testing: Testing the modified module along with the impacted modules.

Full regression testing: Testing the main feature and remaining of the application.


Re-testing:

Whenever the developer fixed a bug, testers will test bug fix is called re-testing. The tester closes the bug if it works otherwise re-opens the bug.


Smoke testing:

The smoke test is to make sure the build we receive from the development team is stable or not. This test can be doth developer and tester.

Here build may be stable or unstable. After every new build release, we do smoke testing.


Sanity testing:

Sanity testing is done during the release phase to check for the main functionalities of the application without going deeper. Sanity test done by tester. Here build is stable, and it is a part of regression testing.


Exploratory testing:

Before doing testing, we need to explore the application and understand completely. After understanding we need to identify all possible scenarios and document it then use it for testing.

We do exploratory testing when the application is ready but there is no requirements.


Drawbacks:

You might misunderstand the feature as a bug or bug as feature.

Time consuming and if there is any bug in the application, you will never get to know about it.


Ad hoc testing:

Testing application randomly without any test case or business requirement document. It is an informal testing type with an aim to break the system.

A tester should have the knowledge of application even though he doesn’t have requirement or test cases.


Positive and Negative testing:

Testing the application with valid input is Positive testing. It checks whether the application behaves as expected with positive inputs.

Testing the application with invalid inputs is called Negative testing. It checks whether the application behaves as expected with negative inputs.


END to END testing:

Testing the overall functionalities of the application including the data integration among all the modules is called END to END testing.


Globalization and Localization testing:

Globalization testing to check the application works in any language, environment, and other attributes.

Example: Facebook

It works in all the countries

Localization testing done to check the application works in locally means specific geographical, language, region and environment.  


What are the Steps of Software Testing?


STLC- Software testing life cycle: Software testing follows a structured process to ensure that every aspect of the software is properly checked. Here are the few steps involved in software testing:


Requirement Analysis: This is the first step for testing, we will go through the document and understand what needs to be tested and the criteria it must meet.


Test Planning: This step involves organizing resources, setting timelines, and deciding on the testing tools and environment.


Test Design: It involves creating detailed test cases, scripts, and procedures.


Environment Setup: Test environment is a platform specially build for test case execution on the application or product. It is created by integrating the required software and hardware along with proper network configuration. Test environment simulates production or real time environment.


Test Execution: Test will execute based on the test plan and test cases; the actual tests are run on the software here.


Result Analysis & Reporting:  After tests are run, results are analyzed, and any defects or issues are reported for fixing.


Defect classification:

Severity:

  1. Blocker: This defect indicates nothing proceed further.

  2. Critical: The main functionality is not working.

  3. Major: It causes some undesirable behavior but feature or application is still working.

  4. Minor: It won't cause any major break down of the system.


Priority:

  1. P1: Priority 1 it can wait until a new version or build is created.

  2. P2: Priority 2 developer can fix in later releases.


Bug Severity vs Priority: Key Differences


Bug Severity

Bug Priority

Refers to a measure of the impact that a bug can has on software functioning.

Refers to the order in which developers must fix bugs.

Driven by the performance of software function.

Driven by business value and time to release.

The subjective value that is likely to change throughout development or concerning the resolution of other bugs.

The objective value that is not very likely to change significantly in a software development process.

High severity and low priority status means that the bug can cause significant damage but can be fixed later.

High priority and low severity status means that the bug must be fixed immediately but it does not affect the software too adversely. 

Different Levels of Software Testing:


Software testing , it's not just about the types of testing but also the levels at which they are performed.


Unit testing: A Unit is a single component or module of a software. This is the most basic level of testing. Unit testing conducts on a single program or module and it is conducted by the developer and it is white box testing.


Unit testing techniques:


1.Basics path testing.

2.Control structure testing (Conditional coverage and Loop coverage).

3.Mutation testing.


  • Integration Testing: Integration testing performed between 2 or more modules. Here we are going to check the data communication between multiple module and it is white box testing. There are 2 types of integration testing,


    1.Incremental testing.

    2.Non incremental testing.


  • System Testing: The entire functionality of the application is tested with respective client requirements. It is black box technique and testing is conducted by testing team. Before conducting testing as a tester we should know the customer requirements. System testing mainly focus on,

    1. Graphical User interface testing (GUI).

    2. Usability testing.

    3. Functional testing.

    4. Non Functional testing.


  • User Acceptance testing: This is the final step before the software is delivered to the client or end users. There are 2 types of testing is conducted here,


    1. Alpha testing.

    2. Beta testing.


    Each level of testing has its own significance , ensuring that every aspect of the software, from different components to the entire system, is thoroughly validated.


Conclusion:

We've talked a little bit about software testing and its importance. Software testing ensures the quality of the product. Software testing ensures your applications and software work right every time. It helps to find and fix the issues early , make sures the final product is reliable and meets quality standards. By testing regularly we can make better quality products that saves time and money.

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

27 views0 comments

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page