SlideShare a Scribd company logo
1 of 75
Software
Engineering
UNIT III – CODING
AND TESTING
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
1
Tables of Content
Coding, Code Review, Software Documentation,
Testing, Unit Testing, Black-Box Testing, White-
Box Testing, Debugging, Program Analysis Tool,
Integration Testing, Testing Object-Oriented
Programs, System Testing, Some General Issues
Associated with Testing.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
2
CODING
 Coding is undertaken once the design phase is
complete and the design documents have been
successfully reviewed.
 In the coding phase, every module specified in the
design document is coded and unit tested.
 After all the modules of a system have been coded
and unit tested, the integration and system testing
phase is undertaken.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
3
CODING
 The objective of the coding phase is to
transform the design of a system into code in a
high-level language, and then to unit test this
code.
 Advantages:
 A coding standard gives a uniform appearance to the
codes written by different engineers.
 It facilitates code understanding and code reuse.
 It promotes good programming practices.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
4
CODE REVIEW
 Testing is an effective defect removal mechanism.
 However, testing is applicable to only executable
code.
 Review is a very effective technique to remove
defects from source code.
 Normally, the following two types of reviews are
carried out on the code of a module:
 Code inspection.
 Code walkthrough.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
5
Code Walkthrough
 Code walkthrough is an informal code analysis
technique.
 In this technique, a module is taken up for review
after the module has been coded, successfully
compiled, and all syntax errors have been
eliminated.
 The main objective of code walkthrough is to
discover the algorithmic and logical errors in
the code.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
6
Code Walkthrough
 The team performing code walkthrough – 3 TO 7
MEMBERS
 Discussions should focus on discovery of errors
and avoid deliberations on how to fix the
discovered errors.
 In order to foster co-operation and to avoid the
feeling among the engineers that they are being
watched and evaluated in the code walkthrough
meetings, managers should not attend the
walkthrough meetings.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
7
Code Inspection
 During code inspection, the code is examined for
the presence of some common programming
errors.
 The principal aim of code inspection is to
check for the presence of some common types
of errors that usually creep into code due to
programmer mistakes and oversights and to
check whether coding standards have been
adhered to.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
8
Code Inspection
 Following is a list of some classical programming
errors which can be checked during code
inspection:
 Use of uninitialised variables.
 Jumps into loops.
 Non-terminating loops.
 Incompatible assignments.
 Array indices out of bounds.
 Improper storage allocation and deallocation.
 Improper modification of loop variables.
 Comparison of equality of floating point values
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
9
SOFTWARE
DOCUMENTATION
 When a software is developed, in addition to the
executable files and the source code, several kinds
of documents such as users’ manual, software
requirements specification (SRS) document, design
document, test document, installation manual, etc.,
are developed as part of the software engineering
process.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
10
SOFTWARE
DOCUMENTATION
Good documents are helpful in the following ways:
 enhance understandability of code
 understand and effectively use the system.
 effectively tackle the manpower turnover problem
 manager to effectively track the progress of the
project
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
11
SOFTWARE
DOCUMENTATION
Different types of software documents can broadly be
classified into the following:
 Internal documentation: These are provided in
the source code itself.
 External documentation: These are the
supporting documents such as SRS document,
installation document, user manual, design
document, and test document.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
12
SOFTWARE
DOCUMENTATION
 Internal documentation: These are provided in the source
code itself.
The important types of internal documentation are the following:
 Comments embedded in the source code.
 Use of meaningful variable names.
 Module and function headers.
 Code indentation.
 Code structuring (i.e., code decomposed into modules and
functions).
 Use of enumerated types.
 Use of constant identifiers.
 Use of user-defined data types.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
13
SOFTWARE
DOCUMENTATION
 External documentation: These are the supporting
documents such as SRS document, installation
document, user manual, design document, and test
document.
 Gunning’s fog index: is a metric that has been
designed to measure the readability of a document.
 The Gunning’s fog index of a document D can be
computed as follows:
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
14
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: Observe that the fog index is
computed as the sum of two different factors.
 The first factor computes the average number of words
per sentence. This factor therefore accounts for the
common observation that long sentences are difficult to
understand.
 The second factor measures the percentage of complex
words in the document. Note that a syllable is a group
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
15
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: Observe that the fog index is
computed as the sum of two different factors.
 The second factor measures the percentage of complex
words in the document. Note that a syllable is a group of
words that can be independently pronounced.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
16
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: For example, the word “sentence”
has three syllables (“sen”, “ten”, and “ce”). Words having
more than three syllables are complex words and
presence of many such words hamper readability of a
document.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
17
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: For example, the word “sentence”
has three syllables (“sen”, “ten”, and “ce”). Words having
more than three syllables are complex words and
presence of many such words hamper readability of a
document.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
18
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: “Sasi Institute of Technology.”
Calculate its Fog index
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
19
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: “The Gunning’s fog index is based
on the premise that use of short sentences and simple
words makes a document easy to understand.” Calculate
its Fog index
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
20
SOFTWARE
DOCUMENTATION
 Gunning’s fog index: “The Gunning’s fog index is based
on the premise that use of short sentences and simple
words makes a document easy to understand.” Calculate
its Fog index
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
21
 0.4 * (23/1) + (4/23) *100
 9.2 + 17.39 = 26.59
TESTING
 The aim of program testing is to find all defects in a
program.
 However, in practice, even after satisfactory
completion of the testing phase, it is not possible to
guarantee that a program is error free.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
22
TESTING - How to
test a program?
 Testing a program involves executing the program
