The unit test is a procedure used to validate that a particular module of source code is working properly. The procedure is to write test cases for all functions and methods so that whenever a change causes a regression, it can be quickly identified and fixed. Ideally, each test case is separate from the others. This type of testing is mostly done by the developer/tester and not by end-users. The goal of unit testing is to isolate each part of the program and show that the individual parts are correct.
Integration testing is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing. Integration testing takes ‘modules’ as its input. These modules have been checked out by unit testing. Integration test groups them in larger aggregates, applies tests defined in an Integration test plan to those aggregates, and delivers it as an integrated system that is ready for system testing.
System testing is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing is the first time that the entire system can be tested against the functional and non-functional requirement. System testing is intended to test up to and beyond the bounds defined in the software/hardware requirements specifications.
The acceptance test is jointly performed by users or sponsors with manufacturers or producers through black-box testing (that is, testers need not know anything about the internal workings of the system). The results will determine acceptance of the system. Acceptance tests generally take the form of a suite of tests designed to be executed on the completed system. Each individual test, known as a case, exercises a particular operating condition of the user's environment or feature of the system, and will result in a pass or fail Boolean outcome. The objective is to provide confidence that the delivered system meets the business requirements of both sponsors and users.
A software release refers to the creation and availability of a new version of a software product. Each time a software program has major changes, the project team should decide on how to distribute the changes or the changed system to the customer. Release procedure is a procedure concerned with the compilation, assembly and delivery of source code and any related documentation into finished products or other software components.
Selenium
Microsoft team
XUnit.Net