0% found this document useful (0 votes)
118 views

Software Testing Tutorial: Software Development Life Cycle

This document provides an introduction to software testing. It discusses that software testing is an important part of the software development life cycle and aims to find defects, gain confidence in quality, and prevent defects. It covers various key concepts in software testing like defects and failures, input combinations, static and dynamic analysis, verification and validation. It also describes different types of testing like unit testing, integration testing, system testing, acceptance testing, and automation testing. Finally, it discusses software testing methodologies and artifacts.

Uploaded by

Vijay Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
118 views

Software Testing Tutorial: Software Development Life Cycle

This document provides an introduction to software testing. It discusses that software testing is an important part of the software development life cycle and aims to find defects, gain confidence in quality, and prevent defects. It covers various key concepts in software testing like defects and failures, input combinations, static and dynamic analysis, verification and validation. It also describes different types of testing like unit testing, integration testing, system testing, acceptance testing, and automation testing. Finally, it discusses software testing methodologies and artifacts.

Uploaded by

Vijay Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Software Testing Tutorial

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.

The classification of Software Development Life Cycle process is as follows

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.

Introduction to Software Testing

Before moving further towards introduction to software testing, we need to know a few concepts that will
simplify the definition of software testing.

 Error: Error or mistake is a human action that produces wrong or


incorrect result.
 Defect (Bug, Fault): A flaw in the system or a product that can cause
the component to fail or misfunction.
 Failure: It is the variance between the actual and expected result.
 Risk: Risk is a factor that could result in negativity or a chance of loss
or damage.

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.

Scope of Software Testing

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 Testing Key Concepts

 Defects and Failures: As we discussed earlier, defects are not


caused only due to the coding errors, but most commonly due to the
requirement gaps in the non-functional requirement, such as usability,
testability, scalability, maintainability, performance and security. A
failure is caused due to the deviation between an actual and an
expected result. But not all defects result to failures. A defect can turn
into a failure due to the change in the environment and or the change
in the configuration of the system requirements.
 Input Combination and Preconditions: Testing all combination of
inputs and initial state (preconditions), is not feasible. This means
finding large number of infrequent defects is difficult.
 Static and Dynamic Analysis: Static testing does not require
execution of the code for finding defects, whereas in dynamic testing,
software code is executed to demonstrate the results of running tests.
 Verification and Validation: Software testing is done considering
these two factors.
1. Verification: This verifies whether the product is done
according to the specification?
2. Validation: This checks whether the product meets the
customer requirement?
 Software Quality Assurance: Software testing is an important part of
the software quality assurance. Quality assurance is an activity, which
proves the suitability of the product by taking care of the quality of a
product and ensuring that the customer requirements are met.

Software Testing Types:

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.

Manual Scripted Testing:

 Black Box Testing


 White Box Testing
 Gray Box Testing

The levels of software testing life cycle includes :

 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing
1. Alpha Testing
2. Beta Testing

Other types of software testing are:

 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.

Software Testing Methodologies

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)

These models are elaborated briefly in software testing methodologies.

Software Testing Artifacts

Software testing process can produce various artifacts such as:

 Test Plan: A test specification is called a test plan. A test plan is


documented so that it can be used to verify and ensure that a product
or system meets its design specification.
 Traceability matrix: This is a table that correlates or design
documents to test documents. This verifies that the test results are
correct and is also used to change tests when the source documents
are changed.
 Test Case: Test cases and software testing strategies are used to
check the functionality of individual component that is integrated to
give the resultant product. These test cases are developed with the
objective of judging the application for its capabilities or features.
 Test Data: When multiple sets of values or data are used to test the
same functionality of a particular feature in the test case, the test
values and changeable environmental components are collected in
separate files and stored as test data.
 Test Scripts: The test script is the combination of a test case, test
procedure and test data.
 Test Suite: Test suite is a collection of test cases.

Software Testing Process

Software testing process is carried out in the following sequence, in order to find faults in the software
system:

1. Create Test Plan


2. Design Test Case
3. Write Test Case
4. Review Test Case
5. Execute Test Case
6. Examine Test Results
7. Perform Post-mortem Reviews
8. Budget after Experience

Here is a sample Test Case for you:

# Software Test Case for Login Page:

 Purpose: The user should be able to go to the Home page.


 Pre-requisite:
1. S/w should be compatible with the Operating system.
2. Login page should appear.
3. User Id and Password textboxes should be available with
appropriate labels.
4. Submit and Cancel buttons with appropriate captions should
be available.
 Test Data: Required list of variables and their values should be
available.eg: User Id:{Valid UserId, Invalid UserId, empty}, Password:
{Valid, Invalid, empty}.

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?

Measuring Software Testing

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:

 Software metrics helps in avoiding pitfalls such as


1. cost overruns,
2. in identifying where the problem has raised,
3. clarifying goals.
 It answers questions such as:
1. What is the estimation of each process activity?,
2. How is the quality of the code that has been developed?,
3. How can the under developed code be improved?, etc.
 It helps in judging the quality of the software, cost and effort
estimation, collection of data, productivity and performance
evaluation.

Some of the common software metrics are:

 Code Coverage
 Cyclomatic complexity
 Cohesion
 Coupling
 Function Point Analysis
 Execution time
 Source lines of code
 Bug per lines of code

You might also like