3.1. Unit Testing
3.1.1. Definition
Unit testing (microsoft) is a first level of software testing where a unit/component of software was tested to match requirements. Generally Unit testing is performed by developers or its peers. Sometimes independent software testers are used to do Unit testing. Unit testing is also referred as component testing.
Before integrating the modules, the unit or piece of code is identified as a component and complete testing was carried out to ensure expected output. I.e., for any function or procedure a proper output is expected when an input was given. Also it should handle negative scenarios or failures during execution of unit testing.
3.1.2. Benefits
• The cost of fixing a defect at …show more content…
• Good unit test plan contains all scenarios/path covered and catches error/defect when a code was modified.
• Impact analysis is not required at this level of testing, as only a piece of code was modified.
• If an error was found at this level of testing, the latest changes needs to be verified. It simplifies testing efforts at later stage. 3.1.3. Tools used
Various tools and frameworks are used based on programming language.
3.1.4. Test Case
Identifying test case for unit testing includes the set of inputs, preconditions to execute the unit/module, and expected output. The test procedure should clearly explain the flow of the test condition and expectations with input conditions.
In general, two types of test case are derived for Unit testing,
1. Positive Test case
2. Negative Test Case
3.1.5. Logical Coverage methods
To identify test case, logical coverage has to be covered. It can be achieved by using the following methods,
3.1.5.1. Boundary Value Analysis
• A boundary value is one which indicates the border (or the limit) of a value
• Test cases that explore boundary values have the highest payoff in terms of detecting bugs, as the most common errors occur at the boundary …show more content…
• Business acceptance testing – External/ Customer identified potential users test the product.
• Alpha testing – Similar to Internal user acceptance testing, group of development team test.
• Beta testing – In client environment testing takes place by group of customers/end users.
• Operational acceptance / Production acceptance testing – final test to release product for production.
• Contract acceptance testing – Customer agreed requirements verified.
• Compliance acceptance testing – Legal / Regulations are verified.
From all types of testing, feedback is received and the software is updated. The output of this testing is either acceptance of the product or rejection of the product. In live environment, the changes are marked and are migrated to production in iterative process.
System component testing are using tools in this phase of testing and end-user requirements are verified manually similar to end-user actions.
4. Tools list
Below are few tools used for testing at various levels of software testing. But these tools are not limited to and many other tools are available for testing. 5.