0% found this document useful (0 votes)
9 views17 pages

Unit 5 SE

The document discusses the importance of debugging in program development, outlining various debugging approaches such as brute force, backtracking, and cause elimination. It also covers the integration of testing, including alpha and beta testing, and various types of performance testing like stress, volume, and compatibility testing. Additionally, it emphasizes the need for regression testing and documentation testing to ensure software reliability and functionality.

Uploaded by

manodhar8888
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views17 pages

Unit 5 SE

The document discusses the importance of debugging in program development, outlining various debugging approaches such as brute force, backtracking, and cause elimination. It also covers the integration of testing, including alpha and beta testing, and various types of performance testing like stress, volume, and compatibility testing. Additionally, it emphasizes the need for regression testing and documentation testing to ensure software reliability and functionality.

Uploaded by

manodhar8888
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

By

SATYANANDARAM N
 Why debugging is needed
 Program analysis tool
 Integrating testing
 Identifying errors in a program code and then
fix them up are known as debugging
 Approaches for debugging:
▪ Brute Force Method:
▪ This is the least efficient common method of debugging
▪ The program is loaded with print statements to print the
intermediate values which help to find the error
statement
 Approaches for debugging:
▪ Backtracking:
▪ Beginning from the statement at which an error
symptom has been observed
▪ The source code is traced backwards until the error is
discovered
▪ Cause Elimination method:
▪ Based on the list of causes which have contributed the
error symptom is developed
▪ we have to prepare test case for error and apply it to
eliminate the error
 Debugging is often carried out by
programmers
 It requires a deep understanding of the
program design
 Partial understanding of the system design
and implementation may require more effort
to debug
 After every round of error-fixing, regression
testing must performed
 An automated tool that takes code as input
and produces reports such as its size,
complexity and programming standards
 Two broad categories
▪ Static Analysis tools
▪ compilers
▪ Dynamic Analysis tools
▪ Testing with full test suite
▪ Post execution analysis and reports
 Involves integrating components to create a
system or sub-system.
 May involve testing an incremental procedure
to be delivered to the customer.
 Two phases:
▪ Integration testing - the testing team can have
the access over source code. The system
components will tested and integrated
accordingly.
▪ Release testing - the test team test the complete
system to be delivered as a black-box.
 Involves with building a system from its
components and testing it to fix the problems
during the components interactions.
 Top-down integration
▪ Develop the skeleton of the system and populate
it with components.
 Bottom-up integration
▪ Integrate infrastructure components then add
functional components.
 To simplify the error localisation, systems
should be integrated as incrementally.
A T1

T1
A
T1 T2
A B
T2

T2 B T3

T3
B C
T3 T4
C
T4

D T5

Test sequence 1 Test sequence 2 Test sequence 3


 Alpha Testing (Verification testing)
▪ real world operating environment
▪ simulated data, in a lab setting
▪ systems professionals present
▪ observers, record errors, usage problems, etc.
 Beta Testing (Validation Testing)
▪ live environment, using real data
▪ no systems professional present
▪ performance (throughout, response-time)
▪ peak workload performance, human factors test,
methods and procedures, backup and recovery - audit
 It is to check the performance of Non-Functional
requirements
 several types of performance testing can be
done
▪ Stress testing:
▪ it evaluates the system performance
▪ By providing the abnormal and even illegal input conditions
to stress the capabilities of the software
▪ Input data volume, input data rate, processing time,
utilization of memory are tested
▪ Ex: an operating system is supposed to support 15 multi-
programmed jobs, the system is stressed by attempting to
run 15 or more jobs simultaneously
 Volume Testing:
▪ To check whether the data structures (arrays, queues,
stacks, etc..) have been designed to successfully
extraordinary situations
▪ Ex: a compiler might be tested to check whether the
symbol table overflows when a very large program is
compiled
 Configuration Testing:
▪ It analyze the system behavior in various hardware
and software configurations specified in the
requirements
 Compatibility Testing:
▪ This testing is required when the system is
integrated with other types of systems
 Regression Testing:
▪ This testing is required when the system has
upgraded with an existing system to fix some
bugs or enhance the functionality and
performance
 Recovery Testing:
▪ It checks the response of the system in case of faults,
or loss of power, devices, services, data etc..
 Maintenance Testing:
▪ It is verified that the equipment exist and they
perform properly
 Documentation Testing:
▪ It is checked that the required user manuals,
maintenance manuals, and technical manuals exist
and are consistent
 It focuses on internal logic of a program ( testing in
small
 It performed early in the testing process
 Based on the control structures of a method we have
to derive the test cases
▪ Ensures that all independent paths within a module have
been executed at least once
▪ Executes all logical decisions on their true and false side
▪ Executes all loops at their boundaries and within their
operational bounds
▪ Executes internal data structures to ensure their validity
 It focuses on functional requirements of
software and it enables the software engineer
to derive sets of input conditions for all
functional requirements
 It is not the alternative approach to white box
technique, it discovers a different class of
errors
 It applied during the later stages of testing
 It attempts to find errors in following
categories.
▪ Incorrect or missing functions
▪ Interface errors
▪ Errors in data structures or external database
access
▪ Initialization and termination errors
 It demonstrate that a function properly
accepting the input and producing the output
correctly.

You might also like