WHITE BOX TESTING
INTRODUCTION
SOFTWARE TESTING
• SOFTWARE TESTING IS THE PROCESS OF ANALYZING A SOFTWARE ITEM TO
DETECT THE DIFFERENCES BETWEEN EXISTING AND REQUIRED CONDITIONS
(THAT IS, BUGS) AND TO EVALUATE THE FEATURES OF THE SOFTWARE ITEM.
• TESTING: A PROCESS OF EXECUTING SOFTWARE WITH THE INTENT OF FINDING
ERRORS OR DEFECT AND VERIFY THAT SOFTWARE MEETS ITS REQUIREMENTS AS
PERCEIVED BY THE USER.
• GOOD TESTING: A HIGH PROBABILITY OF FINDING AS-YET-UNDISCOVERED
ERRORS
• SUCCESSFUL TESTING: DISCOVERS UNKNOWN ERRORS
WHITE BOX TESTING
• TESTING BASED ON AN ANALYSIS OF THE INTERNAL STRUCTURE OF THE COMPONENT
OR SYSTEM.
• WHITE-BOX/STRUCTURE-BASED MEASURES AND ITS RELATED DESIGN TECHNIQUES ARE
DESCRIBED IN BS7925-2 STANDARD.
• A SOFTWARE TESTING TECHNIQUE WHEREBY EXPLICIT KNOWLEDGE OF THE INTERNAL
WORKINGS OF THE ITEM BEING TESTED ARE USED TO SELECT THE TEST DATA.
• WHITE BOX TESTING IS BASED ON SPECIFIC KNOWLEDGE OF THE SOURCE CODE TO
DEFINE THE TEST CASES AND TO EXAMINE OUTPUTS.
• E.G., WRITE TESTS TO “COVER” INTERNAL PATHS
• INTERNAL STRUCTURE IS KNOWN TO THE TESTER
WHITE BOX TESTING
• WHITE BOX TESTING CAN BE APPLIED AT THESE KIND OF TESTING.
• UNIT TESTING
• MODULE TESTING
• SYSTEM TESTING
Statement Coverage
Branch Coverage
Path Coverage
Conditional
Coverage
WHITE BOX TECHNIQUESCODE COVERAGE IS A MEASURE WHICH DESCRIBES THE DEGREE OF WHICH THE
SOURCE CODE OF THE PROGRAM HAS BEEN TESTED.
IT IS ONE FORM OF WHITE BOX TESTING WHICH FINDS THE AREAS OF THE
PROGRAM NOT EXERCISED BY A SET OF TEST CASES. IT ALSO CREATES SOME
TEST CASES TO INCREASE COVERAGE AND DETERMINING A QUANTITATIVE
MEASURE OF CODE COVERAGE.
IN MOST CASES, CODE COVERAGE SYSTEM GATHERS INFORMATION ABOUT THE
RUNNING PROGRAM. IT ALSO COMBINES THAT WITH SOURCE CODE
INFORMATION TO GENERATE A REPORT ABOUT THE TEST SUITE'S CODE
COVERAGE.
TYPES;
• STATEMENT COVERAGE TESTING
• PATH COVERAGE TESTING
• CONDITION COVERAGE TESTING
• MULTIPLE CONDITION TESTING
STATEMENT COVERAGE:
• THE PERCENTAGE OF EXECUTABLE STATEMENTS THAT HAVE BEEN EXERCISED
BY A TEST SUITE.
• IN A PROGRAMMING LANGUAGE, A STATEMENT IS NOTHING BUT THE LINE OF
CODE OR INSTRUCTION FOR THE COMPUTER TO UNDERSTAND AND ACT
ACCORDINGLY.
• STATEMENT COVERAGE IS A WHITE BOX TEST DESIGN TECHNIQUE WHICH
INVOLVES EXECUTION OF ALL THE EXECUTABLE STATEMENTS IN THE SOURCE
CODE AT LEAST ONCE. IT IS USED TO CALCULATE AND MEASURE THE NUMBER
OF STATEMENTS IN THE SOURCE CODE WHICH CAN BE EXECUTED GIVEN THE
REQUIREMENTS.
• STATEMENT COVERAGE = NUMBER OF STATEMENTS EXERCISED / TOTAL
NUMBER OF STATEMENTS * 100%
STATEMENT COVERAGE:
1A-2C-3D-E-4G-5H = 1
TOTAL STATEMENTS = 5
COVERED STATEMENTS = 3
STATEMENT COVERAGE =
(3/5)*100
60% OF STATEMENT
COVERAGE
BRANCH COVERAGE
• IN THE BRANCH COVERAGE, EVERY OUTCOME FROM A CODE MODULE IS TESTED. FOR
EXAMPLE, IF THE OUTCOMES ARE BINARY, YOU NEED TO TEST BOTH TRUE AND FALSE
OUTCOMES.
• “BRANCH” IN A PROGRAMMING LANGUAGE IS LIKE THE “IF STATEMENTS”. AN IF
STATEMENT HAS TWO BRANCHES: TRUE AND FALSE.
• IT HELPS YOU TO ENSURE THAT EVERY POSSIBLE BRANCH FROM EACH DECISION
CONDITION IS EXECUTED AT LEAST A SINGLE TIME.
• BY USING BRANCH COVERAGE METHOD, YOU CAN ALSO MEASURE THE FRACTION OF
INDEPENDENT CODE SEGMENTS. IT ALSO HELPS YOU TO FIND OUT WHICH IS SECTIONS
OF CODE DON'T HAVE ANY BRANCHES.
• THE FORMULA TO CALCULATE BRANCH COVERAGE:
BRANCH COVERAGE = 2
1A-2C-3D-E-4G-5H
1A-2B-E-4F
TOTAL BRANCHES= 4
COVERED BRANCHES=2
CALCULATE THE
BRANCH/DECISION COVERAGE =
(2/4)*100
YOUR TEST CASE, THEREFORE,
HAS 50% OF STATEMENT
COVERAGE
PATH COVERAGE:
• PATH COVERAGE TESTS ALL THE PATHS OF THE PROGRAM. THIS IS A
COMPREHENSIVE TECHNIQUE WHICH ENSURES THAT ALL THE PATHS OF THE
PROGRAM ARE TRAVERSED AT LEAST ONCE.
• PATH COVERAGE IS EVEN MORE POWERFUL THAN BRANCH COVERAGE. THIS
TECHNIQUE IS USEFUL FOR TESTING THE COMPLEX PROGRAMS.
PATHS THAT YOU CAN TAKE TO TRAVEL
IN THE FLOW CHART FROM THE START TO
THE END.
YOU CAN COVER ALL THE PATHS IN THE
FLOWCHART BY WRITING 4 TEST CASES
THAT FOLLOW THE FOLLOWING FOUR
ROUTES
1A-2B-E-4F
1A-2B-E-4G-5H
1A-2C-3D-E-4G-5H
1A-2C-3D-E-4F
PATH COVERAGE = 4
THERE ARE TOTAL OF 4 PATHS IN YOUR
FLOWCHART
YOU COVER ONLY 1 PATH
CALCULATE THE PATH COVERAGE =
(1/4)*100
THEREFORE IT HAS 25% OF PATH
CONDITION COVERAGE:
• IN THIS WHITE BOX TESTING TECHNIQUE TRY TO COVER 100% CONDITION
COVERAGE OF THE CODE, IT MEANS WHILE TESTING THE EVERY POSSIBLE
CONDITIONS IN THE CODE IS EXECUTED AT LEAST ONCE.
• CONDITIONAL COVERAGE OR EXPRESSION COVERAGE WILL REVEAL HOW
THE VARIABLES OR SUBEXPRESSIONS IN THE CONDITIONAL STATEMENT
ARE EVALUATED. IN THIS COVERAGE EXPRESSIONS WITH LOGICAL
OPERANDS ARE ONLY CONSIDERED.
• FOR EXAMPLE, IF AN EXPRESSION HAS BOOLEAN OPERATIONS LIKE AND,
OR, XOR, WHICH INDICATED TOTAL POSSIBILITIES.
FOR THE ABOVE EXPRESSION, WE HAVE 4 POSSIBLE COMBINATIONS
• TT
• FF
• TF
• FT
CONSIDER THE FOLLOWING INPUT
X=3
Y=4
(x<y) TRUE Condition
Coverage is ¼ =
25%
A=3
B=4
(a>b) FALSE
ADVANTAGES
• IT HELPS IN OPTIMIZING THE CODE.
• EXTRA LINES OF CODE CAN BE
REMOVED.
• DUE TO THE TESTER'S KNOWLEDGE
ABOUT THE CODE, MAXIMUM
COVERAGE IS ATTAINED DURING
TEST SCENARIO WRITING.
• CODE OPTIMIZATION BY FINDING
HIDDEN ERRORS.
• WHITE BOX TESTS CASES CAN BE
EASILY AUTOMATED.
• TESTING IS MORE THOROUGH AS ALL
CODE PATHS ARE USUALLY
COVERED.
• TESTING CAN START EARLY IN SDLC
DISADVANTAGES
• COSTS EXPENSIVE METHOD OF TESTING.
• IT IS DIFFICULT TO MAINTAIN WHITE BOX
TESTING AS THE USE OF SPECIALIZED
TOOLS LIKE CODE ANALYZERS AND
DEBUGGING TOOLS ARE REQUIRED.
WHITE BOX TESTING CAN BE QUITE
COMPLEX AND EXPENSIVE.
• DEVELOPERS WHO USUALLY EXECUTE
WHITE BOX TEST CASES DETEST IT. THE
WHITE BOX TESTING BY DEVELOPERS IS
NOT DETAILED CAN LEAD TO
PRODUCTION ERRORS.
• WHITE BOX TESTING REQUIRES
PROFESSIONAL RESOURCES, WITH A
DETAILED UNDERSTANDING OF
PROGRAMMING AND IMPLEMENTATION.
• WHITE-BOX TESTING IS TIME-
THANK YOU!