with a set of test inputs and observing if the
program behaves as expected.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
23
TESTING -
Terminologies
 A mistake is essentially any programmer action that later
shows up as an incorrect result during program execution.
 An error is the result of a mistake committed by a
developer in any of the development activities.
 A failure of a program essentially denotes an incorrect
behaviour exhibited by the program during its execution.
 A test case is a triplet [I , S, R], where I is the data input to
the program under test, S is the state of the program at
which the data is to be input, and R is the result expected
to be produced by the program.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
24
TESTING -
Terminologies
 A test scenario is an abstract test case in the sense
that it only identifies the aspects of the program that
are to be tested without identifying the input, state, or
output.
 A test script is an encoding of a test case as a short
program. Test scripts are developed for automated
execution of the test cases.
 A test case is said to be a positive test case if it is
designed to test whether the software correctly
performs a required functionality.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
25
TESTING -
Terminologies
 A test suite is the set of all test that have been
designed by a tester to test a given program.
 Testability of a requirement denotes the extent to
which it is possible to determine whether an
implementation of the requirement conforms to it in
both functionality and performance.
 A failure mode of a software denotes an observable
way in which it can fail.
 Equivalent faults denote two or more bugs that result
in the system failing in the same failure mode.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
26
Verification versus
validation
 Verification is the process of determining whether
the output of one phase of software development
conforms to that of its previous phase;
 whereas validation is the process of determining
whether a fully developed software conforms to its
requirements specification.
 The primary techniques used for verification include
review, simulation, formal verification, and testing.
 On the other hand, validation techniques are
primarily based on product testing.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
27
Verification versus
validation
 Verification does not require execution of the
software, whereas validation requires execution of
the software.
 Verification is carried out during the development
process to check if the development activities are
proceeding alright, whereas validation is carried out
to check if the right as required by the customer has
been developed.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
28
TESTING - Testing
Activities
 Testing involves
performing the
following main
activities:
 Test suite design
 Running test
cases and
checking the
results to detect
failures
 Locate error
 Error correction
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
29
UNIT TESTING
 Unit testing is undertaken after a module has been
coded and reviewed.
 This activity is typically undertaken by the coder of
the module himself in the coding phase.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
30
UNIT TESTING - Driver
and stub modules
The following are needed to test the module:
 The procedures belonging to other modules that the
module under test calls.
 Non-local data structures that the module accesses.
 A procedure to call the functions of the module
under test with appropriate parameters.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
31
UNIT TESTING - Driver
and stub modules
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
32
UNIT TESTING - Driver
and stub modules
 Driver: A driver module should contain the non-
local data structures accessed by the module under
test.
 Stub: A stub procedure is a dummy procedure that
has the same I/O parameters as the function called
by the unit under test but has a highly simplified
behaviour.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
33
BLACK-BOX TESTING
 In black-box testing, test cases are designed
from an examination of the input/output values
only and no knowledge of design or code is
required.
 The following are the two main approaches
available to design black box test cases:
 Equivalence class partitioning
 Boundary value analysis
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
34
BLACK-BOX TESTING -
Equivalence Class Partitioning
 The main idea behind defining equivalence classes
of input data is that testing the code with any one
value belonging to an equivalence class is as good
as testing the code with any other value belonging
to the same equivalence class.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
35
BLACK-BOX TESTING -
Equivalence Class Partitioning
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
36
BLACK-BOX TESTING -
Equivalence Class Partitioning
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
37
 Example:
0 – 100 testcases
BLACK-BOX TESTING -
Boundary Value Analysis
 Boundary value analysis-based test suite design
involves designing test cases using the values at
the boundaries of different equivalence classes.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
38
BLACK-BOX TESTING -
Boundary Value Analysis
 Boundary value analysis-based test suite design
involves designing test cases using the values at
the boundaries of different equivalence classes.
 Example: 0 and 100 is boundary for 100 test cases
 Lower boundary cases – Formula is Min-1
 On boundary cases – Formula is Min, Min+1, Max,
Max-1
 Upper boundary cases – Formula is Max+1
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
39
BLACK-BOX TESTING -
Boundary Value Analysis
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
40
WHITE-BOX TESTING
 White-box testing is an important type of unit
testing.
 It is also called as Clear box / Open box / Gray box
testing.
 White box testing will done by developer not a QA
tester.
 Used for testing the internal structure.
 Design and coding of software are tested to verify
flow of input-output and to improve design,
usability and security.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
41
WHITE-BOX TESTING
 A white-box testing strategy can either be
 Coverage-based testing
 A coverage-based testing strategy attempts to
execute (or cover) certain elements of a
program.
 Fault based testing
 A fault-based testing strategy targets to detect
certain types of faults.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
42
WHITE-BOX TESTING
- Statement Coverage
 Statement Coverage: The principal idea governing
the statement coverage strategy is that unless a
statement is executed, there is no way to determine
whether an error exists in that statement.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
43
Example: Design statement coverage-
based test suite for the following Euclid’s GCD
computation program
int computeGCD(x,y)
int x,y;
{
while (x != y){
if (x>y) then
x=x-y;
else y=y-x;
}
return x;
}
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
44
 To design the test cases for the
statement coverage, the
conditional expression of the while
statement needs to be made true and
the conditional expression of the if
statement needs to be made both
true and false.
 By choosing the test set {(x = 3, y =
3), (x = 4, y = 3), (x = 3, y =
4)}, all statements of the program
would be executed at least once.
WHITE-BOX TESTING
- Branch Coverage
 Branch Coverage: A test suite satisfies
