Manual Testing Documentation
Manual Testing Documentation
Table of Contents
● Software Development lifecycle
● Types of software Development Life Cycle
● What is testing
● Seven Principles of testing
● Types of Testing
● Types and Levels of Black Box Testing
● What is Test cases and how to write it..?
○ Test case header
○ Test case body
○ Test case footer
○ Basic example of Test case
● Testing Design Techniques
○ Equivalence Partition(EP)
○ Boundary Value Analysis(BVA)
○ Error Guessing
○ Decision Table testing
○ State Transition testing
● Bug life Cycle
○ Defect Tracking Tool
○ Seaviority
○ Priority
● Regression Testing
● Globalization and Usability Testing
● RTM
○ How we use in our Organization(U.C Tracker)
Software Development Life Cycle(SDLC):
It is step by step procedure to develop the software and should result in a high quality
system that meets customer expectations, reaches completion within time and cost
estimates, works effectively and efficiently and is inexpensive to maintain and cost
effective to enhance.
SDLC consists of various phases
● Requirements
● Feasibility Study
● Design
● Coding
● Testing
● Deployment/Rollout
● Maintenance
Requirements:
In these phase we collect the complete business needs from the customers in
the form of requirements (In our organization we call it as
PRD
).
Feasibility Study:
In these phase the set of people(Dev and Qa managers) will analysis weather
the project is feasible or durable based on requirements.(In this they will discuss mainly
about Cost, Time, Technical aspects etc...).
Design:
t
Inhese phase we will create a blueprint of the application which will be in the
form of High Level Document (HLD) which is again converted in to Low Level
Document (LLD),(In our organization we call it as
Design Document ).
Coding:
In these phase once the design is ready a set of developers will start writing the
code. It mean the developers will develop the application according to requirements.
Testing:
In these phase once the development finishes developing the application or part
of application then test engineers will start testing the application.
Deployment/Rollout :
In these phase once the testing is done and after all the bug fixes and once the
application is stable then we install the application at customers place which is called as
deployment or Rollout.
Maintenance:
In these phase once the customer start using the application then some issue
may rises or some change requests may come in the form of complaints then those
issues should be solved and should be given back to customers.
1.Waterfall Model:
It is a traditional model and It is a sequential design process, often used in SDLC,
in which the progress is seen as flowing steadily downwards ( like a waterfall ), through
the different phases as shown in the figure,
Advantages of waterfall model : Requirements do not change nor does design and
code, so we get a stable product.
2.Spiral Model:
In Spiral model, the software product is developed in small modules. Let us consider the
figure shown below in developing a s/w product X. X is built by integrating A,B,C and
D.(AProof Concept, BFirst Build, CSecond build, DFinal build)
The module A – requirements of the module is collected first and then the module is designed.
The coding of module A is done after which it is tested for defects and bugs.
The module B – once module A has been built, we start the same process for module B. But
while testing module B, we test for 3 conditions – a)test module B b)test integration of module B
with A c)test module A.
The module C – after building module A,B, we start the same process for module C. Here we
test for the following conditions – 1) test module c, b, a 2) test for integration of C and B, C and
A, A and B.
And thus the cycle continues for different modules. Thus in the above example, module B can be
built only after module A has been built correctly and similarly for module C.
Advantages of Spiral Model :
1.Requirement changes are allowed.
2. After we develop one feature / module of the product, then and only then we can go
on to develop the next module of the product.
This model came up in order to overcome the drawback of waterfall model – here
testing starts from the requirement stage itself.
The V & V model is shown in the figure in the next page.
1. In the first stage, the client send the CRS both to developers and testers. The
developers translate the CRS to the SRS.
The testers do the following tests on CRS,
1. Review CRS
a. conflicts in the requirements
b. missing requirements
c. wrong requirements
2. Write Acceptance Test plan
3. Write Acceptance Test cases
The testing team reviews the CRS and identifies mistakes and defects and send it to the
development team for correcting the bugs. The development updates the CRS and
continues developing SRS simultaneously.
2. In the next stage, the SRS is sent to the testing team for review and the developers
start building the HLD of the product. The testers do the following tests on SRS,
1. Review SRS against CRS
a. every CRS is converted to SRS
b. CRS not converted properly to SRS
2. Write System Test plan
3. Write System Test case
The testing team reviews every detail of the SRS if the CRS has been converted
properly to SRS.
3. In the next stage, the developers start building the LLD of the product. The testers do
the following tests on HLD,
1. Review HLD
2. Write Integration test plan
3. Write Integration test case
4. In the next stage, the developers start with the coding of the product. The testing
team carries out the following tasks,
1. Review LLD
2. Write Functional test plan
3. Write Functional Test case
After coding, the developers themselves carry out unit testing or also known as white
box testing. Here the developers check each and every line of code and if the code is
correct. After whitebox testing, the s/w product is sent to the testing team which tests
the s/w product and carries out functional testing, integration testing, system testing and
acceptance testing and finally deliver the product to the client.
Advantages of V&V model :
1) Testing starts in very early stages of product development which avoids downward
flow of defects which in turn reduces lot of rework
2) Testing is involved in every stage of product development
3) Deliverables are parallel/simultaneous – as developers are building SRS, testers are
testing CRS and also writing ATP and ATC and so on. Thus as the developers give the
finished product to testing team, the testing team is ready with all the test plans and test
cases and thus the project is completed fast.
4) Total investment is less – as there is no downward flow of defects. Thus there is less
or no rework
Applications :
We use this model when,
1) Customer is new to the s/w
2) When developers are new to the domain
3) When customer is not clear about his own requirement
What is testing…? :
It is a process of finding or identifying defects in application or
software is called software testing. It is verifying the functionality(behavior) of the
application(s/w) against requirements specification.
or
It is the execution of the s/w with the intention of finding defects. It is checking whether
the application(s/w) works according to the requirements.
Types of Testing :
1. Functional testing:
Also called component testing. Testing each and every component thoroughly
(rigorously) against requirement specifications is known as functional testing.
Example: Login page of gmail in these we check each and every labels, text fields,
checkbox
2.Integration testing :
Testing the data flow or interface between two features or modules is known as
integration testing.
Example: Compose mail from user A send to user B, check in send box. Login as user
B and check whether mail is received or not.
3.System testing :
It is endtoend testing wherein testing environment is similar to the production
environment.
Here, we navigate through all the features of the software and test if the end business /
end feature works. We just test the end feature and don’t check for data flow or do
functional testing and all.
5.AdHoc Testing :
Testing the application randomly is called Adhoc testing/Monkey testing/Gorilla
Testing
Why we do Adhoc testing ?
● Endusers use the application randomly and he may see a defect, but
professional TE/QA uses the application systematically so he may not find the
same defect. In order to avoid this scenario, TE/QA should go and then test the
application randomly (i.e, behave like and enduser and test).
● Adhoc is a testing where we don’t follow the requirements (we just randomly
check the application). Since we don’t follow requirements, we don’t write test
cases.
Performance testing :
This topic is covered in Ch:8 sub topic:8.2
What is Test cases :
Test case is a document which covers all possible scenarios to test all the
features and It is a set of input parameters for which the s/w will be tested. The SRS are
numbered so that developers and testing team will not miss out on any feature .
1. Equivalence Partition(EP)
2. Boundary Value Analysis(BVA)
3. Error Guessing
4. Decision Table testing
5. State Transition testing
Equivalence Partition(EP) :
In this we have two types
1. Pressman Method
2. Practice Method
Pressman Method:
If the input is a range of values, then design the test cases for 1 valid and 2 invalid
values.
Ex: Amount text field accepts range of values
500 – valid, 90Invalid, 6000 Invalid
If the input is a set of values, then design the test cases for 1 valid and 2 invalid values.
If the input is Boolean, then design the test cases for both true and false values.
Ex – checkboxes, radiobuttons etc.
Practice Methode
Testing the application by deriving the below values,
When Pressman techniques are used, the first 2 programs are tested, but if Practice
method is used, all these are covered.
It is not necessary that for all applications, practice methodology needs to be used.
Sometimes, Pressman is also fine.
But, if the application has any deviation, splits or precision – then we go for Practice
method.
If Practice methodology has to be used, it should be
a) Case specific
b) Product specific
c) Number of divisions depends on the precision (2% or 3% deduction)
Thus, a number of bugs can be found when applying BVA because developer tends to
commit mistakes in this area when writing code.
When comparing Equivalence Partitioning and BVA, testing values are repeated. if that
is the case, we can neglect Equivalence Partitioning and perform only BVA as it covers
all the values.
References:
http://www.tutorialspoint.com/software_testing_dictionary/test_case_design_tech
nique.htm
Bug Life Cycle:
The following image explains how the entire bug life cycle is
Defect :
If a feature is not working according to the requirement, it is called a defect.
or
Deviation from requirement specification is called as defect.
Severity of a Bug
Severity is impact of the bug on customer’s business.
Critical : A major issue where a large piece of functionality or major system component
is completely broken. There is no work around & testing cannot continue.
Major : A major issue where a large piece of functionality or major system component
is not working properly. There is a work around,however & testing can continue.
Minor: A minor issue that imposes some loss of functionality, but for which there is an
acceptable & easily reproducible workaround. Testing can proceed without interruption.
Priority of a Bug
It is the importance to fix the bug (OR) how soon the defect should be fixed (OR) which
are the defects to be fixed first.
High: This has a major impact on the customer. This must be fixed immediately.
Medium: This has a major impact on the customer. The problem should be fixed before
release of the current version in development
Low: This has a minor impact on the customer. The flow should be fixed if there is time,
but it can be deferred with the next release.
Blocker Defect
There are 2 types in blocker defect,
Major flow is not working – Login or signup itself is not working in CitiBank application
Major feature is not working – Login to CitiBank. Amount Transfer is not working
Regression Testing:
The process of reexecuting the previous features or re executing the previous
test cases due to code changes across multiple releases or builds to make sure that
dependent modules are not affected or broken.
The below image explains the different phases of software test life cycle.
Globalization Testing :
Developing the application for multiple languages is called globalization and
testing the application which is developed for multiple languages is called globalization
testing.
Ex: Checking whether the correct time and date, phone no. and country zip codes are
displayed accordingly or not.
1. An input field takes the year of birth between 1900 and 2004. The boundary
values for testing this field are:
A. 0,1900,2004,2005
B. 1900, 2004
C. 1899,1900,2004,2005
D. 1899, 1900, 1901,2003,2004,2005
Answer : C
2. Boundary value testing..?
A. Is the same as equivalence partitioning tests
B. Test boundary conditions on, below and above the edges of input and output
equivalence classes
C. Tests combinations of input circumstances
D. Is used in white box testing strategy
Answer : B
Answer : C
4. One Key reason why developers have difficulty testing their own work is :
A. Lack of technical documentation
B. Lack of test tools on the market for developers
C. Lack of training
D. Lack of Objectivity
Answer : D
5. During the software development process, at what point can the test process
start?
A. When the code is complete.
B. When the design is complete.
C. When the software requirements have been approved.
D. When the first code module is ready for unit testing
Answer : C
Answer : C
Answer : C
Answer : A
Answer : D
Answer : B
11. A deviation from the specified or expected behavior that is visible to
endusers is called:
A. An error
B. A fault
C. A failure
D. A defect
Answer : B
Answer : C
Answer : D
14. Which of the following is the main purpose of the integration strategy for
integration testing in the small?
A. To ensure that all of the small modules are tested adequately
B. To ensure that the system interfaces to other systems and networks
C. To specify which modules to combine when, and how many at once
D. To specify how the software should be divided into modules
Answer : D
Answer : B