Unit Testing is done to check whether the individual modules of the source code are working properly. i.e. testing each and every unit of the application separately by the developer in the developer’s environment.
User interface testing
User interface testing is a process used to test if the application is functioning correctly. UI testing can be performed manually by a human tester, or it can be performed automatically with the use of a software program.
Integration Testing is the process of testing the connectivity or data transfer between a couple of unit-tested modules.
System Testing (End to End Testing):
It’s black box testing. Testing the fully integrated application is also called as an end to end scenario testing. To ensure that the software works in all intended target systems. Verify thorough testing of every input in the application to check for desired outputs. Testing of the user’s experiences with the application.
To obtain customer sign-off so that software can be delivered and payments received. Types of Acceptance Testing are Alpha, Beta & Gamma Testing.
Performance testing is one of the most neglected testings in companies due to its time and cost as well. Moreover, in many requirements document the quality performance requirements are not well defined to ensure system scalability. It examines responsiveness, stability, scalability, reliability, speed, and resource usage of the software and its infrastructure
Performance testing can be done by applying:
- Load testing: checks how systems function under a heavy number of concurrent virtual users performing transactions over a certain period of time.
- Stress testing: Stress limits of the system (maximum # of users, peak demands, concurrency)
- Timing testing: Evaluate the time to perform a function and the response times to return the results.
- Environmental testing: It is about the tolerances for heat, humidity, motion, portability
- Recovery testing: It tests the operation of the system in case of data loss or hardware crash.
At most software projects, there are changes in requirements, and new features are added as well. It is important to perform the new features’ test cases, but It is more important to ensure that it does not affect other tested features and functions.
Regression testing is performed to determine if the software still meets all of its requirements in light of changes and modifications to the software. Regression testing involves selectively repeating existing validation tests, not developing new tests. The most common approach to regression testing is to simply repeat the system tests. Therefore, the best to do that by using automated testing tools and techniques
it is a technique used in user-centered interaction design to evaluate a product by testing it on users. This is in context, the usability inspection methods where experts use different methods to evaluate a user interface without involving users and ensure that it is usable in terms of design colors, fields and information places, A/B test, how it takes to understand the system and use it.
Security became a very hot topic recently especially after cloud adoption, The goal of security testing is to identify the threats to the system and measure its potential vulnerabilities. It also helps in detecting all possible security risks in the system and helps to fix these problems earlier before going to production. I wrote a lot of articles on security testing.
Software testing is defined as an activity to check whether the actual results match the expected results and to ensure that the software system is Defect free.