White Box Testing

  • 1.
  • 2.
    SOFTWARE TESTING • SOFTWARETESTING IS THE PROCESS OF ANALYZING A SOFTWARE ITEM TO DETECT THE DIFFERENCES BETWEEN EXISTING AND REQUIRED CONDITIONS (THAT IS, BUGS) AND TO EVALUATE THE FEATURES OF THE SOFTWARE ITEM. • TESTING: A PROCESS OF EXECUTING SOFTWARE WITH THE INTENT OF FINDING ERRORS OR DEFECT AND VERIFY THAT SOFTWARE MEETS ITS REQUIREMENTS AS PERCEIVED BY THE USER. • GOOD TESTING: A HIGH PROBABILITY OF FINDING AS-YET-UNDISCOVERED ERRORS • SUCCESSFUL TESTING: DISCOVERS UNKNOWN ERRORS
  • 4.
    WHITE BOX TESTING •TESTING BASED ON AN ANALYSIS OF THE INTERNAL STRUCTURE OF THE COMPONENT OR SYSTEM. • WHITE-BOX/STRUCTURE-BASED MEASURES AND ITS RELATED DESIGN TECHNIQUES ARE DESCRIBED IN BS7925-2 STANDARD. • A SOFTWARE TESTING TECHNIQUE WHEREBY EXPLICIT KNOWLEDGE OF THE INTERNAL WORKINGS OF THE ITEM BEING TESTED ARE USED TO SELECT THE TEST DATA. • WHITE BOX TESTING IS BASED ON SPECIFIC KNOWLEDGE OF THE SOURCE CODE TO DEFINE THE TEST CASES AND TO EXAMINE OUTPUTS. • E.G., WRITE TESTS TO “COVER” INTERNAL PATHS • INTERNAL STRUCTURE IS KNOWN TO THE TESTER
  • 5.
    WHITE BOX TESTING •WHITE BOX TESTING CAN BE APPLIED AT THESE KIND OF TESTING. • UNIT TESTING • MODULE TESTING • SYSTEM TESTING
  • 6.
    Statement Coverage Branch Coverage PathCoverage Conditional Coverage
  • 7.
    WHITE BOX TECHNIQUESCODECOVERAGE IS A MEASURE WHICH DESCRIBES THE DEGREE OF WHICH THE SOURCE CODE OF THE PROGRAM HAS BEEN TESTED. IT IS ONE FORM OF WHITE BOX TESTING WHICH FINDS THE AREAS OF THE PROGRAM NOT EXERCISED BY A SET OF TEST CASES. IT ALSO CREATES SOME TEST CASES TO INCREASE COVERAGE AND DETERMINING A QUANTITATIVE MEASURE OF CODE COVERAGE. IN MOST CASES, CODE COVERAGE SYSTEM GATHERS INFORMATION ABOUT THE RUNNING PROGRAM. IT ALSO COMBINES THAT WITH SOURCE CODE INFORMATION TO GENERATE A REPORT ABOUT THE TEST SUITE'S CODE COVERAGE. TYPES; • STATEMENT COVERAGE TESTING • PATH COVERAGE TESTING • CONDITION COVERAGE TESTING • MULTIPLE CONDITION TESTING
  • 8.
    STATEMENT COVERAGE: • THEPERCENTAGE OF EXECUTABLE STATEMENTS THAT HAVE BEEN EXERCISED BY A TEST SUITE. • IN A PROGRAMMING LANGUAGE, A STATEMENT IS NOTHING BUT THE LINE OF CODE OR INSTRUCTION FOR THE COMPUTER TO UNDERSTAND AND ACT ACCORDINGLY. • STATEMENT COVERAGE IS A WHITE BOX TEST DESIGN TECHNIQUE WHICH INVOLVES EXECUTION OF ALL THE EXECUTABLE STATEMENTS IN THE SOURCE CODE AT LEAST ONCE. IT IS USED TO CALCULATE AND MEASURE THE NUMBER OF STATEMENTS IN THE SOURCE CODE WHICH CAN BE EXECUTED GIVEN THE REQUIREMENTS. • STATEMENT COVERAGE = NUMBER OF STATEMENTS EXERCISED / TOTAL NUMBER OF STATEMENTS * 100%
  • 9.
    STATEMENT COVERAGE: 1A-2C-3D-E-4G-5H =1 TOTAL STATEMENTS = 5 COVERED STATEMENTS = 3 STATEMENT COVERAGE = (3/5)*100 60% OF STATEMENT COVERAGE
  • 10.
    BRANCH COVERAGE • INTHE BRANCH COVERAGE, EVERY OUTCOME FROM A CODE MODULE IS TESTED. FOR EXAMPLE, IF THE OUTCOMES ARE BINARY, YOU NEED TO TEST BOTH TRUE AND FALSE OUTCOMES. • “BRANCH” IN A PROGRAMMING LANGUAGE IS LIKE THE “IF STATEMENTS”. AN IF STATEMENT HAS TWO BRANCHES: TRUE AND FALSE. • IT HELPS YOU TO ENSURE THAT EVERY POSSIBLE BRANCH FROM EACH DECISION CONDITION IS EXECUTED AT LEAST A SINGLE TIME. • BY USING BRANCH COVERAGE METHOD, YOU CAN ALSO MEASURE THE FRACTION OF INDEPENDENT CODE SEGMENTS. IT ALSO HELPS YOU TO FIND OUT WHICH IS SECTIONS OF CODE DON'T HAVE ANY BRANCHES. • THE FORMULA TO CALCULATE BRANCH COVERAGE:
  • 11.
    BRANCH COVERAGE =2 1A-2C-3D-E-4G-5H 1A-2B-E-4F TOTAL BRANCHES= 4 COVERED BRANCHES=2 CALCULATE THE BRANCH/DECISION COVERAGE = (2/4)*100 YOUR TEST CASE, THEREFORE, HAS 50% OF STATEMENT COVERAGE
  • 12.
    PATH COVERAGE: • PATHCOVERAGE TESTS ALL THE PATHS OF THE PROGRAM. THIS IS A COMPREHENSIVE TECHNIQUE WHICH ENSURES THAT ALL THE PATHS OF THE PROGRAM ARE TRAVERSED AT LEAST ONCE. • PATH COVERAGE IS EVEN MORE POWERFUL THAN BRANCH COVERAGE. THIS TECHNIQUE IS USEFUL FOR TESTING THE COMPLEX PROGRAMS.
  • 13.
    PATHS THAT YOUCAN TAKE TO TRAVEL IN THE FLOW CHART FROM THE START TO THE END. YOU CAN COVER ALL THE PATHS IN THE FLOWCHART BY WRITING 4 TEST CASES THAT FOLLOW THE FOLLOWING FOUR ROUTES 1A-2B-E-4F 1A-2B-E-4G-5H 1A-2C-3D-E-4G-5H 1A-2C-3D-E-4F PATH COVERAGE = 4 THERE ARE TOTAL OF 4 PATHS IN YOUR FLOWCHART YOU COVER ONLY 1 PATH CALCULATE THE PATH COVERAGE = (1/4)*100 THEREFORE IT HAS 25% OF PATH
  • 14.
    CONDITION COVERAGE: • INTHIS WHITE BOX TESTING TECHNIQUE TRY TO COVER 100% CONDITION COVERAGE OF THE CODE, IT MEANS WHILE TESTING THE EVERY POSSIBLE CONDITIONS IN THE CODE IS EXECUTED AT LEAST ONCE. • CONDITIONAL COVERAGE OR EXPRESSION COVERAGE WILL REVEAL HOW THE VARIABLES OR SUBEXPRESSIONS IN THE CONDITIONAL STATEMENT ARE EVALUATED. IN THIS COVERAGE EXPRESSIONS WITH LOGICAL OPERANDS ARE ONLY CONSIDERED. • FOR EXAMPLE, IF AN EXPRESSION HAS BOOLEAN OPERATIONS LIKE AND, OR, XOR, WHICH INDICATED TOTAL POSSIBILITIES.
  • 15.
    FOR THE ABOVEEXPRESSION, WE HAVE 4 POSSIBLE COMBINATIONS • TT • FF • TF • FT CONSIDER THE FOLLOWING INPUT X=3 Y=4 (x<y) TRUE Condition Coverage is ¼ = 25% A=3 B=4 (a>b) FALSE
  • 16.
    ADVANTAGES • IT HELPSIN OPTIMIZING THE CODE. • EXTRA LINES OF CODE CAN BE REMOVED. • DUE TO THE TESTER'S KNOWLEDGE ABOUT THE CODE, MAXIMUM COVERAGE IS ATTAINED DURING TEST SCENARIO WRITING. • CODE OPTIMIZATION BY FINDING HIDDEN ERRORS. • WHITE BOX TESTS CASES CAN BE EASILY AUTOMATED. • TESTING IS MORE THOROUGH AS ALL CODE PATHS ARE USUALLY COVERED. • TESTING CAN START EARLY IN SDLC DISADVANTAGES • COSTS EXPENSIVE METHOD OF TESTING. • IT IS DIFFICULT TO MAINTAIN WHITE BOX TESTING AS THE USE OF SPECIALIZED TOOLS LIKE CODE ANALYZERS AND DEBUGGING TOOLS ARE REQUIRED. WHITE BOX TESTING CAN BE QUITE COMPLEX AND EXPENSIVE. • DEVELOPERS WHO USUALLY EXECUTE WHITE BOX TEST CASES DETEST IT. THE WHITE BOX TESTING BY DEVELOPERS IS NOT DETAILED CAN LEAD TO PRODUCTION ERRORS. • WHITE BOX TESTING REQUIRES PROFESSIONAL RESOURCES, WITH A DETAILED UNDERSTANDING OF PROGRAMMING AND IMPLEMENTATION. • WHITE-BOX TESTING IS TIME-
  • 17.