branch coverage, if it makes each branch
condition in the program to assume true and
false values in turn
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
45
Example: Design branch coverage-
based test suite for the following Euclid’s GCD
computation program
int computeGCD(x,y)
int x,y;
{
while (x != y){
if (x>y) then
x=x-y;
else y=y-x;
}
return x;
}
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
46
 To design the test cases for the
branch coverage, the
conditional expression of the while
statement needs to be made true and
the conditional expression of the if
statement needs to be made both
true
and false.
 The test suite {(x = 3, y = 3), (x = 3,
y = 2), (x = 4, y = 3), (x = 3, y = 4)}
achieves branch coverage.
Important Questions
Explain the unique nature of webapps
Discuss the prescriptive process model
Discuss the process of Requirements gathering and analysis
Differentiate Personal and Team process models
Requirements gathering and analysis in software engineering
Differentiate Cohesion and coupling
Explain the layered arrangement of modules
Explain structured design
Develop the DFD Model of the System
Explain different types of User interfaces
Explain the types of code review
Explain the types of software documentation and Gunning’s fog index
Write the basic concepts and terminologies of Testing
Explain the main approaches of black box texting with examples
What is the difference between black-box testing and white-box
testing? Explain the approaches in black box testing
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
47
Tables of Content
Coding, Code Review, Software Documentation,
Testing, Unit Testing, Black-Box Testing, White-
Box Testing
Debugging, Program Analysis Tool,
Integration Testing, Testing Object-Oriented
Programs, System Testing, Some General
Issues Associated with Testing.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
48
Debugging
 After a failure has been detected, it is
necessary to first identify the program
statement(s) that are in error and are
responsible for the failure, the error can
then be fixed.
 In this Section, we shall summarize the
important approaches that are available to
identify the error locations.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
49
Debugging Approaches
 Brute force method
 Backtracking
 Cause elimination method
 Program slicing
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
50
Debugging Approaches
 Brute force method
 Most common but least efficient Method
 Print statement is inserted to print
intermediate values to identify statement
errors.
 Use symbolic debugger
 Single stepping using a symbolic debugger
is another form of this approach
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
51
Debugging Approaches
 Backtracking
 A fairly common approach
 Starting from the statement at which an
error symptom has been observed
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
52
Debugging Approaches
 Cause elimination method
 Once a failure is observed, the symptoms
of the failure are noted
 Based on the failure symptoms, the cause
is developed and tests are conducted to
eliminate each.
 A related technique of identification of the
error from the error symptom is the
software fault tree analysis
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
53
Debugging Approaches
 Program slicing
 This technique is similar to back tracking.
 In the backtracking approach, one often
has to examine a large number of
statements.
 However, the search space is reduced by
defining slices.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
54
PROGRAM ANALYSIS
TOOLS
 It is an automated tool
 It takes either the source code or the executable code of
a program as input and produces reports regarding
several important characteristics of the program, such
as its size, complexity, adequacy of commenting,
adherence to programming standards, adequacy of
testing, etc.
 We can classify various program analysis tools into the
following two broad categories:
 Static analysis tools
 Dynamic analysis tools
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
55
PROGRAM ANALYSIS
TOOLS
 Static analysis tools
 It assess and compute various characteristics of a
program without executing it.
 In this context, it displays the following analysis
results:
 To what extent the coding standards have been
adhered to?
 Whether certain programming errors such as
uninitialized variables, mismatch between actual
and formal parameters, variables that are declared
but never used, etc., exist? A list of all such errors is
displayed
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
56
PROGRAM ANALYSIS
TOOLS
 Dynamic Analysis Tools
 It is used to evaluate several characteristics
based on an analysis of the run time behaviour
of a program.
 These tools usually record and analyze the
actual behaviour of a program while it is being
executed.
 An important characteristic of a test suite
that is computed by a dynamic analysis tool
is the extent of coverage achieved by the test
suite.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
57
INTEGRATION
TESTING
 Integration testing is carried out after all (or at
least some of ) the modules have been unit
tested.
 The objective of integration testing is to check
whether the different modules of a program
interface with each other properly.
 During integration testing, different modules of
a system are integrated in a planned manner
using an integration plan.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
58
INTEGRATION
TESTING
 The integration plan specifies the steps and
the order in which modules are combined to
realize the full system.
 An important factor that guides the integration
plan is the module dependency graph.
 By examining the structure chart, the
integration plan can be developed.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
59
INTEGRATION
TESTING
 Any one (or a mixture) of the following
approaches can be used to develop the test
plan:
 Big-bang approach to integration testing
 Top-down approach to integration testing
 Bottom-up approach to integration testing
 Mixed (also called sandwiched ) approach to
integration testing
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
60
INTEGRATION
TESTING
 Big-bang approach to integration testing
 All the modules making up a system are integrated
in a single step.
 All the unit tested modules of the system are simply
linked together and tested.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
61
INTEGRATION
TESTING
 Bottom-up approach to integration testing
 Large software products are often made up of
several subsystems.
 In bottom-up integration testing, first the
modules for the each subsystem are integrated.
 The primary purpose is to test whether the
interfaces among various modules making up
the subsystem work satisfactorily.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
62
INTEGRATION
TESTING
 Top-down approach to integration testing
 Top-down integration testing starts with the root
module in the structure chart and one or two
subordinate modules of the root module.
 Top-down integration testing approach requires
