In: Computer Science
Testing:
Solution :-
The Levels of Testing pyramid are(From top to bottom) :-
1) User Interface(UI) Test
2) Integration Tests
3) Unit Tests
The Unit test is usually automated whereas User Interface Test and Integration Test are not automated.
The Types of tests :-
1) Unit tests - The developers do these test to prove themselves that the code they have written works. Without the fear of breaking anything, it enables them to make changes. They are low level tests that developers write on objects.
2) Acceptance test - This testing is performed by the client to verify that the end to end flow of the system is according to business needs or not and as per the requirements of end user. The software is accepted by the client only if all the functionalities and features are met. It is the Last phase in testing after which it goes for production. It is also known as User Acceptance Testing(UAT).
3) BDD(Behavior Driven Development) - Here the environment for development is tested and then the generated application code turns out to be bug free. An automated regression pack is obtained with each iteration of tests. This helps us to ensure that earlier features are working. These tests serves as a reference for future iterations and documentation of application behavior.
4) ATDD(Acceptance Test Driven Development) - It is done by whole team collaboratively by discussing acceptances criteria and comes to final set of concrete acceptance tests before the production begins. Interfaces specific to functional testing is been favored by ATDD. it is also called as Story Test Driven Development(SDD).
5) UI testing - The User Interface Tests or UI test, tests the system just like as a normal real world end user would test. The user interaction is mimic in the script or a form and the script is run in the form of test and it interacts with the system as a regular user. It is simple and tests the complete system end-to-end.
6) System and Constraint test - As per the requirements the entire system is tested under System tests. It covers all the combined parts of the system and it is a Black Box type of testing that is based on overall requirement specification.
The Constraint based testing is innovative and emerging trends in software testing. The main objective of this testing is to exploit solving constraint and optimization to generate test cases for testing a software system. This will improve the fault revealing capabilities of the testing process.
7) Integration testing - Here Individual software modules are combined and tested as a group. This testing is usuallu conducted by teams.
8) Performance testing - This testing is done to check whether the performance requirements are being met or not. This testing involves different load and performance tools. It is also called as Stress and Load testing.
9) Exploratory Testing - It is performed by testing team and it is an informal testing. The purpose of this testing is to look for defects that exists in the application and explore the application. While performing exploratory testing system failure can be caused.
The areas of concern for Security Testing -
The Types of Security tests -