Software testing is a method to collect project /Application requirement, Analyze these requirements, Design the Software, test and debug, deploy and maintain the project. Testing is helps to identify the defects to provide quality product to end user.
There is a two ways of testing is
- Manual Testing
- Tool Testing
Table of content
- What is Testing?
- Different Types of Software Testing
What is Testing?
Software Testing is a method to check whether the actual software application matches expected requirements and to ensure that software product is defect free. It involves execution of software components using Manual or Automated tools to evaluate one or more properties of interest.
The benefits of software testing is
- Cost effective
- Product quality
- Customer Satisfaction
Software testing is importance because if there are any bugs or error in the software it can be identified early and can be solved before delivery of the software product.
Different types of software testing
There are many different types in software testing
- Manual Testing
- Automation Testing
- Static Testing
- Dynamic Testing
Static Testing is nothing but identifying the defects in the process of the system.
It also known as verification of the software product.
Dynamic Testing is a software testing method to validate the software testing. It involves some activities like Desktop application, Web application, and Mobile Apps
Manual testing is a process of which test cases are executed by manually without any tools. Once developing process completed by developer the product comes to the tester and tester can do the testing and find out the defects in the actual product and to create the test cases,bug reports are manually.
The bug reports are send to the developer and fix the issues again the product comes to tester and do the same work until the product was defects free and client satisfaction.
Objective of manual testing is to deliver a quality product to client. In this testing was mandatory for every newly arise software before automated testing. This testing requires great efforts and time.
Automation testing is the process of testing the software using an automation tool to find the defects in the software application.
In this process,tester execute the test scripts and generate the test result automatically by using automation tools.
Some automation testing tools like:Selenium, Katalon Studio, LAMBDATEST, perfecto, Ranorex Studio, TestComplete, appium and POSMAN….etc..
Functional testing is a type of software testing in which the system is tested against the functional requirement and specification.
It is basically defined us to test the function of the software application
Step by Step process
- It is identifying the functional requirements
- To identify the test input or test data based on the requirements
- To determine the output of the input function
- Execute the test cases
- Compare the actual and expected results
Types of Functional Testing
- Unit Testing
- Integration Testing
- System testing
- User Acceptance Testing
It is nothing but a testing method to test the code of individual module is working fine or not.
Types of Unit Testing
- White Box Testing
- Gorilla Testing
White Box Testing: White box testing involves testing the software products underlying structure, architecture and code to validate input output flow and enhance design, usability and security.
Types of white box testing are unit testing, Mutation Testing, Integration Testing, White box penetration testing and static code analysis
Gorilla Testing: Gorilla Testing is a type of software testing which is performed on a based on some random inputs repeatedly and checks the module’ s functionality and confirm no bugs in that module.
It is performed on specifically few selective module with few test cases.
Once unit testing is run the programmer will combine all modules at the same time and will check the interaction between those modules
It also known as “Communicate between the modules this is called integration testing” also called as Component Integration Testing
Types of integration testing
- Gray Box Testing
Gray Box Testing: Gray box testing,however is a compromise testing a system with partial knowledge of its internals.
It combines inputs from developers and tester and can result in more effective testing strategies
Gray box testing approach is also called as Interactive Application Security Testing(IAST).
System testing is nothing but a validating both functionality and non-functionality of the application.
Types of System Testing
- End to End Testing
- Block Box Testing
- Smoke Testing
- Sanity Testing
- Happy Path Testing
- Monkey Testing
End to End Testing: End to End testing is a software testing method that tests an application’s flow from beginning to end .The goal of this type of testing is to simulate a real-user method and validate the system under the testing process.
Block Box Testing: Block box testing involves testing against a system where the code and paths are invisible.
Types of White Box Testing is Functional and Non-Functional testing
Smoke Testing: Smoke Testing is one of the popular software testing service. It performed after software build to find if the critical functionalities of the program are working fine.
Sanity Testing: Sanity testing is kind of software testing performed after receiving a software build, with minor changes in code or functionality to as certain that the bugs have been fixed and no further issues are introduced due to these changes.
Happy Path Testing: Happy Path testing is a procedure where the test user the known input and executes without any exception and produce expected output .It verifies only the required functionality is in place an functions correctly.
Monkey Testing: It is a type of software testing which is performed based on some random inputs without any testcases and checks the behavior of the system and confirms whether it crashes or not . It is performed on entire system can have several test cases.
Objective of this testing is to check for system crash.
User Acceptance Testing(UAT)
They will check weather the product is good for live or not.
Levels of UAT
- Alpha Testing
- Beta Testing
- QAT Testing
Alpha Testing: It is a type of software testing performed to identify bugs before deliver the project to customer.
- This is first level of testing, Conducted by domain
- Only positive premises
- It is one of the User Acceptance Testing
Beta Testing: Beta testing is performed by “real user” of the software application in “real environment”
- This is last level of testing
- Customer premises and also negative
- It is ankind of User Acceptance Testing
Non –Functional Testing
Non-functional testing is a type of software testing to check non-functional feature like Performance, Usability, and Reliability etc…in a software application.
Example: non-functional test would be to check how many people can simultaneously login into a software.
Types of Non-Functional Testing
- Security Testing
- Usability Testing
- Compatibility Testing
Security Testing is a type of non- functional testing. It reveal vulnerabilities of the system and determines that the data and people of the system are protected from possible intruders. It is unveils the vulnerabilities of the system to ensure that the software system and application are free from any threats or risks.
- Vulnerability Scanning
- Security Scanning
- Penetration testing
- Risk Assessment
- Security Auditing
- Posture Assessment
- Ethical Hacking
Performance testing that ensure software application will perform well under their expected workload that examines like speed, stability, reliability,scalability and resource usage.
The main purpose of this testing is to identify and eliminate the performance bottlenecks in the software application.
Types of Performance Testing
- Load Testing
- Stress Testing
- Soak Testing
- Volume Testing
- Endurance Testing
- Scalability Testing
Load Testing: It which determines the performance of a system application under real life based pad conditions. It is a behavior of the application when multiple users use it at the same time.
The objective of the load testing is to allow more user to access the application and to maximize the operating capacity of a software application.
Stress testing: Definition of this testing,we give unfavorable conditions to the system and check how they perform in those conditions.
Soak Testing: It is type of non- functional software testing that is used to measure performance of a software product under a huge volume of load for an extended period of time.
Objective of soak testing is to ensure whether the software application sustain high volume of usage and to check what would happen outside of its design expectation.
Volume Testing: It is type of software testing where the software is subjected to a huge volume of data. It also known as flood testing.
This is to measure the performance attributes of a system while large simultaneous users work on it. It which help us to check the behavior of an application by inserting the large volume of load in terms of data.
Endurance Testing: Endurance testing is refers to tests typically done to find whether an application can withstand the processing load it is expected to have to endure for a long period. It sometimes referred to as soak testing.
Objective of this testing is to ensure that the application is capable enough to handle extended load without any deterioration of response time.
Scalability Testing: Is used to checking the performance of an application by increasing or decreasing the load in particular scales is known as scalability testing.
It has two types are included like Upward scalability and Downward scalability.
Upward Scalability Testing: Increase the number user on a particular scale until we get a crash point. Users of this type to find maximum capacity of an application.
Downward Scalability Testing: Is used when the load testing is not passed, then start decreasing the number of users in particular interval until the goal is achieved.
It is wide testing where we need to have an application knowledge. And it also known as User Experience (UX)testing.Usability testing is easy to understand, easy to access, look and feel, faster to access, effective navigation and good error handling.
Types of Usability Testing
- Exploratory Testing
- Cross Browser Testing
- Accessibility Testing
Exploratory Testing: As a name suggest that the exploratory testing means testing of software without any specific plans and schedules.
Exploratory testing is done on the fly and relies on the tester to think beyond the limits of the scripted tests. It is design a test, execute it immediately observe the results, and use results to design the next test.
It has minimum planning and maximum execution.
Cross Browser Testing: It means to test website or application in multiple browsers .It can be done of the website and mobile application.
Accessibility Testing: It is defined as the practice of ensure your mobile and web apps are working disabilities such as vision impairment,hearing disabilities, and other physical or cognitive conditions.
In this type of testing is a part of non- functional testing to check whether the functionality of an application a different software, hardware, platforms, network and browsers is known as compatibility.
Other Types of Software Testing
Regression Testing: It is performed to determine if the code modifications break an application.
Adhoc Testing: It is done when he build is in the checked sequence, then ad hoc testing is done by checking the application randomly. And it also known as monkey testing and Gorilla testing.
Interactive Testing: In this testing is a fairly new feature of tosca commander. It allows you to set up a testing session to distribute manual test cases to tester or non-tester alike. Tester do not need to have tosca installed on their computer, they can run the tests in a small agent and report back their results.
Stability Testing: Stability Testing is checking the performance of an application by applying the load for a certain duration of time is known as stability testing.
Back-end Testing: Whenever an in the put or data is entered on the front –end application it in stored in the database and the testing of such database in known as database testing (or) back end testing
Negative Testing: The mindset of the tester is to break the system and it is achieved negative testing. In this technique is performed using incorrect data invalid data for input. It validates if the system throws an error of invalid input and behaves expects.
The above mentioned and explained software testing types are just a part of testing.
However there is still a list of over lost types of testing but we do not we all testing types of project hence we have covered some common types of software testing which all mostly used in the testing life cycle.