Manual Testing Notes
Manual Testing Notes
● Different Models:
1) Waterfall Model.
2) Spiral Model.
3) V-Model.
4) Prototype Model.
5) Customised / Derived Model.
6) Hybrid Model.
7) Agile Model.
● Requirement Collection: Basically Business Analyst (B.A) / Product Analyst (P.A) / Subject
Matter Expert (S.M.E) will be involved in the requirement collection. Here they go to the customer
place, collect the requirement that is CRS (Customer Requirement Specification) and will convert
that CRS to SRS (Software Requirement specification).
2) Spiral Model:
● Advantages of V-Model:
1. Testing starts in the very early stage of the project development that is at the requirement
collection stage.
2. All the stages are well tested, because of this it avoids downward flow of defects which in
turn reduces a lot of re-work.
3. Total Cost will be very less.
4. The Output is given simultaneously, because of this project gets completed very fast.
● Disadvantages of V- Model:
1. It involves too much Documentation work.
2. Initial Investment is high.
● Applications of V- Model:
1. Whenever we go for Long term projects.
2. Whenever we build complex and large products /applications.
3. Whenever a customer is expecting a very high quality product under pressurized high time
frames.
1) Path Testing (Cyclomatic Complexity): Writing the Flow graph and testing all the
independent paths is called as Path testing.
● Writing flow graphs means – representing the flow of the program, how each program
is interlinked with one another.
● The program should work correctly for both conditions i.e, if condition is true, then else
should be false and vice-versa.
3) Loop Testing: Testing the loops for all the cycles is called as Loop testing.
---------
---------
---------
n=1;
--------
--------
While (n<=10)
{ ---------
---------
---------
n++;
---------
---------
---------
}
4) White Box Testing from Memory Point of View: Let’s see what are all the mistakes that
developer will do due to which the size of the program will increase.
i. Because of Logical Mistakes: The logic used by the programmer may vary. If one
developer writes a code of 300kb file size, then another developer may write the same
program using different logic and write of code of 200kb file size.
ii. Because of not using the Functions: Here developer will write same repeated no.
of lines of programs, instead the developers should write a single main program and
this main program should be called where ever it is necessary.
iv. Because of unused variables and unused functions: Developers declare so many
variables, functions which may never be used in any part of the program. Thus, the
size of the program increases. For example,
Int i = 10 ;
Int j = 15 ;
String S = “hello” ;
.....
.....
.....
....
Int a = j ;
Create user
{
....
....
100 lines of code
....
}
● In the above program, we can see that the integer i has never been called
anywhere in the program and also the function create user has never been called
anywhere in the program. Thus this leads to memory wastage.
● As the developer is doing WBT, he sees that the program is running slow or the performance
of the program is slow. The developer cannot go manually through the code and check which
line of the code is slowing the program.
x
● We have a tool by name Rational Quantify to do this job automatically. As soon as all the
programs are ready. This tool will go into the program and runs all the programs. The result
is shown in the result sheet in the form of thick and thin lines. Thick lines indicate that the
piece of code is taking longer time to run. When we double-click on the thick line, then the
tool automatically takes us to the line/piece of code which is also colored differently. We can
modify that code and again use rational quantify. When the sequence of lines are all thin, we
know that the performance of the program has improved.
● Testing each and every component thoroughly (rigorously) against requirement specifications
is known as functionality testing. It is also called as Field Level testing/ Component Testing.
For example,
● This is how the requirements given by the client looks like,
❖ From Account Number (Text field): Should accept only Alphanumeric Values and
the maximum length of the text field is 8.
❖ To Account Number (Test field): Should accept only Alphanumeric Values and the
maximum length of the text field is 8.
❖ Amount (Test field): Should accept only Numeric values.
Now the test engineer does all possible tests on the 2 account numbers as:
● From Account Number (Text field): Should accept only Alphanumeric Values and the
maximum length of the text field is 8, so the test engineer should test with the following
possible data:
i. By providing only Alphanumeric Values – It should accept the values.
ii. By providing only Alphabets – It should throw the error message.
iii. By providing only Numbers – It should throw the error message.
iv. By providing only Special characters – It should throw the error message.
v. By providing both Numbers and special characters – It should throw the error
message.
vi. By providing Alphanumeric values and special characters – It should throw the
error message.
vii. By providing less than 8 characters into the text field – It should throw the error
message.
viii. By providing more than 8 characters into the text field – It should throw the error
message.
● Let us consider two modules ‘A’ and ‘B’, Data will be sent from Module ‘A’ to module ‘B’.
● Now check whether, is there a dataflow to ‘B’ module.
● Check whether, module ‘B’ is receiving the Dataflow from module ‘A’.
● Now let us consider the example of banking s/w as shown in the figure above (amount transfer)
Scenario 1 – Login as A to Amount Transfer – send 100rs amount – message should be displayed
saying ‘amount transfer successful’ – now logout as A and login as B – go to amount balance and
check balance – balance is increased by 100rs – thus integration test is successful.
1. Understand the application thoroughly i.e, understand how each and every feature works.
Also understand how each and every feature are related or linked to each other.
2. Identify all possible scenarios.
3. Prioritize all the scenarios for execution.
4. Test all the scenarios.
5. If you find defects, communicate defect report to developers.
6. Do positive and negative integration testing:
● Positive – if there is total balance of 10,000 – send 1000rs and see if amount transfer
works fine – if it does, then test is pass.
● Negative – if there is total balance of 10,000 – send 15000rs and see if amount transfer
happens – if it doesn’t happen, test is pass – if it happens, then there is a bug and send
it to development team for repairing defects.
1) Incremental Integration Testing: Incrementally add the modules and test the data flow
between the modules.
● Take two modules. Check if data flow between the two is working fine. If it is, then
add one more module and test again. Continue the same, incrementally add the
modules and test the data flow between the modules.
● Here we can’t identify which is Parent module and which is Child module.
● Here we may miss the integration testing between some modules.
● In the above example. The development team develops the s/w and send it to the CEO of the
testing team. The CEO then logs onto the s/w and creates the username and password and
send a mail to a manager and tells him to start testing the s/w. The manager then edits the
username and password and creates a username and password and send it to the engineer for
testing. This hierarchy from CEO to Testing Engineer is top-down incremental integration
testing. Similarly, the testing engineer once he finishes testing sends a report to the manager,
who then sends a report to the CEO. This is known as bottom-up incremental integration
testing.
❖ When one module is ready and another module is not ready, in such a case how will you do
Integration testing?
★ Stubs: Stub is a dummy module which just receives data and generates a whole lot of expected
data, but it behaves like a real module. When a data is sent from real module A to stub B, then
B just accepts the data without validating and verifying the data and it generates expected
results for the given data.
★ Driver: Driver is one which sets up the test environment and takes care of communications,
analyses results and sends the report.
OR
● It is end to end testing done by engineers sitting at customer place, where in they take end to
end real time business scenarios and check whether software is capable of handling it or not.
OR
● It is end to end testing done by our own engineers sitting at customer's place, where in they
refer to user scenarios given by customer and check whether software is capable of handling
it or not.
OR
● It is end to end testing done by our own engineers sitting at software company, by referring
to user scenarios given by customers and check whether software is capable of handling the
real time business scenarios.
Load Testing: Testing the Stability and Response time of an application by applying Load which
is less than or equal to the Designed number of users is called as Load Testing.
Stress Testing: Testing the Stability and Response time of an application by applying Load
which is more than the Designed number of users is called as Load Testing.
Volume Testing: Testing the Stability and Response time of an application by transferring huge
volume of data is called as Volume Testing.
Testing the application or software which is developed for multiple languages is called
Internalisation Testing.
Here we check whether the content is in the right language or not.
Right content is displayed in right place or not.
We will check whether features are broken if the language changes.
Regional Regression Testing: Testing only the changes and all the impact regions is called
as Regional Regression Testing.
Full Regression Testing: Testing the changes and all the remaining features is called as Full
Regression Testing.
How will you identify areas or how you will do Impact analysis?
Based on the product knowledge. The Test Engineer will be knowing how each and every
module works and also I will be knowing how each and modules are related. Based on that
knowledge I will be able to identify the Impact areas.
By preparing Impact Analysis Matrix we identify areas wherein we list the changes and also
list all the features and also we map it.
By conducting Impact Analysis Meeting here entire testing team meets and discuss about
the list of changes, bug fixes and also associated impact region.
Why we Defects?
Because of Wrong Implementation: Developers would have written wrong code.
Because of Missing Implementation: Developers would have not written the code itself.
Extra Implementation: Developers would have added extra features or modules.
Blocker or Showstopper Defect: Assume that there is a defect in the software and I am
100% sure that this defect will affect the customer business flow and also it is blocking TE to
test the application. Such type of defect is called as Blocker or Showstopper defect.
Critical Defect: Assume that there is a defect in the software and I am 100% sure that this
defect will affect the customer business flow, but Test Engineer is not blocked to test the
feature. Such defect is called as critical defect.
33 ELF TRAINING | Manual Testing
Major Defect: Assume that there is a defect in the software (application) and I am not sure
that how this defect will affect the customer business work flow. This kind of defect is called
as Major defect.
Minor or Trivial Defect: Assume that there is a defect in the application and I am 100% sure
that this defect will not affect the customer business flow. This kind of defect is called as
Minor defect.
PRIORITY: Importance given to fix the defect or how soon defect must be fixed by the developer.
1. High or P1: If the defect is having High priority (P1), then developer should immediately fix
the defect.
2. Medium or P2: If the defect is having priority as Medium (P2), then developers should fix
the defect within some test cycles (or) within some builds (or) within a release.
3. Low or P3: If the defect is having priority as Low (P3), then developers can fix the defect in
upcoming release or within 2 to 3 releases.
LS and HP:
Note: Developers will always fix the defects which is having Highest Priority rather than Highest
Severity.
Note: Release: Starting from gathering the Requirement, Developing the product (software or
application) and Testing it for many cycles until we release or deploy product to the Production is called
as One Release. If the company follows AGILE Model, then the above process is called as “SPRINT”.
Note: Test Cycle: It is the effort spent or time spent by the Test Engineers to test the software.
21)
22) What is Defect Life Cycle/ Bug Life Cycle?
5) New: Test Engineer when he finds defect for the first time status will be “New”.
6) Open: When Developer start to work on the defect then the status will be in open.
7) Reject/ Invalid/ It is not a Defect: Test Engineer will assume feature itself as defect and he
will send that defect to developer. Developers say that it is not a defect it is feature in such
case they will change the status to Reject/ Invalid/ Not a defect.
Why do we get Reject status?
Because of Misunderstanding the requirement.
Because of extra feature.
Note: Whenever Test Engineer calls extra feature as defect chances are there developers might
Reject it. In such case Reopen the defect and ask to update the requirement.
When the build or software is wrongly configured or wrongly installed, If Test Engineer install
the build wrongly and find the defect in the software and communicate that to developer,
developer say that it is not a defect because code is perfect and TE is not properly installed.
Because of referring old requirement.
8) Duplicate: If Test Engineer finds defect and communicate defect to the developer eand if same
defect is logged/ tracked by other Test Engineer then Developers will tell that this is duplicate of
old defect.
Why we get Duplicate status?
Because of testing common feature.
Old TE would have found lot of defects in that there are still some pending bugs which has
to be fixed. If new Test Engineer join to same project and send’s same bugs in such case
developer say that it is duplicate.
Case 1: Test Engineer will find the defect in the software if already same defect is
present with the status as “New” in this case Test Engineer should never track the defect.
Case 2: Test Engineer finds defect in the software if already same defect is present with
the status as “Fixed” then Test Engineer Should Reopen the defect.
Case 3: Test Engineer finds defect in the software if already same defect is present with
the status as “Closed” in this case Test Engineer should track as New defect.
Test Engineer when he finds defects communicate defect to the developers and will keep CC
for Test Lead and also he should keep CC for all Test Engineers who are working in the same
project.
Test Engineer when he finds defect, before preparing a report Test Engineer should login into
the defect tracking tool and should search for duplicate defects in Defect Tracking Tool by
entering certain keywords in “Advance Search”.
Test Engineer when he finds defect before communicating that defect to Development
Engineers Test Engineer should cross check with other Test Engineers, Test Lead and also
developers so that you can avoid duplicate.
If there is a minor defect present in the root of the software and if it not is affecting
customer business, then developer say it as Cannot be fixed.
Because of the technology is not supporting: It means the programming language
which is used to develop the software has got no capacity to fix the problem.
If the cost of fixing the bug is more than the cost of the Bug, that is cost of the bug
means it the loss in the business because of having the bug in the software.
10) Postponed/ Deferred: Developers are accepting that it is the defect they want to fix it little
later, in this case developer will change status as Postponed.
Why?
If Test Engineer finds minor defect at the end of the release and if developer is not
having sufficient time to fix that defect, then developer will say it as Postponed.
If Test Engineer find defect in the feature which is not necessary for the customer in
the current release, then developer will say it as Postponed.
If Test Engineer finds a defect and send it to developer and developer will say that
customer is expecting changes in the same feature so this defect is postponed until we
get clarity from the customer.
If the Test Engineer finds the defects which is exposed to the internal users, then
developer will say that he will fix it in Future release.
12) RFE (Request for Enhancement)/ CR (Change Request): While testing software if test
engineer finds any defect which is not a part of the requirement. Then developer will say that
defect as RFE.
Who can give RFE?
It can be given by customer/ Test Engineer/Development Engineer/ Test Lead.
1) Defect Triage: When time is very less and when there are too many pending bugs to be fixed,
then we categorized the defects into different status.
All the Business Critical defects are moved to Assigned Status.
There are some defects which need not be fixed on urgent basis, they move such defects to
Postponed Status.
There are defects which need not to be fixed (Customer is ready to accept the product with
the defects), they move such defects to Cannot be Fixed Status.
2) Defect Seeding: Intentionally introducing defects in the software to check the effectiveness of
the Test Engineer is called as Defect seeding.
4) Defect Cascading: Any defect which is triggering another defect is called as Defect Cascading.
5) Defect Clustering: When the small number of modules contains most of the defects or test
failures is called as Defect Clustering. According to PARETO principle, approximately 80% of
the defects will be present in 20% of the modules.
7) Latent Defect: It is a defect which is carried forward in every sprint but, which has to be fixed
in earlier stage itself.
8) Defect Leakage: The Defects that have been missed by Test Engineers while testing the software.
9) Re-Spin: Getting one more build within one test cycle is called as re-spin.
Defect Tracking Tool is a software, which is mainly used to track (or) store the defects in a
centralized place and communicate the defect to developers in an organized way.
Different Types of Defect Tracking Tools:
BUGZILLA
QC/ALM (PMT) (Quality Controller/ Application Lifecycle Management)
JIRA (PMT)
BUGZINI
BUGPRO
BUGNET
MANTIS
CROCPLUS
Defect Template:
Traceability matrix is a document which ensures that every requirement has got at least one test
case.
1) Forward Traceability Matrix (F.T.M): Mapping from Root Document to Derived Document
is called as Forward Traceability Matrix.
2) Backward Traceability Matrix (B.T.M): Mapping from Derived Document to Root Document
is called as Backward Traceability Matrix.
3) Bi- Directional Traceability Matrix: Following both FTM and BTM is called as Bi-directional
Traceability matrix.
Test plan is a document which drives the future testing activities. It has got different section like:
To have better test coverage: When the requirement comes developers are busy in developing
product at the same time testing team should write test cases and cover all all possible scenarios
so that when build comes for testing we don't miss any scenarios.
Test cases is the only document which acts like proof to your customer, developing team and
manager that you have covered all possible scenario.
Test case acts like base document for writing the automation script: If you refer the test case
and then automate the script you can ensure that same kind of coverage is there even in
automation script.
If you don't document the test cases, you will forget the scenarios.
If you document all scenario, then test execution happens in very organised way.
If you have written or documented test cases, the test execution time will be less.
When developers are adding the features, test engineer will be adding test cases.
When developers are modifying features, test engineer will be busy in modifying the test cases.
2) Equivalence Portioning.
If the input is ranged values then design the test case for one valid and two invalid value.
If the Input is Boolean Values, then design the Test Case for both True and False Values. v
a) Practice: If the input is ranged values, Divide the range into equivalent parts and test for all
the values but make sure that you are testing for at least two invalid values.
I will go to the body of the test case and will look for: Missing scenario, Wrong scenario and
Extra scenario.
I will also check whether test case design techniques are applied or not.
I will check whether scenarios are organised properly or not, so that it takes less time for the
execution.
I will check whether it is easy to understand so that the new engineer will be execute without
asking any questions.
I will look into the header and check whether all attributes covered or not and I will also check
whether all attributes are having relevant content.
Review Ethics:
Always review the content not the Author.
While Reviewing, spend time only in finding the mistakes not the solution for it.
Even after the review if there are any mistakes, both the author and reviewer are
responsible.
Test Case Optimization: When we apply Test Case Design Techniques, there will be many
Scenarios and chances are there that many scenarios will be repeated, in order to avoid
repeated scenarios, we go with Test Case Optimization.
It is the model wherein we develop the software in an incremental and iterative manner. It is followed
to overcome the drawbacks of the traditional model. Here they build large product in shorter cycles.
Sprint: Starting from collecting the requirement doing sprint planning, actually developing and
testing the application for many cycles is called as One sprint.
Scrum team: Group of Engineers working towards completing the committed features or
stories.
Generally, scrum team will have 5 to 12 people.
It includes Share team and Core team.
Core team: Scrum Master, Test Engineer and Development Engineer.
Share team:
It is the prioritized list of stories or requirement that must be developed in complete project.
Generally, Product Owner, Scrum Master, BA, Architect involved while building product
backlog.
Generally, the stories in the Product Backlog need not to be in detail.
After formation of product backlog the scrum team will do sprint planning.
Scrum team will sit together and pull the stories from the Product Backlog.
Sprint Backlog: It is the list of stories and associated tasks committed by the scrum team that
must be delivered within one Sprint. It is committed by Scrum team.
Here entire scrum team sit together and pull the stories from product backlog.
Scrum Master assigns each story to developers and testers.
Each engineer derives the tasks to be completed to build each story,
Each engineer estimates the time taken to complete their tasks that is derive story
points.
Story Points: It is the estimated time for each and every task derived from the assigned
stories by the engineers.
Generally, sprint Planning meeting should be completed within 2 hours per week and
8 hours in a month.
Roles and Responsibilities:
Scrum Master: This complete meeting is driven by the Scrum Master.
His prime role is to facilitate the complete meeting and co-ordinate between
the stake holders.
Logout
View Member
Tasks
Modify Member
Verify Member
Actual Graph
Create Member
Login
Expected Graph
Time
b. Story Board: Table which consists of following attributes: Pending Tasks, Task in
Progress, Completed Tasks.
Chicken: Chicken is the one into observes and try to understand how sprint is going on and will not
be involved in any task.
Verification:
Unit testing, Functionality testing, Integration testing, System testing and Acceptance testing.
Static:
Functional:
Non- Functional:
1. Here we check whether the application is working according to non -functional requirement.
Alpha Testing:
It is the testing done by Test Engineers before we give product for Acceptance Testing.
As being a Test Engineer, we cannot randomly test the software. So in order to make sure that
the software is tested and all the acceptance criteria which is given by customer is met we go
for Alpha Testing.
Alpha Testing is basically done in Product based companies.
Beta Testing:
It is the testing done by end-users based on their feedback the product will be released.
Beta Testing is usually performed by “Real Users” or “End Users” and it considered as a
form of External User Acceptance Testing.
Beta Testing reduces product failures and risk and it provides increased quality of the Product
through customer validations.
Testers who tested the product will be involved in Client or End-Users will be involved in Testing.
Alpha testing.
Requires Testing Environment to Test. The Software is made available to the public
and said to be Real Time Environment.
Issues or Bugs can be communicated to developers Most of the Issues or Bugs is taken as a
as soon as possible. feedback.
It is done to ensure the quality of the product It concentrates on the quality of the product and
before we move it to Beta Testing. ensures that the product is ready for the Real
Time Environment.