• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Software Testing Techniques
 

Software Testing Techniques

on

  • 10,198 views

Learn about Software Testing Techniques

Learn about Software Testing Techniques

Statistics

Views

Total Views
10,198
Views on SlideShare
10,106
Embed Views
92

Actions

Likes
16
Downloads
0
Comments
3

3 Embeds 92

http://www.slideshare.net 68
http://askqtp.blogspot.com 23
http://www.brijj.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • it is really a nice effort about software testing techniques. Well done Bill

    Its all about SQA http://s-qa.blogspot.com
    Are you sure you want to
    Your message goes here
    Processing…
  • Bill, Very nice presentation. You cover a lot of grounds in very few slides. Naturally, it is not possible to cover every important test design techniques in 18 slides. One topic in particular that has been proven to double tester productivity is combinationatorial testing (including pairwise, n-wise, and orthogonal array-based techniques). This approach has consistently been proven to be extremely effective but even most Fortune 100 companies do not use it regularly. To find out more about this approach (which is complementary to each of the techniques you describe), please see: ----- 1) Slides from a presentation I gave last week to a local group of testers: http://www.slideshare.net/JustinHunter/efficient-and-effective-test-design ----- 2) An article I co-authored that cites 10 projects that measured what happened to tester productivity when they implemented this approach. Productivity increased by 2.4X): http://csrc.nist.gov/groups/SNS/acts/documents/kuhn-kacker-lei-hunter09.pdf ----- 3) Additional articles about combinatorial testing: http://www.combinatorialtesting.com/clear-introductions-1 ----- 4) A tool my company has created to generate efficient sets of test cases. Specifically, users identify ’what’ they want to test for, hit a button, and our Hexawise test case generator will tell you what to test in what combination in each test case in order to achieve maximum coverage in the fewest possible number of tests: http://www.hexawise.com/users/new


    Thanks,

    - Justin www.hexawise.com
    Are you sure you want to
    Your message goes here
    Processing…
  • Really nice presentation. Good and pricise.. Thank u. Regards, Raja. -Software Testing www.macrotesting.com
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Software Testing Techniques Software Testing Techniques Presentation Transcript

    • Software Testing Techniques Bill Bond 4/17/03
    • Overview
      • This week - examine detailed testing techniques (technology)
      • Next week - discuss strategies that can be used to apply techniques (framework)
    • Objectives
      • Testing - executing a program with the intent of finding an error
      • Good test case - high probability of finding an as-yet undiscovered error
      • Successful test - uncovers an as-yet undiscovered error
      • A destructive process
    • Two ways
      • White box - Knowing internal working, verify operation of all the pieces, all the paths, early stages of testing
      • Black box - Knowing function desired, verify that function is fully operational, late stages of testing
    • Limitations
      • Testing can not prove the absence of defects only that software defects are present
      • It is impossible to exercise “all” combinations
        • Even small programs would take years
    • White Box Testing
      • Derive test cases to
        • Exercise all independent paths in module all least once
        • Exercise all logical decisions on true and false sides
        • Execute loops on boundaries and within operational bounds
        • Exercise internal data structures
    • Black Box Testing
      • Focus on functionality and interface
        • Incorrect, missing functions
        • Interface errors
        • Errors in data structures / external DB access
        • Performance errors
        • Initialization / termination errors
    • Basis Path Testing
      • Determine complexity
      • Test each execution path (execute every statement once)
      • Flow graph
        • Nodes - one or more procedural statements
        • Arcs - (edges) - flow of control (flow chart arrows)
        • Edges must terminate at node (even if null)
    • Graphs Sequence If While Until Case
    • More Definitions
      • Region - Area bounded by edges and nodes (area outside “all” regions is also counted as a region)
      • Predicate node - node that contains a condition
    • Special Case Separate node created for each condition in “ if a or b then x else y” a b x x y
    • Cyclomatic Complexity
      • Provides a quantitative measure of logical complexity
      • Defines number of independent paths in basis set ( upper bound on number of tests )
      • Independent path - introduces a new set of processing statements or new condition (moves along a new edge)
      • Basis set - set of independent paths: all statements executed, all conditions tested
    • Cyclomatic Complexity
      • V(G) = number of regions
      • V(G) = edges - nodes + 2
      • V(G) = predicate nodes + 1
    • Deriving Test Cases
      • Use design or code - draw flow graph
      • Determine cyclometric complexity
      • Determine basis set of paths
      • Prepare test cases to force execution of each path
    • How Many Test Cases?
    • How Many Test Cases?
    • Equivalence Partitioning
      • Divide input domain into classes of data
      • Select test that represents class of data
      • Uncover a class of errors
      • Valid / Invalid states
        • Range
        • Specific value
        • Set
        • Boolean
    • Boundary Value Analysis
      • Errors occur at class boundaries
      • Concentrate on boundaries
        • Range (a, b) - a, b, above, below
        • Set - min, max, above, below
        • Exercise data structures at boundary - example array of 100 elements