What is Software Testing?Where the application functions as per the requirement of end users, the software application or program to go to know where to find error / errors in the process or method is to get software testing.
According to Standard Definition - the process of analyzing software items to detect differences between the existing and required conditions (i.e., faults) and to evaluate the features of the software item.
It meets business and technical requirements that directs its design and development.
Works as expected.
Can be implemented with the same characteristic.
Software Testing Types:
1) Manual Testing:Manual testing involves testing a software manually, that is, without using any automated tool or any script. Thus, Tester plays the role of End Users and tests the software to identify any unexpected behavior or bugs. There are different steps for manual testing, such as unit testing, integration testing, system testing, and user acceptance testing.
Testers use test plans, test cases, or test scenarios to test a software to ensure the completion of the test.
Manual testing also includes exploratory testing, because the testers explore the software to identify the error.
2) Automation Testing:Automation testing, also known as test automation, occurs when the tester writes scripts and uses any other software to test the product.
This process involves the automation of the manual process. Automation testing is used to manually, quickly and repeatedly test scenarios run again.
In addition to regression testing, automation testing also uses load, performance, and stress point of view. It enhances the coverage of the test, improves accuracy, and saves time and money in comparison to manual testing.
Software Testing Tools
- HP Quick Test Professional
- IBM Rational Functional Tester
- Testing Anywhere
- Visual Studio Test Professional
Methods of Software Testing in Hindi:
1) Black Box Testing:It is also called Behavioral / Specification-Based / Input-Output Testing.
Without any information about the application's internal work, the testing technique is called black-box testing.
The examiner is unaware of the system architecture and does not have access to the source code.
Generally, while doing black-box testing, the tester interacts with the system's user interface by giving input and checking its output, without knowing how and where to work on the input.
2) White Box Testing:White-box testing is also called glass testing or open-box testing.
White-Box Testing is an extensive test of internal logic and code structure. The testers track the source code and find out which unit / part of the code is behaving incorrectly.
White-Box Testing is done to design the test case of programming skil as well as the internal aspect of the system. This test is usually done at the unit level.
3) Gray-Box Testing:Gray-Box Testing is a technology to test the application with limited knowledge of the application's internal functionality.
In software testing, the more you know the tester phrase, the better the app can test.
Unlike black-box testing, where the examiner only examines the user interface of the application; In gray-box testing, the tester has access to the design documentation and database.
With this knowledge, a tester can create better test data and test scenarios.
Software Testing - Levels:There are different levels during testing process. A brief description of these levels is given below.
The main two levels of software testing are: Functional Testing and Non-Functional Testing
A) Functional Testing:This is a type of black-box testing based on the specifications of the software to be tested. The application is tested by providing input and then the results are checked which should be tailored to the desired functionality. Functional testing of a software is performed on a complete, integrated system, which evaluates system integrations according to specific requirements.
There are five steps while testing the application for Functionality.
1) Unit Testing:Unit Testing is done to check whether different modules of source code are working properly or not.
That is, in the developer's environment, each unit of individual applications is tested by the developer.
The goal of unit testing is to separate each part of the program and to check that all parts are correct in terms of requirement and functionality.
2) Integration Testing:Integration testing is defined as testing of the combined parts of an application to determine whether they work correctly.
Integration testing can be done in two ways: Bottom-up integration testing and Top-down integration testing.
3) System Testing (End To End Testing):System testing thoroughly examines the system. Once all components are integrated, then the entire application is tested to see if it meets the specified suffix standard. This type of test is done by a special testing team.
4) Regression Testing:Whenever a software application is changed, it is quite possible that other arihas within the application have also been affected by this change.
Regression testing is done to verify that fixed bugs are not violating other functionalities or business rules.
The intention of regression testing is to ensure that in a bug fix application elsewhere there are no mistakes.
5) Acceptance Testing:This test is done to get the customer sign-off, so that the software can be delivered and the payment is received.
Acceptance Testing is alpha, beta and gamma testing type.
B) Non-Functional Testing:This section is based on testing an application with any non-functional features. Non-functional testing involves testing the software with the requirements that are non-functional in nature but are important for performance, security, user interfaces, etc.
1) Performance Testing:It is used mostly in software to identify problems of any obstacles or performance, instead of finding bugs. There are various reasons for the performance of the software:
- Network delay
- Client-side processing
- Database transaction processing
- Load balancing between servers
- Data rendering
2) Load Testing:It is the process of examining the behavior of software by applying maximum load in case of access to software behavior and manipulation of large input data. This can be done both in normal and extreme weight. This type of test identifies maximum efficiency and behavior of the software at the climax.
Most of the time, with the help of automated tools like Load Tests, Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load Test, etc.