the use of program stubs to simulate the effect
of lower-level routines that are called by the
routines under test.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
63
INTEGRATION
TESTING
 Top-down approach to integration testing
 A pure top-down integration does not require any driver
routines.
 An advantage of top-down integration testing is that it
requires writing only stubs, and stubs are simpler to write
compared to drivers.
 A disadvantage of the top-down integration testing
approach is that in the absence of lower-level routines, it
becomes difficult to exercise the top-level routines in the
desired manner since the lower level routines usually
perform input/output (I/O) operations.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
64
INTEGRATION
TESTING
 Mixed approach to integration testing
 The mixed (also called sandwiched ) integration
testing follows a combination of top-down and
bottom-up testing approaches.
 In this approach testing can start as and when
modules become available after unit testing.
 Therefore, this is one of the most commonly
used integration testing approaches.
 In this approach, both stubs and drivers are
required to be designed.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
65
TESTING OBJECT-
ORIENTED PROGRAMS
 During the initial years of object-oriented
programming, it was believed that object-
orientation would, to a great extent, reduce the
cost and effort incurred on testing.
 The main reason behind this situation is that
various object-oriented features introduce
additional complications and scope of new types of
bugs that are present in procedural programs.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
66
TESTING OBJECT-
ORIENTED PROGRAMS
 Object-oriented Programs?
 Adequate testing of individual methods does not
ensure that a class has been satisfactorily tested.
 An object is the basic unit of testing of object-
oriented programs.
 In this section, we discuss the implications of
different object-orientation features in testing.
 Encapsulation: data abstraction, error isolation,
and error prevention. Encapsulation prevents the
tester from accessing the data internal to an
object.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
67
TESTING OBJECT-
ORIENTED PROGRAMS
 The inheritance feature helps in code reuse
and was expected to simplify testing.
 Dynamic binding was introduced to make the
code compact, elegant, and easily extensible.
 Object states: In contrast to the procedures in a
procedural program, objects store data
permanently. As a result, objects do have
significant states.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
68
System Testing
 System tests are designed to validate a fully
developed system to assure that it meets its
requirements.
 The test cases are therefore designed solely based
on the SRS document.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
69
System Testing
 There are essentially three main kinds of system testing
depending on who carries out testing:
 Alpha Testing: Alpha testing refers to the system
testing carried out by the test team within the
developing organization.
 Beta Testing: Beta testing is the system testing
performed by a select group of friendly customers.
 Acceptance Testing: Acceptance testing is the system
testing performed by the customer to determine whether
to accept the delivery of the system.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
70
System Testing
 In each of the above types of system tests, the
test cases can be the same, but the difference is
with respect to who designs test cases and
carries out testing.
 The system test cases can be classified into
 Functionality (Smoke Testing)
 Performance test cases.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
71
System Testing
 Smoke testing
 The idea behind smoke testing is that if the integrated
program cannot pass even the basic tests, it is not
ready for a vigorous testing.
 For smoke testing, a few test cases are designed to
check whether the basic functionalities are working.
 For example, for a library automation system, the
smoke tests may check whether books can be
created and deleted, whether member records can be
created and deleted, and whether books can be
loaned and returned.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
72
System Testing
 Performance Testing
 Performance testing is carried out to check whether
the system meets the nonfunctional requirements
identified in the SRS document.
 All performance tests can be considered as black-box
tests.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
73
Some General Issues
Associated with Testing
 Test documentation
 A piece of documentation that is produced towards
the end of testing is the test summary report.
 It normally specifies the following:
 What is the total number of tests that were applied
to a subsystem.
 Out of the total number of tests how many tests
were successful.
 How many were unsuccessful.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
74
Some General Issues
Associated with Testing
 Regression testing
 Regression testing is the practice of running an
old test suite after each change to the system
or after each bug fix to ensure that no new bug
has been introduced due to the change or the
bug fix.
 Whenever a software is changed to either fix a
bug, or enhance or remove a feature,
regression testing is carried out.
30-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
75

More Related Content

Similar to Unit III _Software Engineering.pptx

Extreme software estimation (xsoft estimation)
Extreme software estimation (xsoft estimation)Extreme software estimation (xsoft estimation)
Extreme software estimation (xsoft estimation)eSAT Publishing House
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgCS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgRahithAhsan1
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtRungrojMaipradit1
 
Defect effort prediction models in software maintenance projects
Defect  effort prediction models in software maintenance projectsDefect  effort prediction models in software maintenance projects
Defect effort prediction models in software maintenance projectsiaemedu
 
Software metric analysis methods for product development maintenance projects
Software metric analysis methods for product development  maintenance projectsSoftware metric analysis methods for product development  maintenance projects
Software metric analysis methods for product development maintenance projectsIAEME Publication
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product developmentiaemedu
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product developmentiaemedu
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smelleSAT Publishing House
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smelleSAT Journals
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019MuhammadTalha436
 
Compiler Design Using Context-Free Grammar
Compiler Design Using Context-Free GrammarCompiler Design Using Context-Free Grammar
Compiler Design Using Context-Free GrammarIRJET Journal
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptDrTThendralCompSci
 
International Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJSInternational Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJShildredzr1di
 
A Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality MeasuresA Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality MeasuresTodd Turner
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentalsAbdul Basit
 

Similar to Unit III _Software Engineering.pptx (20)

Extreme software estimation (xsoft estimation)
Extreme software estimation (xsoft estimation)Extreme software estimation (xsoft estimation)
Extreme software estimation (xsoft estimation)
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgCS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
 
