Exploring JUnit 4.
x
Targeted at: Entry Level Trainees
Session 1: Testing Fundamentals
© 2007, Cognizant Technology Solutions. All Rights Reserved.
The information contained herein is subject to change without notice.
C3: Protected
About the Author
Created By: B Sai Prasad, (105582)
Credential Sun Certified Java Programmer, Microsoft Certified
Information: Technology Specialist, PMI-certified Project Management
Professional
Version and JUnit/PPT/1110/1.0
Date:
2
Icons Used
Hands-on
Questions Tools Exercise
Coding Test Your
Reference
Standards Understanding
A Welcome
Try it Out Contacts
Break
3
Session 01: Testing Fundamentals
overview
Introduction:
» Testing is an integral part of the system
development function; testing starts with the
requirements, not the code
» Testing can only establish that the system does not
function properly under specific conditions
» Testing can never completely establish the
correctness of the system software
» In this chapter, associates would know the answers
of what is software testing and why it is important
4
Session 01- Testing Fundamentals:
Objective
Objective:
After completing this chapter, associates will be able to:
» Define the role of software testing
» Describe why faults should be found early
» Explain unit testing
» Know why unit testing alone is not important
» List the five flavors of software testing
5
Testing objectives
The objective of testing includes:
1. Testing is a process of executing a program with
the intent of finding an error
2. A good test case is one that has a high probability
of finding an undiscovered error
3. A successful test is one that uncovers an
undiscovered error
6
Testing in Development Cycle
CODE
TEST RUN
7
Finding faults early
It is commonly believed that, the earlier a
defect is found, the cheaper it is to fix
Require Architect Construc System Post
ments ure tion Test Release
Requirements 1x 3x 5-10x 10x 10-100x
Architecture - 1x 10x 15x 25-100x
Construction - - 1x 10x 10-25x
8
Unit Testing
A unit test examines the behavior of a distinct unit of
work
Unit of work is a task that is not directly dependent on
the completion of any other task
Unit tests should be fine grained, testing small numbers
of closely-related methods and classes
Unit tests focus on testing whether a method is
following the terms of its API+ contract
API+: Application Programming Interface - a formal
agreement between the caller and the called
9
Writing Unit Tests
Main Goal: To verify that the application works
and try to catch bugs early
Unit tests are more powerful than functional
testing because
» They allow greater test coverage
» They enable teamwork
» They prevent regression and limits the need for
debugging
» They give the courage to re-factor
» They improve the implementation design
» They serve as developer’s documentation
10
Unit testing
Why is unit testing alone not sufficient?
» What happens when different units of work are
combined into a workflow?
» Will the end result of the workflow meet what the
associates expect?
» How well will the application work when many people
are using it at once?
» Will the application meet everyone’s needs?
11
Five flavors of Software Testing
Five Flavors Definition:
Unit testing: It should examine
the behavior of a distinct unit of
work
Integration software testing: It
should examine the interaction
between components in their
target environment
Functional software testing: It
should test the application use
cases
Stress/load testing: It should test
Innermost software tests are the performance of the
narrowest in scope application
Outermost software tests get Acceptance testing: It should
ensure that the application has
more functional
met the customer’s goals
12
Allow time for questions from participants
13
Test Your Understanding
What are the key objectives of testing?
What is unit testing?
Why is unit testing alone not sufficient?
What are the five flavors of software testing?
14
Testing Fundamentals Session 1 :
Summary
Testing is an integral part of the system
development function; testing starts with the
requirements, not the code
Testing is a process of executing a program
with the intent of finding an error
A good test case is one that has a high
probability of finding an undiscovered error
A unit test examines the behavior of a distinct
unit of work
15
Testing Fundamentals Session 1 :
Summary (Contd..)
Unit testing alone is not sufficient as the
application needs to be examined for:
» Interaction between components
» Compliance with the software requirements
specification
» Performance
» Meeting the customer’s goals
16
Testing Fundamentals Session 1:
Source
Book:
» JUnit in Action by Vincent Massol; Ted Husted
Web:
» Wiki: http://en.wikipedia.org/wiki/Software_testing
Disclaimer: Parts of the content of this course is based on the materials available from the Web sites and
books listed above. The materials that can be accessed from linked sites are not maintained by
Cognizant Academy and we are not responsible for the contents thereof. All trademarks, service marks,
and trade names in this course are the marks of the respective owner(s).
17
You have completed
the Session 1
Testing Fundamentals
© 2007, Cognizant Technology Solutions. All Rights Reserved.
The information contained herein is subject to change without notice.