Before going into the testing terminologies – let us know what you mean by Software Testing.
What is Software Testing?
It is the process of finding the yet undiscovered bugs/errors in the program. The user tests the program, find the error and bugs which could hamper the normal functioning of the program.
Sometimes, there are changes made to the software, new functionality, or changes to the existing functionalities that are done introduces the possibility of error. It also increases the risk that software would not work as per requirement or does not fulfill the intended purpose.
Testing reduces this risk. It is through the process of testing and rectification, that we can identify the issues and resolve them.
Types of Testing Techniques / Terminologies
- Unit Testing – It refers to individual units or components of the software that are tested. The purpose of unit testing is to see that each software unit performs as per the expected requirement and functionality. It may be termed as first-level testing.
- Integration Testing - It refers to testing in which the individual software components or modules are combined together and tested as a group. It is used to see whether there is any fault in the integrated units. It is normally performed after the unit testing.
- System Testing – The testing is performed on the system as a whole and to see whether the system is working as per the requirements and functionality specified. It takes the components of the integration testing as input and performs the testing.
- Regression Testing – This testing is performed to check whether the changes to the software do not produce undesirable results. It is used to ensure that the previously developed software components and tested components still perform correctly after the changes. It also depicts that the changes have not broken any functionality.
- UAT – User Acceptance testing – It is the testing done by the end-user or client to accept the software system before moving the software to the production environment. It is used to check the functionality of the software end to end related to the business flow.
The testers should possess good knowledge of the software or application. There should not any critical bug or error should be left in the application.
- Black Box Testing – In this type of testing, the emphasis is on the functionality of the application. The code for the tester is like a black box. He concentrates on the functionality rather than the internal structures of the application. It is used to check the application from the user’s perspective and per requirements stated by the customer.
- White Box Testing - In this type of testing, the emphasis is given on the internal structure of the program in the application/software, code structure, internal design to verify the input and output of the process in the software.
- Grey Box Testing – This software testing method is a combination of Black Box testing and White Box Testing. It includes the testing of internal coding structure so involves the inputs from both developer and tester to ensure a quality product.
- Ad-hoc Testing – It is also one of the terms used in Software Testing. The testing is performed without planning and other formal documentation. It is normally intended to run once. This testing is carried out on a random basis to check the functionality of the application.
- Exploratory Testing – In this testing, the tester explores the application what intends to do, or its purpose. The tester uses his experience and knowledge to check the application and try to find errors/bugs. We can say it learning along with the test execution.
- Alpha Testing – This testing is performed before the final product is released to the end-users or the customer. This testing is basically performed by the QA Testers internally to the organization or you can say performed at the developer’s site. The Bugs can be addressed by the developer immediately and can be fixed.
- Beta Testing – This testing is performed by the end-users or at the customer's place who are not part of the organization. It is normally performed at the client’s place. The issues collected from the testing will be implemented for future versions of the product or application. The user inputs are gathered on the product and ensure it is ready for the customers.
- Automated Testing - In this testing, the Test cases execution takes using an Automation tool. The Test data is prepared, test cases are executed using the required data. Test scripts are created for the testing of the application.
Test Automation has the following benefit:
- Much faster than the manual testing
- Test results are reliable
- It saves time and cost in respect to testing
- Better speed in executing tests. You can carry out multiple Test cases in one go through Automated Testing.
- Test scripts can be re-used for the execution of similar test cases for other applications.
- As it is faster than manual testing, we can test our test cases multiple times. The Number of Test case execution cycles can be increased.
Testing Tools used for Automated Testing
- Selenium
- Appium
- Ranorex Studio
- QTP
- Loadrunner
- RPT – Rational Performance Tester
- RFT – Rational Functional Tester
- Watir
- Apache Jmeter
There are four major automated testing techniques:
- Record/playback
- Scripting
- Data-driven testing
- Keyword-based
Some of the Templates related to Software Testing
Test Case Template
Test Cases
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
System Name: | ||||||||
Module Code: | ||||||||
Test requirement: | ||||||||
ID | Test Case Description | Test Case Procedure | Expected Output | Test date | Result | Remarks | Bug Id | Test Data |
Defect Report / Bug Report
It is just a sample, may differ as per the requirement.
- Bug Name:
- Bug ID:
- Navigation Path:
- Build Number:
- Severity:HIGH (High/Medium/Low)
- Priority:HIGH (High/Medium/Low)
- Assigned to:
- Reported By:
- Reported On:
- Reason: Defect
- Status: New/Open/Active (Depends on the Tool you are using)
- Environment:
- Description:
- Steps To Reproduce:
- Expected Result: