Software Testing Tutorial: Software Development Life Cycle
Software Testing Tutorial: Software Development Life Cycle
Software testing is an integral part of Software Development Life Cycle. Testing software or any product in day-to-day
business applications or in our daily routine work becomes necessary as going around with these, will mess up
things. This session helps you travel through the journey of software testing in the form of software testing tutorial.
Software Development Life Cycle (SDLC) is a procedural process, in the development of a software
product. The process is carried in a set of steps, which explains the whole idea about how to go through
each product.
1. Planning
2. Analysis
3. Design
4. Software Development
5. Implementation
6. Software Testing
7. Deployment
8. Maintenance
Software Testing is an important factor in a product's life cycle, as the product will have greater life, only
when it works correctly and efficiently according to the customer's requirements.
Before moving further towards introduction to software testing, we need to know a few concepts that will
simplify the definition of software testing.
Thus Software testing is the process of finding defects/bugs in the system, that occurs due to an error in
the application, which could lead to failure of the resultant product and increase in probability of high risk.
In short, software testing have different goals and objectives, which often include:
1. finding defects;
2. gaining confidence in and providing information about the level of
quality;
3. preventing defects.
If you are new to the field of software testing, then the article software testing for beginners will be of great
help.
The primary function of software testing is to detect bugs in order to correct and uncover it. The scope of
software testing includes execution of that code in various environment and also to examine the aspects
of code - does the software do what it is supposed to do and function according to the specifications? As
we move further we come across some questions such as "When to start testing?" and "When to stop
testing?" It is recommended to start testing from the initial stages of the software development. This not
only helps in rectifying tremendous errors before the last stage, but also reduces the rework of finding the
bugs in the initial stages every now and then. It also saves the cost of the defect required to find it.
Software testing is an ongoing process, which is potentially endless but has to be stopped somewhere,
due to the lack of time and budget. It is required to achieve maximum profit with good quality product,
within the limitations of time and money. The tester has to follow some procedural way through which he
can judge if he covered all the points required for testing or missed out any. To help testers to carry out
these day-to-day activities, a baseline has to be set, which is done in the form of checklists. Read more
on checklists for software tester.
Software test type is a group of test activities that are aimed at testing a component or system focused on
a specific test objective; a non-functional requirement such as usability, testability or reliability. Various
types of software testing are used with the common objective of finding defects in that particular
component.
Software testing is classified according to two basic types of software testing: Manual Scripted Testing
and Automated Testing.
Unit Testing
Integration Testing
System Testing
Acceptance Testing
1. Alpha Testing
2. Beta Testing
Functional Testing
Performance Testing
1. Load Testing
2. Stress Testing
Smoke Testing
Sanity Testing
Regression Testing
Recovery Testing
Usability Testing
Compatibility Testing
Configuaration Testing
Exploratory Testing
For further explanation of these concepts, read more on types of software testing.
Automated Testing: Manual testing is a time consuming process. Automation testing involves
automating a manual process. Test automation is a process of writing a computer program in the form of
scripts to do a testing which would otherwise need to be done manually. Some of the popular automation
tools are Winrunner, Quick Test Professional (QTP), LoadRunner, SilkTest, Rational Robot, etc.
Automation tools category also includes maintenance tool such as TestDirector and many other.
The software testing methodologies or process includes various models that built the process of working
for a particular product. These models are as follows:
Waterfall Model
V Model
Spiral Model
Rational Unified Process(RUP)
Agile Model
Rapid Application Development(RAD)
Software testing process is carried out in the following sequence, in order to find faults in the software
system:
Test
Sr.No Case Test Case Name Steps/Action Expected Results
Id
User views the page to check
whether it includes UserId and
Screen dispalys user
Checking User Interface Password textboxes with appropriate
1. TC1. interface requirements
requirements. labels. Also expects that Submit and
according to the user.
Cancel buttons are available with
appropriate captions
Textbox for UserId i)Error message is
i)User types numbers into the textbox.
should: displayed for numeric data.
i)allow only alpha-
numeric characters{a-z,
A-Z}
2. TC2. ii)Text is accepted when
ii)not allow special ii)User types alphanumeric data in the
characters user enters alpha-numeric
textbox.
like{'$','#','!','~','*',...} data into the textbox.
iii)not allow numeric
characters like{0-9}
i)Error message is
displayed when user
i)User enters only two characters in
Checking functionality of the password textbox. enters less than six
the Password textbox: characters in the password
i)Textbox for Password textbox.
should accept more than System accepts data when
3. TC3.
six characters. ii)User enters more than six user enters more than six
ii)Data should be characters in the password textbox. characters into the
displayed in encrypted password textbox.
format. System accepts data in the
ii)User checks whether his data is
encrypted format else
displayed in the encrypted format.
displays an error message.
i)System displays
i)User checks whether 'SUBMIT'
'SUBMIT' button as
button is enabled or disabled.
enabled
Checking functionality of ii)System is redirected to
4. TC4.
'SUBMIT' button. ii)User clicks on the 'SUBMIT' button the 'Home' page of the
and expects to view the 'Home' page application as soon as he
of the application. clicks on the 'SUBMIT'
button.
i)System displays
i)User checks whether 'CANCEL'
'CANCEL' button as
button is enabled or disabled.
enabled.
Checking functionality of ii)System clears the data
5. TC5. ii)User checks whether the textboxes
'CANCEL' button. available in the UserId and
for UserId and Password are reset to
Password textbox when
blank by clicking on the 'CANCEL'
user clicks on the
button.
'CANCEL' button.
Fault Finding Techniques in Software Testing
Finding of a defect or fault in the earlier parts of the software not only saves time and money, but is also
efficient in terms of security and profitability. As we move forward towards the different levels of the
software, it becomes difficult and tedious to go back for finding the problems in the initial conditions of the
components. The cost of finding the defect also increases. Thus it is recommended to start testing from
the initial stages of the life cycle.
There are various techniques involved alongwith the types of software testing. There is a procedure that
is to be followed for finding a bug in the application. This procedure is combined into the life cycle of the
bug in the form of contents of a bug, depending upon the severity and priority of that bug. This life cycle is
named as the bug life cycles, which helps the tester in answering the question - how to log a bug?
There arises a need of measuring the software, both, when the software is under development and after
the system is ready for use. Though it is difficult to measure such an abstract constraint, it is essential to
do so. The elements that are not able to be measured, needs to be controlled. There are some important
uses of measuring the software:
Code Coverage
Cyclomatic complexity
Cohesion
Coupling
Function Point Analysis
Execution time
Source lines of code
Bug per lines of code