Static Testing
Static testing is a
form of software testing where the software isn't actually used. This is in
contrast to dynamic testing. It is generally not detailed testing, but checks
mainly for the sanity of the code, algorithm, or document. It is primarily
syntax checking of the code and/or manually reviewing the code or document to
find errors. This type of testing can be used by the developer who wrote the
code, in isolation. Code reviews, inspections and walkthroughs are also used.
From the black box
testing point of view, static testing involves reviewing requirements and
specifications. This is done with an eye toward completeness or appropriateness
for the task at hand. This is the verification portion of Verification and
Validation.
Even static testing
can be automated. A static testing test suite consists of programs to be
analyzed by an interpreter or a compiler that asserts the programs syntactic
validity.
Bugs discovered at
this stage of development are less expensive to fix than later in the
development cycle.
The people involved in
static testing are application developers, testers, and business analyst.
There are many
approaches to software testing. Reviews, walkthroughs or inspections are considered as static
testing, whereas actually executing programmed code with a given set of test
cases is referred to as dynamic testing. Static testing can be (and
unfortunately in practice often is) omitted.
Dynamic testing takes
place when the program itself is used for the first time (which is generally
considered the beginning of the testing stage).
Walk Through:
1.
Meeting start by author.
2. May
be documented.
3.
Optional may be use of check list permeating preparation.
Benefit: it is quite
informal to very formal.
Purpose: Find effect
& learning
Inspection:
1.
Meeting let by moderator.
2.
Planning entry /exit criteria.
3. Kick
off(distribute document).
4. Entry
criteria.
5.
Individual preparation.
6.
Review meeting.
7.
Scribe.
8.
Rework.
9.
Follow up(exit criteria).
Peer Review (By
Technical Persons):
1.
Meeting let by moderator.
Benefit:
1. Early defect
detection and correction.
2. Lifetime cost
reduction.
3. Fewer defects
and improve communication.
4. Reduce
testing cost and time.
Or
Under Static Testing
code is not executed. Rather it manually checks the code, requirement
documents, and design documents to find errors. Hence, the name
"static".
Main objective of this testing is to improve
the quality of software products by finding errors in early stages of the
development cycle. This testing is also called as Non-execution technique or
verification testing.
Static testing involves manual or automated
reviews of the documents. This review, is done during initial phase of
testing to catch defect early in STLC. It examines work documents and provides
review comments
Work document can be of following:
• Requirement specifications
• Design document
• Source Code
•
Test Plans
• Test Cases
•
Test Scripts
• Help or User document
• Web Page Content
Dynamic Testing
Dynamic testing may
begin before the program is 100% complete in order to test particular sections
of code (modules or discrete functions). Typical techniques for this are either
using stubs/drivers or execution from a debugger environment. For example, spreadsheet
programs are, by their very nature, tested to a large extent interactively
("on the fly"), with results displayed immediately after each
calculation or text manipulation.
Dynamic testing (or dynamic analysis) is a term used in software engineering to describe the testing of the dynamic behavior of code. That is, dynamic analysis refers to the examination of the physical response from the system to variables that are not constant and change with time. In dynamic testing the software must actually be compiled and run. It involves working with the software, giving input values and checking if the output is as expected by executing specific test cases which can be done manually or with the use of an automated process. This is in contrast to static testing. Unit tests, integration tests, system tests and acceptance tests utilize dynamic testing.
Dynamic testing is a method of assessing the feasibility of a software program by giving input and examining output (I/O). The dynamic method requires that the code be compiled and run. The alternative method of software testing, static testing, does not involve program execution but an examination of the code and associated documents.
Types of dynamic testing include unit testing, integration testing, system testing and acceptance testing.
Dynamic testing (or dynamic analysis) is a term used in software engineering to describe the testing of the dynamic behavior of code. That is, dynamic analysis refers to the examination of the physical response from the system to variables that are not constant and change with time. In dynamic testing the software must actually be compiled and run. It involves working with the software, giving input values and checking if the output is as expected by executing specific test cases which can be done manually or with the use of an automated process. This is in contrast to static testing. Unit tests, integration tests, system tests and acceptance tests utilize dynamic testing.
Dynamic testing is a method of assessing the feasibility of a software program by giving input and examining output (I/O). The dynamic method requires that the code be compiled and run. The alternative method of software testing, static testing, does not involve program execution but an examination of the code and associated documents.
Types of dynamic testing include unit testing, integration testing, system testing and acceptance testing.
Or
Under Dynamic Testing code is executed. It
checks for functional behavior of software system , memory/cpu usage and
overall performance of the system. Hence the name "Dynamic"
Main objective of this testing is to confirm
that the software product works in conformance with the business
requirements. This testing is also called as Execution technique or validation
testing.
Dynamic testing executes the software and
validates the output with the expected outcome. Dynamic testing is performed at
all levels of testing and it can be either black or white box testing.
Testing Techniques used for Static Testing
• Informal
Reviews: This is
one of the type of review which doesn't follow any process to find errors in
the document. Under this technique , you just review the document and give
informal comments on it.
• Technical
Reviews: A team
consisting of your peers, review the technical specification
of the software product and checks whether it is suitable for the project. They
try to find any discrepancies in the specifications and standards
followed. This review concentrates mainly on the technical document related to
the software such as Test Strategy, Test Plan and requirement specification
documents.
• Walkthrough: The author of the work product explains the product to
his team. Participants can ask questions if any. Meeting is led by the
author. Scribe
makes note of review comments
• Inspection: The main purpose is to find defects and meeting is led
by trained moderator. This review is a formal type of review where it follows
strict process to find the defects. Reviewers have checklist to review the work
products .They record the defect and inform the participants to rectify those
errors.
•
Static
code Review: This
is systematic review of the software source code without executing the code. It
checks the syntax of the code, coding standards, code optimization, etc. This
is also termed as white box testing .This review can be done at any point
during development.
Testing Techniques used for Dynamic Testing
• Unit Testing: Under unit testing, individual units or modules is
tested by the developers. It involves testing of source code by developers.
• Integration
Testing: Individual
modules are grouped together and tested by the developers. The purpose is to
determine that modules are working as expected once they are integrated.
• System
Testing: System
testing is performed on the whole system by checking whether the system or
application meets the requirement specification document.
Also, Non-functional testing like performance, security testing fall
under the category of dynamic testing.
Static Testing vs Dynamic Testing
S.No
|
Static Testing
|
Dynamic Testing
|
1
|
Static Testing is a
form of software testing. Where the software isn’t actually used.
|
In the dynamic
testing the software must actually be completed and run.
|
2
|
It is generally not
detailed testing. But checks mainly for the sanity of the code, algorithm, or
document. It is primarily syntax checking of the code or and manually reading
of the code or document to find errors.
|
Dynamic analysis
refers to the examination of the physical response from the system to
variables that are not constant and change with the time
|
3
|
This type of testing
can be used by the developer
|
Some of the dynamic
testing methodologies include unit testing, integration testing, system
testing and acceptance testing.
|
Who wrote the code,
in isolation, Code reviews, inspections and walkthroughs are also used.
|
||
4
|
This is a
verification portion of Verification and Validation
|
Dynamic testing is
the validation portion of Verification and Validation
|
5
|
These are
verification activities, Code Reviews, inspection and walkthroughs are few of
the static testing methodologies.
|
These are validation
activities, Unit Tests, Integration Tests System Tests and Acceptance Tests
are few of the Dynamic Testing methodologies
|
6
|
Testing done without
executing the program
|
Testing done by
executing the program
|
7
|
This testing does
verification process
|
Dynamic testing does
validation process
|
8
|
Static testing is
about prevention of defects
|
Dynamic testing is
about finding and fixing the defects
|
9
|
Static testing gives
assessment of code and documentation
|
Dynamic testing
gives bugs/bottlenecks in the software system.
|
10
|
Static testing
involves checklist and process to be followed
|
Dynamic testing
involves test cases for execution
|
11
|
This testing can be
performed before compilation
|
Dynamic testing is performed
after compilation
|
12
|
Static testing
covers the structural and statement coverage testing
|
Dynamic testing
covers the executable file of the code
|
13
|
Cost of finding
defects and fixing is less
|
Cost of finding and
fixing defects is high
|
14
|
Return on investment
will be high as this process involved at early stage
|
Return on investment
will be low as this process involves after the development phase
|
15
|
More reviews
comments are highly recommended for good quality
|
More defects are
highly recommended for good quality.
|
16
|
Requires loads of
meetings
|
Comparatively
requires lesser meetings
|
No comments:
Post a Comment