top of page
Writer's picturePradnya Kavale

Different Methods of Software Testing, Levels of Testing & Types of Testing!

Introduction:


"To Err is Human!" Rightly said, but to extend it further: "To Err is human but to find those errors are the Testers. " :)


Software testing is utmost required to point out the defects and errors that were made during the development stage. As we humans are good at finding others' mistakes easily, Testers are better people to find developers' mistakes or errors. Developers may not realize their mistakes on their own as finding their own mistakes is a difficult task.


In this Blog we will see 3 major concepts in Software Testing:

1) Different methods of Software testing

2) Levels of Testing

3) Types of testing



1) Different methods of Software testing

I) Black box testing

II) White Box Testing

III) Grey Box Testing


Black Box testing: In this method of testing tester does not knowledge of how the system is structured in the box. The tester will test input vs output based on provided specifications.


This testing will focus on what software does without knowing how it does that.


White Box Testing: In this method of testing, the tester is aware of how the software is implemented and how it works. This testing is also known as ‘glass-box’ testing.

Most developers will perform this testing for unit testing and integration testing.


Grey Box Testing: This method of testing involves limited knowledge of how the system works internally. In this testing method, the tester has access to documents and the database. This enables the tester to prepare better test data and test plans.



2) Levels of testing

In the software development Life Cycle, there are different levels of testing. They are as follows:

I) Unit Testing

II) Integration testing

III) System Testing

IV) User Acceptance Testing (UAT)




Unit testing: A Unit is the smallest part or component of a software application which can be tested individually for its functionality. So, Unit Testing is the testing of single unit or a single component code to check if the code is working as expected to match the requirements. Unit Testing is usually done by the developer himself.


Integration Testing: In this level of testing, more than two units are integrated/ grouped and are tested to check their correctness when working together. This level of testing is also mostly performed by the team of developers involved in the development of the units which are clubbed together.


System Testing: This is the further level of testing, in which the application is tested as a System to see if it meets all the requirements. System testing is mostly the final test to verify that the System to be delivered meets all the specifications and its purpose.


User Acceptance Testing: As the name suggests, user acceptance testing is done by the stakeholders and the users or the customers. This level of testing is done to ensure that the system is working the way it was expected by the client to work for their customers. The purpose of this level of testing is to gain confidence in the software application which will now be used by actual customers.


There are two ways to perform UAT.

1) Alpha Testing: This is done at the developer's end or site.

2) Beta Testing: is done at the customer's site before the launch.


3) Types of testing

Testing can be broadly divided in two main types

a) Functional Testing

b) Non-Functional Testing



Functional Testing is used to test the functionality or features of the Software and is majorly categorized into

i) Smoke Testing: This is the testing in which the tester tests, the basic functionality of an application on an unstable build. Unless the Smoke test build passes the build is considered to be unstable and cannot be checked further. Once the smoke test build passes the build is stable and ready for further testing.


ii) Sanity Testing This is the testing in which the tester tests, the functionality of an application on a stable build when a new feature is added. In this testing, testers will test some basic tests once a new build is received for the testing.


iii) Re-Testing is executing failed test cases again to check if the problems are fixed in the latest version.


iv) Regression Testing is done to check or verify that the recent code changes or modifications in the software or any environment in the new build have not caused any damage or other side effects to the previously developed application. This testing will ensure that the software is still working as per the requirements even after adding new features or changes.


Non-Functional Testing covers:

i) User Interface Testing

Graphical User Interface (GUI) testing is done for checking the design (how it looks) of an application

For Example Field Alignments, Lengths, Progress bars, Scroll bars, text alignments, etc.

ii) Usability Testing is used by the testers to test how user-friendly the application is. This type of testing usually tests following the criteria

  • the ease with which software can be used

  • how easy it is to learn the software for new users

  • How convenient is the application to the end user

iii) Stress Testing

It is a form of testing which is used to determine the stability of a given system. Stress testing includes testing beyond normal operational capacity, often to a breaking point, to observe the results. Stress testing is a generic term used to describe the process of putting a system through stress.


iv) Load Testing: Load testing is performed to determine a system’s behavior under both normal and peak conditions. A load test is usually conducted to understand the behavior of the application under a specific expected load. E.g. If the number of users is increased then how much CPU and memory will be consumed and what is the network and bandwidth response time?


v) Performance Testing: Performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload. It can serve different purposes like it can demonstrate that the system meets performance criteria.


These are all major Testing methods, Testing Levels, and Testing Types that are generally used in Software Testing.


Hope you find this blog useful. Thank you for reading.

Happy learning!!


381 views

Recent Posts

See All
bottom of page