Manual Online
Manual Online
Something is there and we are checking whether it is working or not according to the
client requirement.
OR
For eg, marker is there, we are checking whether cap, name and price of the marker is
there or not.
For eg, marker is there, we are checking whether we are able to write or not using the
marker. That is nothing but we are checking the functionality of the marker.
Software:
Manual Testing
Verifying the functionality of an application manually by entering the data , clicking &
checking whether we are getting the proper output or not.
Developers directly don’t start with the writing of the programs. They follow a well
defined cycle to develop a software and that cycle is called as SOFTWARE
DEVELOPMENT LIFE CYCLE (SDLC).
Software Development Life Cycle (SDLC):
Any SDLC should result in a high quality system that meets or exceeds customer
expectations, reaches completion within time and cost estimates, works effectively and
efficiently and is inexpensive to maintain and cost effective to enhance.
Stages of SDLC:
1. Requirement Collection
2. Feasibility Study / Analysis
3. Design
4. Coding
5. Testing
6. Installation
7. Maintenance
Requirement Collection:
- done by Business Analysts wherein he goes to customer’s place and collect the
requirement and immediately prepares a document for the same.
Here we check whether, it is technically and financially possible to develop the software
or not.
- Technical feasibility
- Financial feasibility
- Resource feasibility
Project Manager:
If any kind of complications arises in between the project then project manager is the
responsible person.
Finance Manager:
He is the person responsible to calculate all the investments the organisation is going to
make for the entire software development.
Design:-
HLD – gives the architecture of the software product to be developed and is done by
architects
LLD – done by senior developers. It describes how each and every feature in the product
should work and how every component should work. Here, only the design will be there
and not the code.
- This is the process where we start building the software and start writing the codes
for the product.
Testing:-
- It is the process of checking for all defects and communicating the same with the
development team.
Once, test engineers find any defect, they will prepare defect report and send it to the
developers. Developers then fix the defects by referring the defect report and send
the new copy of the software to the testing team. Then the testing team will uninstall
the old copy of the software and install the new copy of the software and they retest
the software to check whether the earlier defects are fixed or not.
Once they come to know that the earlier defects are fixed, they inform the same to the
installation engineers.
Installation:-
- done by installation engineers. They go to the clients place and install the software and
give them a demo how to install the software in future.
- For ex, consider the example of a software to be developed and installed at Reliance
petrol bunk.
Maintenance:-
- Here as the customer uses the product, he finds certain bugs and defects and sends
the product back for error correction and bug fixing.
If within the maintenance period customer finds any defects then the software company
will fix the defects free of cost. Post maintenance period even if customer find any
defects, he /she will be charged for a single bug fix also.
100 % testing is not possible – because, the way testers test the product is different
from the way customers use the product.
The develop software products and sell it to many companies which may need the
software and make profits for themselves
They are the sole owners of the product they develop and the code used and sell it to
other companies which may need the software.
Ex – Oracle, Microsoft
Waterfall Model:
It is a traditional model.
Advantages of waterfall model:
1. As in the beginning only requirements are fixed, so at the end of the day we will
get a stable product.
2. It is a simple model to adopt.
1. Backtracking is not possible. (We cannot go back and change requirements once
the design stage is reached. Thus the requirements are freezed once the design
of the software product is started). So at the end of the day we can deliver a
stable or quality product.
2. Developers are involved in testing.
3. Requirement is not tested, design is not tested, if there is a bug in the
requirement, it goes on till the end and leads to lot of rework and the investment
done on the project will be more.
For ex, waterfall model can be used in developing a simple calculator as the functions of
addition, subtraction etc. and the numbers will not change for a long time.
Spiral Model:-
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.
3) Customer gets an idea how his product will look like at the end of the day.
1. Downward flow of defects will be there which creates lots of rework and
investment done in the project will be more.
2. Developers are involved in testing.
1. Whenever there is dependency in building the different modules of the software, then
we use Spiral Model.
2. Whenever the customer gives the requirements in stages, we develop the product in
stages.
3) V – MODEL / V & V MODEL (Verification and Validation Model)
This model came up in order to overcome the drawback of waterfall model – here testing
starts from the requirement stage itself where in Waterfall and Spiral model testing
was done only after the coding stage.
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
3) Total investment is less – as there is no downward flow of defects. Thus there is less
or no re-work
1) Initial investment is more – because right from the beginning testing team is needed
2) More documentation work – because of the test cases and all other documents that is
prepared.
2) When customer is expecting a very high quality product within stipulated time frame
4) PROTOTYPE DEVELOPMENT MODEL
The requirements are collected from the client in a textual format. The prototype of
the s/w product is developed. The prototype is just an image / picture of the required
s/w product. The customer can look at the prototype and if he is not satisfied, then he
can request more changes in the requirements.
Prototype testing means testers are checking if all the components mentioned are
existing.
The difference b/w prototype testing and actual testing – in PTT, we are checking if all
the components are existing or not and whether all the components are in right place or
not, whereas, in ATT we check if all components are working functionally or not.
Advantages of Prototype model
2) There is clear communication b/w development team and client as to the requirements
and the final outcome of the project is good.
3) Major advantage is – customer gets the opportunity in the beginning itself to ask for
changes in requirements as it is easy to do requirement changes in prototype rather than
real applications. Thus expectations are met easily in the beginning only.
It is the execution of the s/w with the intention of finding defects. It is checking
whether the s/w works according to the requirements.
Every software is developed to support customers business. If we are not testing the
software and directly deploying it at the clients place, chances are there client may find
a lot of defects which in turn may affect his business. SO bad name spreads in the
market and no of users who are going to use the software will be less. So before
delivering the software to the client, testers test the software, find the defects and
get it fixed by the development team and then give it to the client.
There are 3 types of s/w testing, namely,
1) White box testing – also called unit testing or glass box testing or transparent testing
or open-box testing
2) Black box testing – also called as functional testing or open box testing
a) 1) Done by developers
b) 1) Look into the source code and test the logic of the code
Entire WBT is done by developers. It is the testing of each and every line of code in the
program. Developers do WBT, sends the s/w to testing team. The testing team does black
box testing and checks the s/w against requirements and finds any defects and sends it
to the developer. The developers fixes the defect and does WBT and sends it to the
testing team. Fixing defect means the defect is removed and the feature is working fine.
1. Path Testing
2. Loop Testing
3. Conditional Testing
BLACK BOX TESTING (BBT)
1) FUNCTIONALITY/COMPONENT/FIELD TESTING
Testing each and every component thoroughly (rigorously) is known as component testing.
Procedure to do Component Testing
Always testing starts by giving valid data. If the component is working fine for the valid
data, we should stop testing and start testing the same component by giving invalid data.
If the component is working for one invalid data we should not stop testing, we should
continue testing the same component by giving some more invalid data’s.
We must not do over-testing (testing for all possible junk values) or under-testing
(testing for only 1 or 2 values). We must only try and do optimize testing (testing for
only the necessary values- both invalid and valid data).
We must do both positive testing (testing for valid data) and negative testing (testing
for invalid data).
Over Testing- Testing the components of an application by giving data which does not
make any sense i.e. junk data.
If we are ding over testing, then we are wasting our testing time.
If we are doing under testing, then we might miss to catch some defects in the
application.
Optimized Testing- Testing the components of an application by giving data which makes
sense.
Types of Functionality Testing
2) INTEGRATION TESTING
Testing the data flow between two features/ modules is known as integration testing.
Eg: Take 2 features A & B. Send some data from A to B. Check if A is sending data and
also check if B is receiving data
We first do functionality testing for username and password and submit and cancel
button. Then we do integration testing. The following scenarios can be considered,
Scenario 1 – Login as A and click on compose mail. We then do functional testing for the
individual fields. Now we click on send and also check for save drafts. After we send mail
to B, we should check in the sent items folder of A to see if the sent mail is there. Now
we logout as A and login as B. Go to inbox and check if the mail has arrived.
There are two types of integration testing,
1. Integration testing
1.1. Incremental Integration Testing
1.1.1. Top-down Integration Testing
1.1.2. Bottom-up Integration Testing
1.2. Non-Incremental Integration Testing/ Big Bang Method of Testing
Incrementally add the modules the test the data flow between the modules is called
incremental testing.
Incrementally add the modules the test the data flow between the modules and make
sure that the module that you are adding is the child of previous one.
Incrementally add the modules the test the data flow between the modules and make
sure that the module that you are adding is the parent of previous one.
Non-Incremental Integration Testing:
Combining all the modules at a shot and testing the data flow between the modules is
called non- incremental integration testing.
1. We might miss to test some of the data flow between the modules.
2. Root cause analysis is very difficult i.e. identifying root of the defect is very
difficult.
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.
Thus, the actual definition of End-to-End testing can be given as – Take all possible
end-to-end business flows and check whether in the software all the scenarios are
working or not. If it is working, then the product is ready to be launched.
If the testing and production environment are not same chances are there the software
may crash due to change in configuration at customer’s place while performing the testing
which is not a good thing at all. So, we should test the application in an environment
similar to production environment.
When we do System Testing?
b) When all the functionality, integration and end-to-end scenarios are working fine
c) When there are no critical bugs. Bugs are there, but all are minor and less number of
bugs
How the testing team gets the software from the development team?
Build – Build is a piece of software which is copied, unzipped and installed at the
testing server.
All the programs will be compiled and then compressed (compressed file should be in zip,
war, tar, jar, exe, URL) format and compressed file is called build which is copied and
pasted in the test environment, installed and we start testing the software.
Test cycle – Time duration taken to start and complete the testing of 1 build is
called 1 Test Cycle.
Respin- It is the process of getting more than one builds in a single test cycle.
We find respin – when the test engineer finds blocker defects / critical defects. For
ex, if the login feature itself is not working in gmail, then the test engineer cannot
continue with his testing and it has to be fixed immediately – thus respin comes into
picture.
More number of respin in a cycle means the developer has not built the product
properly.
The entire period right from collecting requirements to delivering the s/w to the
client is called as Release.
In interview, when they ask how many builds have u tested – optimum answer would
be 26 – 30 builds.
ACCEPTANCE TESTING
It is an end to end testing done by the customer after receiving the product from the
software organization and it is generally done in a production environment.
Why Customer Does Acceptance Testing?
1. To check whether all end to end business scenarios are working fine or not and
whether all the features requested by him are developed properly or not by the
developers.
2. Under business pressure, chances are there software organisation might push the
software with lots of defects. In order to find this, customer does acceptance
testing.
We are getting more and more builds for Acceptance Testing means,
1. The product quality which is delivered to customers is not good. Development and
testing both are not good.
2. After receiving the s/w, customer is getting more and more ideas, so he is asking
for more and more changes
1. It is an end to end testing done by end users who use the software for a particular
period of time and they check whether the software is capable of handling the
real time business scenarios or not.
2. It is an end to end testing done by test engineers of the customer sitting at the
customers place wherein they check whether the software is capable of handling
the real time business scenarios or not.
3. It is an end to end testing done by test engineers of the organisation sitting at
the customers place wherein they check whether the software is capable of
handling the real time business scenarios or not.
4. It is an end to end testing done by test engineers of the organisation in their own
organisation wherein they check whether the software is capable of handling the
real time business scenarios or not.
Types of Acceptance Testing
1. Alpha Testing
2. Beta Testing
HOT FIX
It is the process of immediately fixing the critical defects identified by the customer
while doing acceptance testing.
Testing the basic or critical features of an application before doing thorough testing or
rigorous testing is called as smoke testing.
Whenever a new build comes in, we always start with smoke testing, because for every
new build – there might be some changes which might have broken a major feature (fixing
the bug or adding a new feature could have affected a major portion of the original
software). In smoke testing, we do only positive testing – i.e., we enter only valid data
and not invalid data.
Developers while doing White Box Testing, they do Smoke testing wherein first they
check whether the critical lines of code are working fine or not. Then they check the
remaining lines of code (major and minor).
Important Points to Remember
1) End-users use the application randomly and he may see a defect, but professional
TE uses the application systematically so he may not find the same defect. In
order to avoid this scenario, TE should go and then test the application randomly
(i.e. behave like and end-user and test)
2) Development team looks at the requirements and build the product. Testing Team
also look at the requirements and do the testing. By this method, Testing Team
may not catch many bugs. They think everything works fine. In order to avoid this,
we do random testing behaving like end-users
3) Ad-hoc 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.
In early stages of product development, doing smoke testing fetches more number
of bugs. But, in later stages of product development, if you do smoke testing –
the number of bugs that you are going to catch in smoke testing will be very
less. Thus, gradually the effort spent on smoke testing is less.
NOTE:-
Ad-hoc testing is basically negative testing because we are testing against requirements
(Out of requirements)
Here, the objective is to somehow break the product and we don’t follow the requirement
document.
EXPLORATORY TESTING
Explore the application, understand the application and based on understanding we will
easily come to know how all the features functionally works and how all the features are
inter related to each other and then try to identify the scenarios (functionality ,
integration and system scenarios) and test the application based on the identified
scenarios.
Developing a software for multiple languages is called as Globalization and testing the
software which is developed for multiple languages is called as Globalization Testing.
Here we check whether all the features requested by the customer are present or not
and whether it is present in right place or not.
Also, we check whether as per the country selected, features are displaying in proper
language or not.
LOCALIZATION (L10N) TESTING:
Here, we check whether certain features are localized under country standard or not.
REGRESSION TESTING :
Testing the unchanged features to make sure that it is not broken because of the
changes (changes means – addition, modification, deletion or defect fixing) is called
regression testing.
When the development team gives a build, chances are there they would have done some
changes. That change might affect unchanged features. So, Testing the unchanged
features to make sure that it is not broken because of the changes is called Regression
Testing.
Testing the changes i.e. nothing but the bug fixes is called URT.
In Build B01, a bug is found and a report is sent to the developer. The developer fixes
the bug and also sends along some new features developed in the 2nd build B02. The
TE tests only if the bug is fixed.
Testing the changes and impact regions is called Regional Regression Testing.
Thus, testing the changes and all the remaining features is called Full Regression
Testing.
COMPATIBILITY TESTING
1. we might have developed the s/w in 1platform – chances are there that users
might use it in different platforms – thus it could lead to defects and bugs –
people may stop using the s/w – thus business will be affected and hence we do
Compatibility Testing.
2. To check whether the application is functionally working fine in different
platforms or not.
Scattered content
Alignment issues
Broken frames
Object overlapping
PERFORMANCE TESTING
Testing the stability and response time of an application by applying load is called
performance testing.
Stability in the sense the ability to withstand the load of desired no of users.
Response time is the time taken to send the request + time take to run the program +
time taken to send the response.
1. Load Testing
2. Stress Testing
3. Volume Testing
4. Soak Testing
LOAD TESTING
Testing the stability and response time of an application by applying load which is less
than or equal to the desired no of users.
STRESS TESTING
Testing the stability and response time of an application by applying load more than the
desired no of users.
VOLUME TESTING
Testing the stability and response time of an application by transferring large volume of
data through it.
SOAK TESTING
Testing the stability and response time of an application by applying load continuously
for a particular period of time.
USABILITY TESTING:
For ex – let us consider our cellphones / mobiles. The s/w may not work continuously. In
mobile, after a week (or) ten days, the phone may hang up because whatever feature is
present in the phone, whenever it is used it continuously creates an object in the RAM
of the phone. Once the RAM is completely filled with objects, if we get any call or
message – we will be unable to press the call button and the phone hangs up. Thus we
make use of a clean-up software. When we switch off the phone and switch it on again,
all the objects in the RAM gets deleted.
RECOVERY TESTING:
Testing the application to check how well it recovers from crashes or disasters
1. Introduce defect and crash the application- By experience after few months of
experience on working the project, we can get to know how and when the s/w can
and will crash.
2. Make sure that it is crashed fully.
a. Whenever application crashed, that application disappears from the screen.
b. Press CTRL+ALT+DEL, open task manager, that crashed application process
should not be there.
3. Uninstall the application which is crashed.
4. Reinstall it once again.
5. Double click and open the application, application should open with default
settings.
Here, we check whether the application can be easily accessed or can be easily used or
not by physically challenged person.
TEST CASE
Test case is a document which covers all possible scenarios to test all the feature(s).
1. To have better test coverage – cover all possible scenarios and document it, so that
we need not remember all the scenarios
2. To have consistency in test case execution – seeing the test case and testing the
product
3. To avoid training every new engineer on the product – when an engineer leaves, he
leaves with lot of knowledge and scenarios. Those scenarios should be documented, so
that new engineer can test with the given scenarios and also write new scenarios.
Customer gives requirements – developer start developing the product– during this time,
testing team start writing test cases by referring the test scenarios.
Difference between Test Scenario and Test Case
On what Basis Test Lead assigns Review job to another Test Engineer?
Sl Reviewer
Test Case Name Author
No Comments Severity
SBI_AMOUNT_TRANSFER
2 The scenario has been repeated Critical Fixed
(BODY- STEP NO 22)
SBI_AMOUNT_TRANSFER
3 Author's name is missing Major Fixed
(FOOTER)
Interview Tips
In interview, when the interviewer asks “how do you review a test case and what do
you review in a test case?”
Always answer should start with – Body of test case, then header and finally
template.
INTERVIEW QUESTIONS
2) Totally, in your current project, how many screens (features) are there?
3) Totally, how many test engineers are there in your current project?
4) Totally in your current project, how many test cases are there in your current
project
Ans) For 1 screen – you can write 10 – 15test cases (includes FT, IT, ST) 70 *
15 = 1050. You can tell anywhere from 800 – 1050 – 1200 test cases. Test
case means 1 entire document with header, footer and many scenarios.
5) Totally, how many test cases you have written in your current project?
Ans) This includes for all 3releases. You have joined in 3rd release. In 2releases,
they would have written around 700test cases (worst case – 650test cases). You
wrote in 3rd release test cases, so 550/5 = 110. You can tell anywhere between 80
-110 test cases (maximum of 240 also).
Ans) you can tell anywhere between 3-5test cases. 1test case – 1st day, 2nd day
2test cases – 3rd day, 4th day 4test cases – 5th day 8 – 9test cases – 18th day
Always answer like this, “initially, I used to write 3-5test cases. But, later stages,
I started writing 7 – 8test cases because, Knowledge about the product became
better I started re-using the test cases (copy and paste) Experience on the
product Each test case that I write would generally have 20 -40 steps.
7) How you spend 10months in a project?
Ans) 1st 3days – no work. Next 2weeks – understand the product looking at the
SRS. Next 2-3months – you wrote test cases for some features, review other’s test
cases and check and correct your reviewed test cases. By the end of 3months,
developers give build no.1 – next 7months execute the test cases, find bugs – report
it to developers – developers give new builds – you execute and find defects. Here,
7months time is spent. (Thus, around 10months you have spent).
1. Error Guessing
2. Equivalence Partition
3. Boundary Value Analysis
Error Guessing
Guess the error and derive the scenarios, we call it as error guessing.
Equivalence Partition
It is of 2 types:
1. Pressman
2. Practice
Pressman
When the input is given in the form of range of values, then design the test cases for
one valid and two invalid values.
Lesson 2
When the input is given in the form of set of values, then design the test cases for one
valid and two invalid values.
Lesson 3
When the input is given in the form of Boolean values, then design the test cases for
both true as well as false values.
Practice
When the input is given in range of values, then divide the range into equivalent parts
and test for all the values and make sure that at least you are going to derive two invalid
values and one valid value for each equivalent part.
When input is given in the range between A-B, then design the test cases for A,A+1,A-1
and B,B+1,B-1.
Types of Project
In fixed bid projects the duration and cost of the project is fixed by the customer and
the software organization by signing an agreement which we call as Service Level
Agreement (SLA). If anyone tries to break the agreement in between then penalty will
be charged.
Whereas in time and material project nothing is fixed and no agreement is signed because
there is a mutual understanding between the customer and software organisation.
What is the difference b/w defect, bug, error and failure?
Defect- If the feature functionality is not working a/c to the client given requirement.
OR The variation between the actual results and expected results is known as defect.
Error- it is a mistake done in the program because of which we are not able to compile
or run the program
Missing implementation: - We may not have developed the code only for that feature.
For ex, open the application – “SALES” link is not there only – that means feature has
not been developed only – this is a bug.
Extra implementation: That means something is not requested by the customer and it
is developed by the developers.
Defect Life Cycle / Bug Life Cycle
As soon as test engineer finds a defect, he prepares a defect report set the status as
Open and sends it to Development lead and put Cc to Test lead.
As soon as development lead gets the defect report, he will go through the defect report
and he will easily come to know which developer has done the mistake in which testing
team has found the defect. He will then change the defect report status to Assigned
and send it to the developer and put Cc to test engineer.
Developer as soon as he receives the defect report will go through the report and will
easily come to know where exactly he has done the mistake. So he will go to the source
code of the application and he will fix the defect. Fixing the defect is nothing but
modifying the program. After fixing the defect, he will change the defect report status
to Fixed and he will send a mail to the test engineer and put Cc to Development lead.
Test engineer after receiving the mail from the developer will come to know that the
defect has been fixed. Then, he will do retesting to check whether the earlier defect
are fixed or not. If all the defects are fixed, then he will change the defect report
status to Closed. If the defect are still there, then he will change the defect report
status to Reopen and again send it to the developer. So this process goes on until the
defects are fixed.
Why do Test Engineer put Cc to test Lead?
Because, test lead is the person who keeps on attending meetings with the development
team and customer. So he should be aware of what exactly is happening in the project.
Time duration taken from identifying the defect till it gets fixed.
“REJECT” STATUS
Now, when the TE sends a defect report – the Development Lead will look at it and reject
the bug.
1) Misunderstanding of requirements
POSTPONED STATUS
Whenever developers are fixing the critical defects, testing team is logging all the minor
defects, in this scenario the development team will postpone the fixing of the minor
defects.
We find a bug during the end of the release (could be major or minor but cannot be
critical) – developers won’t have time to fix the bug – such a bug will be postponed and
will be fixed later or in the next release and the bug status will be “open”
“DUPLICATE” STATUS
Before sending any defect reports to the development team, the test engineer should
first go and check in the defect repository whether the defect has been already logged
or not. If the defect is already logged , then the test engineer should forget about that
defect and start identifying some other defects, but if the defect is not present inside
the defect repository, then T.E should prepare a defect report and send the same to the
development lead and keep one copy of the defect report inside the defect repository.
CANNOT BE FIXED
Chances are there – Test Engineer finds a bug and sends it to Development Lead –
development lead looks at the bug and sends it back saying “cannot be fixed”.
1. Technology itself is not supporting i.e. programming language we are using itself
is not having capability to solve the problem
2. When a minor defect is identified in the root of the product. (If the developers
are fixing that minor defect chances are there it might affect the entire
application, so the developers don’t take a risk of fixing that minor defect).
3. Cost of fixing the defect is more than cost of the defect.
NOT REPRODUCIBLE
Testing team finds a defect and send it to the development team, development team they
are unable to reproduce/find that particular defect.
Test engineer finds a bug and sends it to development team – when development team
look at the report sent by the TE – They know it’s a bug, but they say it’s not a bug
because it’s not part of the requirement.
Defect ID D_009
Module Name Sent Mails
Test Case Name Gmail_SentMails
Build No B10
Test Environment Windows 10 , Chrome
Status New / Open / Assigned / Fixed / Reopen / Reject …
Severity Blocker / Critical / Major / Minor
Priority High / Medium / Low
Expected Result Mails should be displayed in sent mails page
Actual Result Mails is not displayed in sent mails page
The defect report varies from company to company. But the following are the
mandatory attributes of a defect report in all companies,
1. Defect ID
2. Severity
3. Priority
SEVERITY
1. Blocker / Showstopper
2. Critical
3. Major
4. Minor
Blocker – The defect which is completely blocking the business of the customer.
Critical – A major issue where a large piece of functionality or major system component
is completely broken. There is 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 it is acceptable. For
eg. Spelling mistakes in minor features.
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 postponed with the next release.
Test engineers generally sets the severity and priority, but the priority can be changed
by the development team.
SOFTWARE TESTING LIFE CYCLE (STLC)
1. System Study
2. Write Test Plan
3. Write Test Cases
4. Traceability Metrics
5. Test Execution
6. Defect Tracking
7. Test Execution Report
8. Retrospect Meeting
System Study:
Test Plan:
There are 14 sections in a test plan. We will look at each one of them below,
1) OBJECTIVE: - It gives the aim of preparing test plan i.e, why are we preparing this
test plan.
2) SCOPE:-
3) APPROACH
a) By writing scenarios
When writing test plans, certain assumptions would be made like technology, resources
etc.
5) RISKS
In the project, the assumption we have made is that all the 3 test engineers will be there
till the completion of the project and each are assigned modules A, B, C respectively. The
risk is one of the engineers may leave the project mid-way. Thus, the mitigation plan
would be to allocate a primary and secondary owner to each feature. Thus, one engineer
quits – the secondary owner takes over that particular feature and helps the new
engineer to understand their respective modules. Always assumptions, risks, mitigation
plan are specific to the project.
7) TESTING METHODOLOGIES (Types of Testing):
Depending upon the application, we decide what type of testing we do for the various
features of the application. We should also define and describe each type of testing we
mention in the testing methodologies so that everybody (dev team, management, testing
team) can understand, because testing terminologies are not universal.
8) TEST SCHEDULES:-
This section contains – when exactly which activity should start and end? Exact date
should be mentioned and for every activity, date will be specified.
9) TEST ENVIRONMENT:
Here we discuss the environment / platform (hardware & software) which should be
used in order to test the application / build in future.
3. Allocates work to test engineers and ensure that they are completing the work within
the schedule
Before we start with Functional Testing, all the above entry criteria should be met.
After we are done with FT, before we start with Integration Testing, then the exit
criteria of FT should be met.
The testing team would have decided that in order to move onto the next stage,
the following criteria should be met,
Exit criteria for FT :
If all the above are met, then they move onto the next testing stage.
a) %age pass for FT should be 90%, and the %age pass for IT should be 85%
(Only if the above condition is satisfied then only we can move out of integration
testing and start another kind of testing)
Note: All the numbers given above are just for example sake. They are not
international standard numbers!
13) DELIVERABLES
It is the output from the testing team. It contains what we will deliver to the customer
at the end of the project.
This section contains all the templates for the documents which will be used in the
project. Only these templates will be used by all the test engineers in the project so as
to provide uniformity to the entire project. The various documents which will be covered
in the Template section are,
Write test case – we write test cases for each features (functionality, integration and
system). These test cases are reviewed, and after all mistakes are corrected and once
the test cases are approved – then they are stored in the test case repository.
(Here you can explain the procedure to write test cases)-present in the notes of
test cases
Traceability Matrix – it is a document which ensures that every requirement has a test
case. Test cases are written by looking at the requirements and test cases are executed
by looking at the test cases. If any requirement is missed i.e., test cases are not written
for a particular requirement, then that particular feature is not tested which may have
some bugs. Just to ensure that all the requirements are converted, traceability matrix
is written.
Defect Tracking – any bug found by the testing team is sent to the development team.
This bug has to be checked by the testing team if it has been fixed by the developers.
Test Execution Report: - Send it to customer – contains a list of bugs (major, minor
and critical), summary of test pass, fail etc. and when this is sent, according to the
customer –
Retrospect meeting – (also called Post Mortem Meeting / Project Closure Meeting) The
Test Manager calls everyone in the testing team for a meeting and asks them for a list
of mistakes and achievements in the project.
So, whenever a new project comes, we will try to follow the achievements and avoid the
mistakes done in the previous project.