Unit iv
Unit ivUnit iv
Unit iv
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 
Ijetcas14 468
Ijetcas14 468Ijetcas14 468
Ijetcas14 468
 
Defect effort prediction models in software maintenance projects
Defect  effort prediction models in software maintenance projectsDefect  effort prediction models in software maintenance projects
Defect effort prediction models in software maintenance projects
 
Software metric analysis methods for product development maintenance projects
Software metric analysis methods for product development  maintenance projectsSoftware metric analysis methods for product development  maintenance projects
Software metric analysis methods for product development maintenance projects
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product development
 
Software metric analysis methods for product development
Software metric analysis methods for product developmentSoftware metric analysis methods for product development
Software metric analysis methods for product development
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019
 
Compiler Design Using Context-Free Grammar
Compiler Design Using Context-Free GrammarCompiler Design Using Context-Free Grammar
Compiler Design Using Context-Free Grammar
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.ppt
 
International Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJSInternational Journal of Soft Computing and Engineering (IJS
International Journal of Soft Computing and Engineering (IJS
 
A Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality MeasuresA Comparative Case Study On Tools For Internal Software Quality Measures
A Comparative Case Study On Tools For Internal Software Quality Measures
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
 
Ijcatr04051006
Ijcatr04051006Ijcatr04051006
Ijcatr04051006
 

Recently uploaded

Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesRashidFaridChishti
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptAfnanAhmad53
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxMuhammadAsimMuhammad6
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...ronahami
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Ramkumar k
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 

Recently uploaded (20)

Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Signal Processing and Linear System Analysis
Signal Processing and Linear System AnalysisSignal Processing and Linear System Analysis
Signal Processing and Linear System Analysis
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 

Unit III _Software Engineering.pptx

  • 1. Software Engineering UNIT III – CODING AND TESTING 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 1
  • 2. Tables of Content Coding, Code Review, Software Documentation, Testing, Unit Testing, Black-Box Testing, White- Box Testing, Debugging, Program Analysis Tool, Integration Testing, Testing Object-Oriented Programs, System Testing, Some General Issues Associated with Testing. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 2
  • 3. CODING  Coding is undertaken once the design phase is complete and the design documents have been successfully reviewed.  In the coding phase, every module specified in the design document is coded and unit tested.  After all the modules of a system have been coded and unit tested, the integration and system testing phase is undertaken. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 3
  • 4. CODING  The objective of the coding phase is to transform the design of a system into code in a high-level language, and then to unit test this code.  Advantages:  A coding standard gives a uniform appearance to the codes written by different engineers.  It facilitates code understanding and code reuse.  It promotes good programming practices. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 4
  • 5. CODE REVIEW  Testing is an effective defect removal mechanism.  However, testing is applicable to only executable code.  Review is a very effective technique to remove defects from source code.  Normally, the following two types of reviews are carried out on the code of a module:  Code inspection.  Code walkthrough. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 5
  • 6. Code Walkthrough  Code walkthrough is an informal code analysis technique.  In this technique, a module is taken up for review after the module has been coded, successfully compiled, and all syntax errors have been eliminated.  The main objective of code walkthrough is to discover the algorithmic and logical errors in the code. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 6
  • 7. Code Walkthrough  The team performing code walkthrough – 3 TO 7 MEMBERS  Discussions should focus on discovery of errors and avoid deliberations on how to fix the discovered errors.  In order to foster co-operation and to avoid the feeling among the engineers that they are being watched and evaluated in the code walkthrough meetings, managers should not attend the walkthrough meetings. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 7
  • 8. Code Inspection  During code inspection, the code is examined for the presence of some common programming errors.  The principal aim of code inspection is to check for the presence of some common types of errors that usually creep into code due to programmer mistakes and oversights and to check whether coding standards have been adhered to. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 8
  • 9. Code Inspection  Following is a list of some classical programming errors which can be checked during code inspection:  Use of uninitialised variables.  Jumps into loops.  Non-terminating loops.  Incompatible assignments.  Array indices out of bounds.  Improper storage allocation and deallocation.  Improper modification of loop variables.  Comparison of equality of floating point values 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 9
  • 10. SOFTWARE DOCUMENTATION  When a software is developed, in addition to the executable files and the source code, several kinds of documents such as users’ manual, software requirements specification (SRS) document, design document, test document, installation manual, etc., are developed as part of the software engineering process. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 10
  • 11. SOFTWARE DOCUMENTATION Good documents are helpful in the following ways:  enhance understandability of code  understand and effectively use the system.  effectively tackle the manpower turnover problem  manager to effectively track the progress of the project 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 11
  • 12. SOFTWARE DOCUMENTATION Different types of software documents can broadly be classified into the following:  Internal documentation: These are provided in the source code itself.  External documentation: These are the supporting documents such as SRS document, installation document, user manual, design document, and test document. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 12
  • 13. SOFTWARE DOCUMENTATION  Internal documentation: These are provided in the source code itself. The important types of internal documentation are the following:  Comments embedded in the source code.  Use of meaningful variable names.  Module and function headers.  Code indentation.  Code structuring (i.e., code decomposed into modules and functions).  Use of enumerated types.  Use of constant identifiers.  Use of user-defined data types. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 13
  • 14. SOFTWARE DOCUMENTATION  External documentation: These are the supporting documents such as SRS document, installation document, user manual, design document, and test document.  Gunning’s fog index: is a metric that has been designed to measure the readability of a document.  The Gunning’s fog index of a document D can be computed as follows: 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 14
  • 15. SOFTWARE DOCUMENTATION  Gunning’s fog index: Observe that the fog index is computed as the sum of two different factors.  The first factor computes the average number of words per sentence. This factor therefore accounts for the common observation that long sentences are difficult to understand.  The second factor measures the percentage of complex words in the document. Note that a syllable is a group 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 15
  • 16. SOFTWARE DOCUMENTATION  Gunning’s fog index: Observe that the fog index is computed as the sum of two different factors.  The second factor measures the percentage of complex words in the document. Note that a syllable is a group of words that can be independently pronounced. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 16
  • 17. SOFTWARE DOCUMENTATION  Gunning’s fog index: For example, the word “sentence” has three syllables (“sen”, “ten”, and “ce”). Words having more than three syllables are complex words and presence of many such words hamper readability of a document. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 17
  • 18. SOFTWARE DOCUMENTATION  Gunning’s fog index: For example, the word “sentence” has three syllables (“sen”, “ten”, and “ce”). Words having more than three syllables are complex words and presence of many such words hamper readability of a document. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 18
  • 19. SOFTWARE DOCUMENTATION  Gunning’s fog index: “Sasi Institute of Technology.” Calculate its Fog index 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 19
  • 20. SOFTWARE DOCUMENTATION  Gunning’s fog index: “The Gunning’s fog index is based on the premise that use of short sentences and simple words makes a document easy to understand.” Calculate its Fog index 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 20
  • 21. SOFTWARE DOCUMENTATION  Gunning’s fog index: “The Gunning’s fog index is based on the premise that use of short sentences and simple words makes a document easy to understand.” Calculate its Fog index 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 21  0.4 * (23/1) + (4/23) *100  9.2 + 17.39 = 26.59
  • 22. TESTING  The aim of program testing is to find all defects in a program.  However, in practice, even after satisfactory completion of the testing phase, it is not possible to guarantee that a program is error free. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 22
  • 23. TESTING - How to test a program?  Testing a program involves executing the program with a set of test inputs and observing if the program behaves as expected. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 23
  • 24. TESTING - Terminologies  A mistake is essentially any programmer action that later shows up as an incorrect result during program execution.  An error is the result of a mistake committed by a developer in any of the development activities.  A failure of a program essentially denotes an incorrect behaviour exhibited by the program during its execution.  A test case is a triplet [I , S, R], where I is the data input to the program under test, S is the state of the program at which the data is to be input, and R is the result expected to be produced by the program. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 24
  • 25. TESTING - Terminologies  A test scenario is an abstract test case in the sense that it only identifies the aspects of the program that are to be tested without identifying the input, state, or output.  A test script is an encoding of a test case as a short program. Test scripts are developed for automated execution of the test cases.  A test case is said to be a positive test case if it is designed to test whether the software correctly performs a required functionality. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 25
  • 26. TESTING - Terminologies  A test suite is the set of all test that have been designed by a tester to test a given program.  Testability of a requirement denotes the extent to which it is possible to determine whether an implementation of the requirement conforms to it in both functionality and performance.  A failure mode of a software denotes an observable way in which it can fail.  Equivalent faults denote two or more bugs that result in the system failing in the same failure mode. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 26
  • 27. Verification versus validation  Verification is the process of determining whether the output of one phase of software development conforms to that of its previous phase;  whereas validation is the process of determining whether a fully developed software conforms to its requirements specification.  The primary techniques used for verification include review, simulation, formal verification, and testing.  On the other hand, validation techniques are primarily based on product testing. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 27
  • 28. Verification versus validation  Verification does not require execution of the software, whereas validation requires execution of the software.  Verification is carried out during the development process to check if the development activities are proceeding alright, whereas validation is carried out to check if the right as required by the customer has been developed. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 28
  • 29. TESTING - Testing Activities  Testing involves performing the following main activities:  Test suite design  Running test cases and checking the results to detect failures  Locate error  Error correction 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 29
  • 30. UNIT TESTING  Unit testing is undertaken after a module has been coded and reviewed.  This activity is typically undertaken by the coder of the module himself in the coding phase. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 30
  • 31. UNIT TESTING - Driver and stub modules The following are needed to test the module:  The procedures belonging to other modules that the module under test calls.  Non-local data structures that the module accesses.  A procedure to call the functions of the module under test with appropriate parameters. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 31
  • 32. UNIT TESTING - Driver and stub modules 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 32
  • 33. UNIT TESTING - Driver and stub modules  Driver: A driver module should contain the non- local data structures accessed by the module under test.  Stub: A stub procedure is a dummy procedure that has the same I/O parameters as the function called by the unit under test but has a highly simplified behaviour. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 33
  • 34. BLACK-BOX TESTING  In black-box testing, test cases are designed from an examination of the input/output values only and no knowledge of design or code is required.  The following are the two main approaches available to design black box test cases:  Equivalence class partitioning  Boundary value analysis 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 34
  • 35. BLACK-BOX TESTING - Equivalence Class Partitioning  The main idea behind defining equivalence classes of input data is that testing the code with any one value belonging to an equivalence class is as good as testing the code with any other value belonging to the same equivalence class. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 35
  • 36. BLACK-BOX TESTING - Equivalence Class Partitioning 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 36
  • 37. BLACK-BOX TESTING - Equivalence Class Partitioning 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 37  Example: 0 – 100 testcases
  • 38. BLACK-BOX TESTING - Boundary Value Analysis  Boundary value analysis-based test suite design involves designing test cases using the values at the boundaries of different equivalence classes. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 38
  • 39. BLACK-BOX TESTING - Boundary Value Analysis  Boundary value analysis-based test suite design involves designing test cases using the values at the boundaries of different equivalence classes.  Example: 0 and 100 is boundary for 100 test cases  Lower boundary cases – Formula is Min-1  On boundary cases – Formula is Min, Min+1, Max, Max-1  Upper boundary cases – Formula is Max+1 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 39
  • 40. BLACK-BOX TESTING - Boundary Value Analysis 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 40
  • 41. WHITE-BOX TESTING  White-box testing is an important type of unit testing.  It is also called as Clear box / Open box / Gray box testing.  White box testing will done by developer not a QA tester.  Used for testing the internal structure.  Design and coding of software are tested to verify flow of input-output and to improve design, usability and security. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 41
  • 42. WHITE-BOX TESTING  A white-box testing strategy can either be  Coverage-based testing  A coverage-based testing strategy attempts to execute (or cover) certain elements of a program.  Fault based testing  A fault-based testing strategy targets to detect certain types of faults. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 42
  • 43. WHITE-BOX TESTING - Statement Coverage  Statement Coverage: The principal idea governing the statement coverage strategy is that unless a statement is executed, there is no way to determine whether an error exists in that statement. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 43
  • 44. Example: Design statement coverage- based test suite for the following Euclid’s GCD computation program int computeGCD(x,y) int x,y; { while (x != y){ if (x>y) then x=x-y; else y=y-x; } return x; } 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 44  To design the test cases for the statement coverage, the conditional expression of the while statement needs to be made true and the conditional expression of the if statement needs to be made both true and false.  By choosing the test set {(x = 3, y = 3), (x = 4, y = 3), (x = 3, y = 4)}, all statements of the program would be executed at least once.
  • 45. WHITE-BOX TESTING - Branch Coverage  Branch Coverage: A test suite satisfies branch coverage, if it makes each branch condition in the program to assume true and false values in turn 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 45
  • 46. Example: Design branch coverage- based test suite for the following Euclid’s GCD computation program int computeGCD(x,y) int x,y; { while (x != y){ if (x>y) then x=x-y; else y=y-x; } return x; } 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 46  To design the test cases for the branch coverage, the conditional expression of the while statement needs to be made true and the conditional expression of the if statement needs to be made both true and false.  The test suite {(x = 3, y = 3), (x = 3, y = 2), (x = 4, y = 3), (x = 3, y = 4)} achieves branch coverage.
  • 47. Important Questions Explain the unique nature of webapps Discuss the prescriptive process model Discuss the process of Requirements gathering and analysis Differentiate Personal and Team process models Requirements gathering and analysis in software engineering Differentiate Cohesion and coupling Explain the layered arrangement of modules Explain structured design Develop the DFD Model of the System Explain different types of User interfaces Explain the types of code review Explain the types of software documentation and Gunning’s fog index Write the basic concepts and terminologies of Testing Explain the main approaches of black box texting with examples What is the difference between black-box testing and white-box testing? Explain the approaches in black box testing 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 47
  • 48. Tables of Content Coding, Code Review, Software Documentation, Testing, Unit Testing, Black-Box Testing, White- Box Testing Debugging, Program Analysis Tool, Integration Testing, Testing Object-Oriented Programs, System Testing, Some General Issues Associated with Testing. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 48
  • 49. Debugging  After a failure has been detected, it is necessary to first identify the program statement(s) that are in error and are responsible for the failure, the error can then be fixed.  In this Section, we shall summarize the important approaches that are available to identify the error locations. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 49
  • 50. Debugging Approaches  Brute force method  Backtracking  Cause elimination method  Program slicing 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 50
  • 51. Debugging Approaches  Brute force method  Most common but least efficient Method  Print statement is inserted to print intermediate values to identify statement errors.  Use symbolic debugger  Single stepping using a symbolic debugger is another form of this approach 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 51
  • 52. Debugging Approaches  Backtracking  A fairly common approach  Starting from the statement at which an error symptom has been observed 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 52
  • 53. Debugging Approaches  Cause elimination method  Once a failure is observed, the symptoms of the failure are noted  Based on the failure symptoms, the cause is developed and tests are conducted to eliminate each.  A related technique of identification of the error from the error symptom is the software fault tree analysis 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 53
  • 54. Debugging Approaches  Program slicing  This technique is similar to back tracking.  In the backtracking approach, one often has to examine a large number of statements.  However, the search space is reduced by defining slices. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 54
  • 55. PROGRAM ANALYSIS TOOLS  It is an automated tool  It takes either the source code or the executable code of a program as input and produces reports regarding several important characteristics of the program, such as its size, complexity, adequacy of commenting, adherence to programming standards, adequacy of testing, etc.  We can classify various program analysis tools into the following two broad categories:  Static analysis tools  Dynamic analysis tools 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 55
  • 56. PROGRAM ANALYSIS TOOLS  Static analysis tools  It assess and compute various characteristics of a program without executing it.  In this context, it displays the following analysis results:  To what extent the coding standards have been adhered to?  Whether certain programming errors such as uninitialized variables, mismatch between actual and formal parameters, variables that are declared but never used, etc., exist? A list of all such errors is displayed 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 56
  • 57. PROGRAM ANALYSIS TOOLS  Dynamic Analysis Tools  It is used to evaluate several characteristics based on an analysis of the run time behaviour of a program.  These tools usually record and analyze the actual behaviour of a program while it is being executed.  An important characteristic of a test suite that is computed by a dynamic analysis tool is the extent of coverage achieved by the test suite. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 57
  • 58. INTEGRATION TESTING  Integration testing is carried out after all (or at least some of ) the modules have been unit tested.  The objective of integration testing is to check whether the different modules of a program interface with each other properly.  During integration testing, different modules of a system are integrated in a planned manner using an integration plan. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 58
  • 59. INTEGRATION TESTING  The integration plan specifies the steps and the order in which modules are combined to realize the full system.  An important factor that guides the integration plan is the module dependency graph.  By examining the structure chart, the integration plan can be developed. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 59
  • 60. INTEGRATION TESTING  Any one (or a mixture) of the following approaches can be used to develop the test plan:  Big-bang approach to integration testing  Top-down approach to integration testing  Bottom-up approach to integration testing  Mixed (also called sandwiched ) approach to integration testing 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 60
  • 61. INTEGRATION TESTING  Big-bang approach to integration testing  All the modules making up a system are integrated in a single step.  All the unit tested modules of the system are simply linked together and tested. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 61
  • 62. INTEGRATION TESTING  Bottom-up approach to integration testing  Large software products are often made up of several subsystems.  In bottom-up integration testing, first the modules for the each subsystem are integrated.  The primary purpose is to test whether the interfaces among various modules making up the subsystem work satisfactorily. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 62
  • 63. INTEGRATION TESTING  Top-down approach to integration testing  Top-down integration testing starts with the root module in the structure chart and one or two subordinate modules of the root module.  Top-down integration testing approach requires the use of program stubs to simulate the effect of lower-level routines that are called by the routines under test. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 63
  • 64. INTEGRATION TESTING  Top-down approach to integration testing  A pure top-down integration does not require any driver routines.  An advantage of top-down integration testing is that it requires writing only stubs, and stubs are simpler to write compared to drivers.  A disadvantage of the top-down integration testing approach is that in the absence of lower-level routines, it becomes difficult to exercise the top-level routines in the desired manner since the lower level routines usually perform input/output (I/O) operations. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 64
  • 65. INTEGRATION TESTING  Mixed approach to integration testing  The mixed (also called sandwiched ) integration testing follows a combination of top-down and bottom-up testing approaches.  In this approach testing can start as and when modules become available after unit testing.  Therefore, this is one of the most commonly used integration testing approaches.  In this approach, both stubs and drivers are required to be designed. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 65
  • 66. TESTING OBJECT- ORIENTED PROGRAMS  During the initial years of object-oriented programming, it was believed that object- orientation would, to a great extent, reduce the cost and effort incurred on testing.  The main reason behind this situation is that various object-oriented features introduce additional complications and scope of new types of bugs that are present in procedural programs. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 66
  • 67. TESTING OBJECT- ORIENTED PROGRAMS  Object-oriented Programs?  Adequate testing of individual methods does not ensure that a class has been satisfactorily tested.  An object is the basic unit of testing of object- oriented programs.  In this section, we discuss the implications of different object-orientation features in testing.  Encapsulation: data abstraction, error isolation, and error prevention. Encapsulation prevents the tester from accessing the data internal to an object. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 67
  • 68. TESTING OBJECT- ORIENTED PROGRAMS  The inheritance feature helps in code reuse and was expected to simplify testing.  Dynamic binding was introduced to make the code compact, elegant, and easily extensible.  Object states: In contrast to the procedures in a procedural program, objects store data permanently. As a result, objects do have significant states. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 68
  • 69. System Testing  System tests are designed to validate a fully developed system to assure that it meets its requirements.  The test cases are therefore designed solely based on the SRS document. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 69
  • 70. System Testing  There are essentially three main kinds of system testing depending on who carries out testing:  Alpha Testing: Alpha testing refers to the system testing carried out by the test team within the developing organization.  Beta Testing: Beta testing is the system testing performed by a select group of friendly customers.  Acceptance Testing: Acceptance testing is the system testing performed by the customer to determine whether to accept the delivery of the system. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 70
  • 71. System Testing  In each of the above types of system tests, the test cases can be the same, but the difference is with respect to who designs test cases and carries out testing.  The system test cases can be classified into  Functionality (Smoke Testing)  Performance test cases. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 71
  • 72. System Testing  Smoke testing  The idea behind smoke testing is that if the integrated program cannot pass even the basic tests, it is not ready for a vigorous testing.  For smoke testing, a few test cases are designed to check whether the basic functionalities are working.  For example, for a library automation system, the smoke tests may check whether books can be created and deleted, whether member records can be created and deleted, and whether books can be loaned and returned. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 72
  • 73. System Testing  Performance Testing  Performance testing is carried out to check whether the system meets the nonfunctional requirements identified in the SRS document.  All performance tests can be considered as black-box tests. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 73
  • 74. Some General Issues Associated with Testing  Test documentation  A piece of documentation that is produced towards the end of testing is the test summary report.  It normally specifies the following:  What is the total number of tests that were applied to a subsystem.  Out of the total number of tests how many tests were successful.  How many were unsuccessful. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 74
  • 75. Some General Issues Associated with Testing  Regression testing  Regression testing is the practice of running an old test suite after each change to the system or after each bug fix to ensure that no new bug has been introduced due to the change or the bug fix.  Whenever a software is changed to either fix a bug, or enhance or remove a feature, regression testing is carried out. 30-08-2023 DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE DEPARTMENT 75