$30 off During Our Annual Pro Sale. View Details »

コードカバレッジを知ろう

imtnd
December 16, 2018

 コードカバレッジを知ろう

コードカバレッジを知ろう

WACATE 2018 Winter
https://wacate.jp/workshops/2018winter/program/#session6

imtnd

December 16, 2018
Tweet

More Decks by imtnd

Other Decks in Programming

Transcript



  1. WACATE 2018 WINTER
    2018/12/16

    View Slide


  2. • .@imtnd)
    • %+)!"
    ( ($) /
    • #,-*(
    • WACATE

    • Naite$&'+

    View Slide

  3. &'#.1"2/
    •-+')(%) !2* ,0'$




    • -+')(%)

    View Slide






  4. View Slide



  5. View Slide

  6. A746526
    “/E=F8E6526(A746526?1@FC52
    6&%526)% 526
    #3:6*+)?1@FC,;1+-6
    -B2#"$ ($('
    526!'”
    ISTQB526

    Foundation Level 0B92 Version 2011.J02
    http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf

    View Slide

  7. !.0,:<!94021-2!
    • 94021-2"
    • !"#*;-!
    %(8/03?
    (<602>?&')2602> $8<5
    ?&%+=37=-!1-2%

    View Slide



  8. Extreme programming
    https://en.wikipedia.org/wiki/Extreme_programming

    View Slide



  9. TestPyramid
    https://martinfowler.com/bliki/TestPyramid.html

    View Slide

  10. ?:79859(
    • (859A=@(859"&(859

    ,+''-
    • ?:79859%'#!859)(859A=
    @%*$1;C-.%)'
    • (859%) -& 3C5
    • 60>B24'859
    etc

    View Slide

  11. =;79869-
    • ,8692&10%*$
    +"
    •8694?:-$+// 869$(
    0%*$!0
    → =;79869.,')'/#%*$"
    → 2(0,.4?:3<>752(0 $!0

    View Slide

  12. +),"
    -2*'/*')+),
    ()+0"% !#+),%
    $
    6
    7
    .3&,/*')+),
    ()+0"#+),% $
    6)+5,14,+),+), 7

    View Slide















  13. View Slide

  14. $
    !%#"&#
    !%#
    (



    0 ≦ ≦ 255
    '
    =-1,0,255,256,a etc
    "&#

    View Slide

  15. O^VMW\SPJ";H8?BEHZ[SU
    • TQU;H!J BJH8?>3Y]PLKU?:
    =C(:<-J%;H8?6>7H
    • TQU9I=4A4.J%,;H8?6')5F%,;
    H8?6>7H
    • Y]PLNUC C-?:=@C&C+2J:=4HC56

    H
    • 6:3TQU:7H
    • /0BTQU;HEGD3A41$>#ATQU6
    *

    View Slide



  16. View Slide

  17. !/()-%"
    •$/#!/(*./ ,/'
    •&/, +*,
    • ,/'
    ,/'

    View Slide








  18. •(MC/DC)

    View Slide





  19. statement coverage =


    × 100

    View Slide

  20. "(#%'#$&!




    • ( )
    " #
    100%
    False
    True

    View Slide






  21. 5

    View Slide





  22. No
    Yes
    age isStudent
    1 19 True 1000


    View Slide

  23. !!

    ( TRUE OR
    FALSE) "!"
    condition coverage =

    " × "
    × 100

    View Slide







  24. • condition1TrueFalse
    condition2TrueFalse

    100%
    False
    True

    View Slide









  25. condition1 condition2
    1 True False False
    2 False True False
    False
    True

    View Slide

  26. -91*.59+270/
    and(&&)
    #
    38,64"&
    $False
    ' )!
    %'()
    ← condition2True$
    "$(!
    %'
    condition1 condition2
    1 True False False
    2 False : False

    View Slide

  27. condition1 condition2
    1 True False False
    2 False ( False
    '#' %
    !&$"



    condition1 condition2
    1 True False False
    2 False ( False
    3 True True True

    View Slide





  28. 10

    View Slide





  29. No
    Yes
    age isStudent
    1 19 False 1200
    2 20 True 1200
    (3 19 True 1000)


    View Slide

  30. !

    "!"

    decision coverage =


    "
    × 100

    View Slide

  31. ' "#*,!)+%#




    • (-

    .&$(
    100%
    False
    True

    View Slide

  32. &(+$*
    •!#
    %,+!,
    •"'+$* &(+$*
    ,)
    branch coverage =

    #,)
    × 100

    View Slide

  33. %&( $'!




    • ( )
    *"#
    100%
    False
    True

    View Slide





  34. (
    )
    10

    View Slide





  35. No
    Yes
    age isStudent
    1 19 True 1000
    2 20 False 1200


    View Slide

  36. 9BF?;(MC/DC) H I
    • =GC@6:D@69E*>CA785(.021
    • !and"/!or", #4

    • 9BF?;-, ,@)100%)*1
    • X$+*1)$31',@• X$+*1)$31',@• (J)K4&%@

    View Slide

  37. !" (MC/DC) # $
    A B C

    1 T T T T
    2 T T F F
    3 T F T T
    4 T F F F
    5 F T T T
    6 F T F F
    7 F F T F
    8 F F F F
    & (A or B) and C
    ABC
    A(T) T--
    A(F) F--
    B(T) -T-
    B(F) -F-
    C(T) --T
    C(F) --F
    ↑ %


    View Slide

  38. (MC/DC)
    A B C

    1 T T T T
    2 T T F F
    3 T F T T
    4 T F F F
    5 F T T T
    6 F T F F
    7 F F T F
    8 F F F F
    (A or B) and C
    ABC
    A(T) T--
    A(F) F--
    B(T) -T-
    B(F) -F-
    C(T) --T
    C(F) --F
    ABC(

    A(T) TFT(T)
    A(F) FFT(F)
    B(T) FTT(T)
    B(F) FFT(F)
    C(T) TFT(T)
    C(F) TFF(F)
    A(T)C(T) A(F)B(F) ↑

    View Slide

  39. (MC/DC) !"
    A B C

    1 T T T T
    2 T T F F
    3 T F T T
    4 T F F F
    5 F T T T
    6 F T F F
    7 F F T F
    8 F F F F
    # (A or B) and C
    A B C

    3 T F T T
    4 T F F F
    5 F T T T
    7 F F T F
    2^3

    (N+1)

    View Slide

  40. #, '
    100%)&?
    •&%' *"(3>90 /()
    $/
    •<:687580 /(&3>9,/
    •;=4128'-!"%.0$ /(0
    +"$
    • ')7,80%.?

    View Slide


  41. •)3/(02,* 4 -+.)3/
    %
    •-+.)3/
    (02,*13.&
    "
    #'
    $ (02,*-+.
    !

    View Slide


  42. View Slide

  43. &!'
    • :6142/4%#(!
    • :6142/4$2/4,?5%,?5+7=1.)(!
    "$ 2/4($) (! (
    • ,?5+7=1.
    • /2?49>4+7=1.
    • ,>3*-;>+7=1.
    • 3*-.;>+7=1.
    • 8<>0+7=1.

    +7=1.(MC/DC)

    View Slide



  44. Python


    unittest

    Coverage.py

    View Slide


  45. • ,2.&'%-+.
    VERSION 2.3.J02
    HTTP://JSTQB.JP/DL/JSTQB-GLOSSARY.V2.3.J02.PDF
    • ISTQB-+.FOUNDATION LEVEL *41+
    VERSION 2011.J02
    HTTP://JSTQB.JP/DL/JSTQB-SYLLABUSFOUNDATION_VERSION2011.J02.PDF
    • ISTQB-+.ADVANCED LEVEL *41+
    -)0(6-+.%/5+.
    VERSION2012.J02
    HTTP://JSTQB.JP/DL/JSTQB-SYLLABUS.ADVANCED_TTA_VERSION2012.J02.PDF
    • MC/DC#$ ++3
    HTTPS://WWW.ZIPC.COM/CAL/WHITEPAPER/DL/03.PDF
    • ADVANCED SOFTWARE TESTING - VOL. 3, 2ND EDITION: GUIDE TO THE ISTQB ADVANCED CERTIFICATION AS
    AN ADVANCED TECHNICAL TEST ANALYST
    • !" -+.
    • ,2.&'%-+.

    View Slide