Functional Testing - Part II


SOFTWARE FUNCTIONAL TESTING – PART II

v What is a Test Case?
Test Case is a document that captures all possible test scenarios from end users perspective of a specific feature, based on which the testers perform testing on an application.

v Why Test Cases are written?
Test cases are written mainly because:
Ø To have better test coverage
Ø To have consistency in test execution
Ø To depend on the process rather than person
Ø To avoid training every new engineer on the product
Ø If you see the requirement and test, chances are there we may miss out lot of scenarios.

v What are the main advantages of writing the test cases?
Main advantages of writing the test cases are:
Ø All possible scenarios are well documented in the organised manner based on which the application is tested.
Ø No need to remember the scenarios in each cycle
Ø Consistency in testing in achieved

v When we write Test Cases?
We write test cases when:
Ø When Developers are busy in building the product, Testers write the test cases.
Ø Write new test cases for every new features(in case if customer adds extra feature).
Ø If existing features are modified – modify the test cases
Ø If certain features are removed – write the test case to ensure that the feature is removed or not.

v What are the different types of test cases?
The different types of test cases are:
a) Functional Test Case – The test case based on which the functionality of an application is tested is called as Functional Test case.
b) Integration Test Case – The test case based on which the integration of an application(that is data flow between the modules) is tested which is called as Integration Test case.
c) System Test case – The Test case based on which end – to – end business scenarios are tested is called as System Test case.

v What are the characteristics of good Test Case?
·  All possible test scenarios are covered
·  Flow of test case should be good(the in which scenarios are organised should be good)
·  If the flow is good, saves a lot of time while executing test case
·  Simple to understand, so that if given to new test engineer, should be able to execute it without any doubts.
·  It should be able to catch defects.

v What are the different sections present in the Test case?
The 3 important sections present in the test case are:
a) Header of the Test Case
b) Body of the Test Case
c) Footer of the Test Case

a)    Header of the Test Case:
Header of the test cases consist of information related to the features on which test case are written. These information are very useful – before – during – and after the test execution.
Header of the Test case mainly consist of :
·  Test Case Name – Indicates the unique name given to the test case
·  Requirement No. – Requirement number representing the corresponding feature
·  Module Name – Represent the  name of the feature or module
·  Severity – Importance of this test case for a specific feature which can be categorised into Major, Minor. So this test case can executed based on the severity.
·  Test Data – The data which is used as input values while writing the test case and executing the test case.
·  Pre – condition – Set of certain actions or the conditions that needs to be satisfied before executing the test case.
·  Test case type – Type of test case like Positive/Negative Integration Test case
·  Brief Description – provides the description related to that particular test case of a specific feature.

b)   Body of the Test case
Body of the test case consist of following important attributes.




Step No.
Action
Expected Result
Actual Result
Status
Comment



c)    Footer of the Test case
It consist of the details like, the person who writes the test case, checked the test case and approved the test case.
·  Author – name of the tester who has written the test case.
·  Reviewed by – name of the person who reviews the test case
·  Approved by – name of the person who approves the test case
·  Approval date – Date of approval of the test case.

v What is a Test Plan? Mention the various attributes of a Test Plan.
Test Plan is a dynamic document that consist of all the activities that needs to be performed during the actual testing which are categorised under different attributes.
The attributes present in the Test Plan are:
1.     Objective
2.     Scope
3.     Approach
4.     Assumption
5.     Risk
6.     Mitigation
7.     Testing Methodologies
8.     Test Environment
9.     Test Automation
10.   Entry and Exit Criteria
11.   Schedule
12.   Roles and Responsibilities
13.   Defect Tracking
14.   Deliverables
15.   Template

v What is Traceability Matrix?
Traceability Matrix is a document that ensures that every requirement has its corresponding Test Case. It is a document that gives the traceability from high level requirement to the automation scripts.
v What is a Defect?
If the actual result is not according to the expected result as specified in the requirement, then we call it as Defect.
                             (OR)
Deviation from the requirement specification is called as Defect.
v What is a Bug?
Bug is an informal name given to the defect.

v What is an Error?
Mistakes done by the programmer because of which it is not possible to compile or run the program is called as an Error.
Two types of error:
1.     Compile time error
2.     Run time error

v  What is failure?
Defect causes failure. One defect may lead to one failure or one defect may lead to multiple failures.

v What are the causes of the defect?
Defects are caused mainly because of:
·       Wrong implementation
·       Missing implementation
·       Extra implementation.

v  What is Defect Tracking?
Defect Tracking as the name indicates, tracking the defect or bug that is identified to ensure that the developer has fixed the bug, this entire process is called as Defect Tracking.

v What do you mean by Defect Life Cycle or Bug Life Cycle?
The journey of the defect or the bug from the state of its identification to the state of its closure, that is from the status of ‘Open’ to the status of ‘Closed’ is called as Defect Life Cycle or Bug Life Cycle.
·       When Test Engineer identifies the bug, he/she immediately prepares the defect report, by setting the status of the defect as ‘Open’ and it will be sent to the Development Lead
·       Development Lead after confirming it as a defect he/she assigns the defect to the concerned Developer by changing the status of the defect as ‘Assigned’.
·       Developer now makes the necessary modification and fixes the defect and status will now be changed to ‘Fixed’
·       Test Engineer now once again re-tests the application to ensure that defect is fixed or not, if defect is really fixed the status will be changed to ‘Closed’ or else status will be changed to ‘Re – Open’ if the defect is not properly resolved

v What are the different Defect or Bug Statuses ?
The different statuses of the Bug are:
§  Open
§  Assigned
§  Fixed
§  Closed
§  Re – Open
§  Reject
§  Duplicate
§  Request For Enhancement (RFE)
§  Cannot be Fixed
§  Not Reproducible
§  Postponed

v Sample Test Cases
(Courtesy: Naresh Bisht)




































A Pet Bottle






































              A Stapler




























         A Fountain Pen

     




































         ATM Machine