Thursday, October 19, 2023

Software Testing | Tutorial

Types of Software Testing

So, as we all know that Testing is the process of executing a program to find errors. To make our software perform well it should be error-free.

there is a basic types of software testing are as follows :

Unit Testing

Integration Testing

System Testing

Acceptance Testing

Performance Testing

Security Testing

Usability testing

Compatibility testing




1. Unit Testing

Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually scrutinized for proper operation. Software developers and sometimes QA staff complete unit tests during the development process.

Unit testing is an important step in the development process. If done correctly, unit tests can detect early flaws in code which may be more difficult to find in later testing stages

It helps to identify bugs early in the development process before they become more difficult and expensive to fix.

It helps to ensure that changes to the code do not introduce new bugs.

It makes the code more modular and easier to understand and maintain.

It helps to improve the overall quality and reliability of the software. 


2. Integration Testing

Integration Testing is a type of testing where software modules are integrated logically and tested as a group.

It is a method of testing how different units or components of a software application interact with each other. It is used to identify and resolve any issues that may arise when different units of the software are combined.

Integration testing is done after unit testing and before functional testing.

also, it is used to verify that the different units of the software work together as intended.

There are different ways of Integration Testing that are-


Top-down integration testing: It starts with the highest-level modules and differentiates them from lower-level modules.

Bottom-up integration testing: It starts with the lowest-level modules and integrates them with higher-level modules.

Big-Bang integration testing: It combines all the modules and integrates them all at once.

3. System Testing

System Testing is a level of testing that validates the complete and fully integrated software product. The purpose of a system test is to evaluate the end-to-end system specifications. It is carried out on the whole system in the context of either system requirement specifications or functional requirement specifications or in the context of both. The software is tested such that it works fine for the different operating systems.

It is covered under the black box testing technique.


4. Acceptance testing

Acceptance testing is done by the customers to check whether the delivered products perform the desired tasks or not, as stated in the requirements. We use Object-Oriented Testing for discussing test plans and for executing the projects.

Improved software quality and reliability.

Early identification and fixing of defects.

Improved customer satisfaction.

Increased stakeholder confidence.

Reduced maintenance costs.

It has types like-

Alpha Testing

Alpha testing is a type of validation testing. It is a type of acceptance testing that is done before the product is released to customers. It is typically done by QA people. 

Beta Testing

The beta test is conducted at one or more customer sites by the end-user of the software. This version is released for a limited number of users for testing in a real-time environment.

5.Security Testing 

It is a type of Software Testing that uncovers vulnerabilities of the system and determines that the data and resources of the system are protected from possible intruders. It ensures that the software system and application are free from any threats or risks that can cause a loss. Security testing of any system is focused on finding all possible loopholes and weaknesses of the system which might result in the loss of information or repute of the organization. Security testing is a type of software testing that focuses on evaluating the security of a system or application. The goal of security testing is to identify vulnerabilities and potential threats, and to ensure that the system is protected against unauthorized access, data breaches, and other security-related issues.

Principle of Security Testing: Below are the six basic principles of security testing:

Confidentiality

Integrity

Authentication

Authorization

Availability

Non-repudiation


6. Performance Testing

Performance Testing is a software testing process used for testing the speed, response time, stability, reliability, scalability, and resource usage of a software application under a particular workload.

Speed – Determines whether the application responds quickly

Scalability – Determines the maximum user load the software application can handle.

Stability – Determines if the application is stable under varying loads


Types of Performance Testing

Load testing – checks the application’s ability to perform under anticipated user loads. The objective is to identify performance bottlenecks before the software application goes live.

Stress testing – involves testing an application under extreme workloads to see how it handles high traffic or data processing. The objective is to identify the breaking point of an application.

Endurance testing – is done to make sure the software can handle the expected load over a long period of time.

Spike testing – tests the software’s reaction to sudden large spikes in the load generated by users.

Volume testing – Under Volume Testing large no. of. Data is populated in a database, and the overall software system’s behavior is monitored. The objective is to check software application’s performance under varying database volumes.

Scalability testing – The objective of scalability testing is to determine the software application’s effectiveness in “scaling up” to support an increase in user load. It helps plan capacity addition to your software system.

Performance Testing perform the right format -


7. Usability testing

Usability testing is a method of evaluating how simple a design is to use by observing how users interact with a product. This allows researchers to spot design flaws, determine whether or not users enjoy the product, and if they find it easy to use. 

When designing a product or system, usability testing allows researchers to assess a product's usability with greater amounts of data, and find solutions to any problems that may arise. 

Usability testing can occur at various stages to test each iteration of a product, from the initial development to its release. This allows researchers to address problems early on when they are more manageable. 

Benefits of usability testing

Usability testing allows for numerous benefits for producing a quality product. The following are some advantages of usability testing:

* Provides an opportunity to catch minor errors and make improvements

* Helps gain an unbiased perspective for products 

* Performing a usability test is a relatively simple process

* Provides insight as to how easy it is to complete certain tasks and how long it takes.

Types of Usability testing are as :

1.Exploratory testing

Exploratory testing is an approach to software testing that is often described as simultaneous learning, test design, and execution. It focuses on discovery and relies on the guidance of the individual tester to uncover defects that are not easily covered in the scope of other tests. 

Advantages

This testing is useful when requirement documents are not available or partially available

It involves Investigation process which helps find more bugs than normal testing-

Uncover bugs which are normally ignored by other testing techniques

Helps to expand the imagination of testers by executing more and more test cases which finally improves productivity as well

This testing drill down to the smallest part of an application and covers all the requirements

This testing covers all the types of testing and it covers various scenarios and cases

Encourages creativity and intuition

Generation of new ideas during test execution

Disadvantages

This testing purely depends on the tester skills

Limited by domain knowledge of the tester

Not suitable for Long execution time


2.Cross-browser testing

Cross browser testing involves comparing and analyzing the behavior of your website in different browser environments. It helps ensure that your website delivers an optimal user experience, independent of the browser used to access it.

Web-based applications are totally different from Windows applications. A web application can be opened in any browser by the end user. For example, some people prefer to open https://twitter.com in Firefox browser, while other’s can be using Chrome browser or IE.

3. Accessibility Testing

Accessibility Testing is defined as a type of Software Testing performed to ensure that the application being tested is usable by people with disabilities like hearing, colour blindness, old age, and other disadvantaged groups. It is a subset of Usability Testing.


8. Compatibility Testing

Compatibility Testing is a type of Non-functional testing. Compatibility Testing is a type of Software testing to check whether your software is capable of running on different hardware, operating systems, applications, network environments or Mobile devices.

There are two types of version checking in Compatibility Testing :

Backward Compatibility Testing is a technique to verify the behaviour and compatibility of the developed hardware or software with their older versions of the hardware or software. Backward compatibility testing is much predictable as all the changes from the previous versions are known.

Forward Compatibility Testing is a process to verify the behaviour and compatibility of the developed hardware or software with the newer versions of the hardware or software. Forward compatibility testing is a bit hard to predict as the changes that will be made in the newer versions are not known.












































No comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Software Testing Lab|Tutorial

  Happy Dussehra everyone..!