Software Testing Methods,Types and Levels
Software Testing Methods:
In a software development life cycle (SDLC), a project is split into modules (also known as components or unit). This helps the BAs, SMEs, Developers and team and testers to work efficiently on that unit. In Data Models also, the entire project is split as subject areas (units). This will help the data modeling team to generate sql code for each subject area and share it with DBA team, print out for each subject area, and for understanding the business needs also.
In Software Testing Life Cycle unit testing, integration testing, system testing and acceptance called levels of testing:
- Telecommunication: When you subscribe with a service provider for phone facilities: Service Request, Service Order, Tickets are three different modules and data flows between them.
- Home Mortgage: When you a buy a home in Loan: In USA, Loan Origination, Appraisal, Underwriting, Loan Approval, Loan Disbursement are different modules and data flows between them. After the payment is done usually banks pledge the loan with Fannie Mae or Freddie Mac, where data flows between systems.
- Retail Transactions: When something is bought and when you pay for that, data flows from one system to another system. From your bank, payment gateways (www.ccvenue.com, www.ebs.in, www.payu.in) or payment system (PayPal) help to transfer the money to another system in a secured way.
Step1 – Unit Testing:
The testing is conducted by the developer whether functions related to the module are properly working.
Step2 – Integration Testing:
This is mainly used for checking the data flow between the entities or modules or Systems (Business to Business (B2B) transactions or Business to Customer (B2C)) transactions. This testing is conducted by the Testers.
Step3 – System Testing:
This testing is used mainly to check whether all functional and non-functional behavior of the system is working properly.
Step4 – Acceptance Testing:
This testing is done by the development team and users who use the application.
- Alpha Testing: It is done by the developers or tester in a development environment.
- Beta Testing: It is done by the client (customer) in their premises i.e. outside the development environment. BAs, SMEs test it and they share their feedback to development team. If there are any defects it will be rectified by development team.
- User Acceptance Testing: This is the final testing done by the client (Business Users – BAs and SMEs) and they sign off. Then the product is released to actual users.
Other Testing Methods:
Whenever there are any updates (addition, deletion, modification), regression testing is done to whether the system behaves in a proper ways.
Example: Assume a table has composite primary keys and its primary keys are migrated to several child tables. When there is a need to delete one of the columns of the composite primary key, then that column will be deleted in the child tables also. To check whether there is any impact, again testing is done, which is called regression testing.
There are several requirements in a project and each requirement has many functions. Build Team sets up the testing environment and before testing all functionalities, some basic functionalities are tested (smoke testing) and if it is okay, then detailed testing is done. If basic functionalities are not okay, then resources will be wasted in detailed testing. To avoid this smoke testing is done earlier.
White Box Testing:
Development Team writes code (source code) for different requirements. The tester understands and tests the source code to find out whether the programming logic, syntax is correct to meet the expectations of the system.
Black Box Testing:
Only functional behavior of the system is tested by the tester. There is no need to understand the source code.
Companies develop new products, then releases patch, versions etc to the customers. A customer, who already has the product, should upgrade their version to the latest updates. This testing focuses on the different problems that may arise when a product or an application is installed/uninstalled/re-installed/upgraded.