Software Testing is a process to verify Software and with good analysis to identify problems and weakness of software. It can be called as set of processes those should be executed properly during test cases execution.

For more clarity, suppose if a website is assigned to a tester then how tester will say right or wrong about any behavior of program. First of all tester must be a good analyst then tester can perform software testing.

Practical Example: Suppose a sign up form is implemented with some fields like “Name, Email, Password” and there is need to test it, so it means if a tester is having knowledge about validate / validation process then tester can perform sign up form testing.

If tester hit on sign up button without inserting any value and sign up form showing user is registered so it means this is wrong and validations are not implemented correctly and definitely tester decided this is wrong according to good analysis then tester will report this problem then that is called software testing.

One more simple example that will make more clarity, if a building construction is going on and someone say to identify the mixture of used material and provide status that is ok or not then if it was asked to me then I will say I am professional expert in software testing and I can identify right or wrong implementation in software field, so it means to perform software testing a tester should have good analysis skill.

Finally result about software testing is to have good analysis about software testing techniques then a tester can perform software testing and this explanation I tried to share in simple way.

And now as we know Software Testing is a set of testing processes so please read types of testing.

System Testing

System testing is complete web/application testing where complete test strategy should implement and types of testings should verify as per created test cases according to what type of testing is going to be executed.

Black Box Testing

In Black Box Testing there is no need to know internal knowledge of program, means what code is written. Just need to have good analysis to create test cases according to requirement with positive and negative conditions. Means it doesn’t requires the coding knowledge.

White Box Testing

To perform white box testing there is need to know about internal structure of program. There is need to know about coding knowledge then easily white box testing can be performed. Means it requires the coding knowledge.

Alpha Testing

Alpha testing comes in development environment during implementation of program. Process can be about a module and complete developed software system but will be verified by QA team in development site before sending to client.

Beta Testing

Just simply can be replied like it is done by users at real environment after releasing software. It is process which will be tested also by a technical person for reviewing technical implementation and then user point of view to know user interface of program.

Acceptance Testing

It is a process to verify complete testing process according to requirements where tester focus to get all expected results as per software needs/requirements. If process meets all the requirements then application will be accepted that is acceptance testing.

Adhoc Testing

With this type of testing process will be moved on without any plan or test cases to get defects and break the systems just to know problems in software. In this process conditions are needed to be executed related to necessary modules but no planing.

Back-end Testing

When a request will be executed from client with some information then data should be stored in database as per needed then tester should test the back end to know information is stored correct or not.

Browser Compatibility Testing

With this type of process a tester should test the websites with different different browsers. Like a website has been tested with a single browser it means process is not done completely then there is need to test it with other browsers also.

Boundary Value Testing

This type of process should be executed at the range of boundaries. Like a password range is implemented with 5-12 range then need to use boundaries like 4, 6 and 11, 13.

Compatibility Testing

With this testing process conditions should be executed with compatibility related test cases. Like a software is developed then need to need with different different platforms, versions and some others related.

Exhaustive Testing

In this testing process number of possible inputs should be executed. For more clarity, like a form is implemented in site then need to execute whatever the inputs are possible with positive and negative test conditions and just because of it this process is very time consuming and can say not possible to execute 100% test cases.

End-to-End Testing

In end to end testing a flow should be tested from one end to other end. Like there is a order process then should be tested from user account creation to place order then order receiving with proper notifications time to time.

Equivalence Partitioning

Equivalence partitioning technique is a black box technique and with the process partitioning will be executed between the range of values. Like a zip code range is between 5-6 then values can be like -5 invalid, 5-6 valid, 7+ invalid.

Exploratory Testing

With this process we should focus to become familiar with software/websites. In simple words it is process to be familiar with developed site/application.

Functional Testing

Functional Testing means, after execution of any condition when an output comes then it is functional. In functionality testing looking to get an expected behavior from a module or any event/action.

Graphical User Interface (GUI) Testing

With this type of testing a tester should focus on graphical views of application. Feature should be visible and easy to read. Like buttons and texts are present on site but some of them not visible properly and not easy to read or some other problems may be there so that should be reported to be resolved.

Gorilla Testing

In Gorilla Testing test cases should be related to give heavy data in same module again n again then need to check behavior of functionality it is working fine or any problem with that.

Installation Testing

In installation Testing need to execute test cases with different different scenario to installation process. For example an application is developed which for android then need to test installation with internal and external memory.

Unit Testing

Need to test unit of application. Like some modules are developed but testing process is going on with different different units that is unit testing.

Integration Testing

With this testing process different different units will be integrate then testing should be performed. Means after combining units and then testing is performed that is integration testing.

Performance Testing

Performance Testing is a process to check performance behavior with developed application. In process need to create test cases related to performance related response from server. For example if getting load for same module from many users then it is working fine to give response to all users or not. Load and Stress Testing comes under then performance testing.

Load Testing

It comes under the performance testing and with this testing process need to test load on application. In this process a case should be related to give load with particular time and number of users to check performance.

Stress Testing

It comes under the performance testing. In this process a case should be related to give load on server but time to time need to increase load with number of requests from users side. Like server getting request from 100 users then suddenly 100 more users comes to send request then need to know what is behavior of server.

Monkey Testing

In Monkey Testing need to create test case to give inputs and request with randomly behavior just for trying to break and get defects with this type of scenario.

Positive Testing

With positive testing need to create positive test cases. Like there is form which is getting some fields like “name, email and phone” then need to give inputs with actual data. Not enter numeric value in name, not give invalid email and no character in phone field.

Negative Testing

With negative testing need to create negative test cases. Like there is form which is getting some fields like “name, email and phone” then need to give inputs with invalid data format. Enter numeric value in name, give invalid email and character in phone field.

Non-Functional Testing

It is like a performance testing. In non-functional testing need to check with changes of versions time to time. Like a website is tested with browser version 1 and then 2 version is now comes then it is like a change then need to test with this also.

Recovery Testing

In recovery testing need to check recovery of process/data. Sometime during executing any process gets then connection problem or may be any technical then with this type of situation need to check what is recovery of data.

Regression Testing

When we get some changes with developed module or new implementation then need to check previously implemented modules are working or not. So need to create test cases related to perform these type of scenario.

Vulnerability Testing

With this type of testing a tester should focus on weakness of software. Weakness may be about forms functionality, security and some other loop holes.

Volume Testing

In this testing process a condition will be executed with a huge amount of data like heavy data requests are done from users side then need to check behavior of server.

Sanity Testing

It can be called an initial phase of regression testing. In sanity testing to test initial phase of application/module after getting some changes or new implementation.

Security Testing

In security testing need to verify security weakness of application. It may be related to database security and network security. Need to have knowledge about database, SQL injections, network and some others related.

Smoke Testing

It is collection of initial test cases and in smoke testing need to test initial phase of application before going further verification. Means if initial phase is working then need to proceed else need to report problems then process should be going on after fixing issues.

Static Testing

Static means, when data doesn’t come from database then it means it is static. In other words if there is no connection of front end with database that is called static. So in static testing need to test front end behavior and this may be related to HTML design and static website.

Dynamic Testing

Dynamic means, when data come from database then it means it is dynamic. In other words if there is connection of front end with database that is called dynamic. So in dynamic testing need to test front end behavior and this will be related to back end/database.

For more please read tips and posts.