Genetic Algorithms and the Automatic Generation of Test Data

Embed Size (px)

Citation preview

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    1/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    2/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    3/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    4/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    5/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    6/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    7/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    8/13

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    9/13

    / * F i r s t E x a m p l e P r o g r a m * /

    # i n c l u d e < s t d i o . h >

    m a i n ( )

    {

    i n t x , y ;

    c h a r c ;

    / / R e a d 2 n u m b e r s a n d a c h a r a c t e r

    s c a n f ( " % d % d % c " , & x , & y , & c ) ;

    p r i n t f ( " % d % d % c \ n " , x , y , c ) ;

    i f ( x > = 0 & & x < 5 0 0 0 )

    {

    p r i n t f ( " O n e \ n " ) ;

    i f ( y > 1 0 0 0 0 & & y < 1 0 0 0 0 0 )

    {

    p r i n t f ( " T w o \ n " ) ;

    i f ( c > = ' a ' & & c < = ' z ' )

    {

    p r i n t f ( " T h r e e \ n " ) ;

    }

    }

    }

    }

    1 s t g e n e r a t i o n

    1 3 7 8 4 9 0 2 6 &

    4 2 6 8 4 8 9

    O n e

    2 8 7 1 1 7 0 6 6

    1 7 4 2 1 4 2 2 4 i

    2 3 0 2 6 2 2 1 7 0

    2 1 3 1 4 1 1 5 4 2 N

    1 7 7 0 8 0 0 1

    O n e

    1 4 2 3 1 1 1 5 3 8

    8 8 4 5 2 5 8 4 7 w

    1 0 8 5 0 4 1 4 7 5

    2 9 4 4 5 9 2 5 7

    2 1 0 6 9 3 1 1 1 8

    9 1 6 8 1 2 7 8 1

    1 6 3 9 4 1 1 9 9 2 #

    7 5 8 9 2 8 8 1 2 V

    1 8 0 3 5 2 4 7 4 2

    3 1 4 4 8 2 5 8 4 4 ,

    2 6 3 9 5 1 5 6 1 )

    2 9 5 1 7 2 1 0 4 2

    2 5 9 8 0 7 4 5 5

    3 1 3 7 5 1 6 7 1 9

    2 5 2 5 8 4 6 3 9

    2 3 2 4 6 2 3 9 0 7

    1 2 6 6 8 1 2 0 5 6 p

    3 0 6 9 2 9 6 2 3

    O n e

    T w o

    1 0 7 7 2 2 0 3 8 3

    8 2 9 7 7 2 8 4

    1 7 4 8 0 2 1 8 0 7 i

    1 2 7 2 1 2 1 9 8 9

    2 0 8 1 2 4 3 4 9 C

    2 n d g e n e r a t i o n

    3 0 6 9 2 9 6 2 3

    O n e

    T w o

    5 4 5 2 6 2 5 8 9 2 1 4 3 1

    1 7 7 0 9 0 2 6 &

    O n e

    1 3 7 8 4 8 0 0 1

    1 1 2 6 1 2 9 1 7 6 7

    6 7 3 7 2 7 7 8 8 0 0 1

    1 3 7 8 4 9 0 2 6 &

    1 6 3 4 4 1 0 0 5 0

    3 0 6 9 2 9 6 2 3 &

    O n e

    T w o

    2 6 8 4 4 9 2 4 0 8 3 9 6 6 1 3

    2 0 9 7 8 6 5 3 2 3 8 8 9 1 9

    3 5 8 3 7 2 9 6 2 3

    1 7 5 2 9 0 2 6 &

    O n e

    2 8 8 9 1 6 0 1 3 9 0 7 3

    1 7 7 0 8 0 0 1

    O n e

    9 6 8 0 1 1 0 7 4 &

    9 6 8 8 7 4 5 6 2 &

    6 1 2 3 7 1 4 5 1 4 2 2 3 9 2 7

    1 7 7 0 3 9 0 4

    O n e

    9

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    10/13

    1 9 4 4 9 1 0 6 1 8 1 5

    4 2 6 8 3 2 1

    O n e

    1 7 7 0 8 1 6 9

    O n e

    2 6 3 9 1 4 6 7 1 1 6 8 6 5

    1 7 7 0 1 6 7 8 5 2 1 7

    O n e

    4 2 6 8 4 8 9

    O n e

    3 0 6 9 2 9 6 2 3

    O n e

    T w o

    1 7 7 0 8 0 0 1

    O n e

    3 0 3 7 1 5 9 3 7

    O n e

    T w o

    1 7 7 0 2 9 6 2 3

    O n e

    T w o

    1 0 7 3 7 7 6 3 6 2 1 3 4 2 2 5 7 3 7

    G e n e r a t i o n s 3 , 4 a n d 5 d e l e t e d

    6 t h g e n e r a t i o n

    - 2 1 4 7 4 7 9 5 6 3 2 9 6 2 3

    3 0 6 9 2 9 6 2 3

    O n e

    T w o

    6 7 1 1 1 8 8 5 1 3 2 3 9

    5 2 7 3 5 9 1 3 4 2 4 6 8 3 9

    3 0 6 9 3 1 6 7 0 3 1

    O n e

    3 0 6 9 4 6 0 0 7

    O n e

    T w o

    - 1 4 0 9 2 8 3 0 7 5 2 9 6 2 3

    4 2 1 3 7 5 9 1 0 7 8 4 9 0 0 3 9

    1 5 7 5 6 7 7 2 9 6 2 3

    1 0 5 1 6 4 5 3 1 6 6 7

    - 2 1 4 7 4 8 0 5 7 9 9 5 1 5 9

    3 0 3 6 2 9 6 2 3

    O n e

    T w o

    3 0 6 5 2 9 6 2 3

    O n e

    T w o

    8 3 9 1 6 4 5 2 9 1 7 6 7

    8 0 5 3 0 9 4 3 7 2 9 6 2 3

    3 0 6 5 2 9 6 2 2

    O n e

    T w o

    - 2 1 4 7 4 8 0 5 7 9 2 9 6 2 3

    1 6 7 8 0 0 9 3 3 0 6 4 3

    2 5 5 7 4 2 2 3 8 9 5

    O n e

    3 0 6 9 5 3 9 1 2 8 7 9 1

    O n e

    8 9 8 2 5 2 5 5 3 7 1 6 2 6 7 9

    3 4 0 8 1 7 8 8 1 5 2 8 7

    5 2 7 1 9 7 8 4 0 1 8 4 7

    3 0 6 9 3 1 6 7 1

    O n e

    T w o

    1 0 7 3 7 4 4 7 3 3 6 7 1 3 8 4 8 7

    5 3 6 9 0 6 7 4 9 6 1 8 4 7

    3 0 4 0 9 0 1 0 9 5 3 6 9 0 0 5 3 5

    3 0 6 9 2 9 6 2 3

    O n e

    T w o

    3 0 6 1 5 3 6 9 0 0 5 3 5

    O n e

    3 0 0 5 9 5 1 5 9 i

    O n e

    T w o

    T h r e e

    F i n i s h e d w i t h 6 G e n e r a t i o n s

    1 0

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    11/13

    / * S e c o n d E x a m p l e * /

    # i n c l u d e < s t d i o . h >

    # i n c l u d e < s t d l i b . h >

    # i n c l u d e < s t r i n g . h >

    v o i d m e s s a g e ( v o i d )

    {

    }

    i n t m a i n ( )

    {

    F I L E * f p ;

    c h a r n a m e 4 ] ;

    i f ( ( f p = f o p e n ( " / v a r / t m p / d a t a . d a t " , " r " ) ) = = N U L L ) e x i t ( 1 ) ;

    r e a d ( f i l e n o ( f p ) , n a m e , 4 ) ;

    p r i n t f ( " % s \ n " , n a m e ) ;

    i f ( n a m e 0 ] = = ' M ' ) { ; }

    i f ( n a m e 1 ] = = ' a ' ) { ; }

    i f ( n a m e 2 ] = = ' r ' ) { ; }

    i f ( n a m e 3 ] = = ' c ' ) { ; }

    m e s s a g e ( ) ;

    }

    F i n i s h e d w i t h 2 5 G e n e r a t i o n s

    C o n t e n t s o f t e m p o r a r y p o p u l a t i o n :

    H ' r #

    h a O c

    ` O g

    H a #

    H _ c

    I A a

    I i O b

    H a s

    O k

    H a K

    H ` O c

    M i O c

    1 1

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    12/13

    7 A n a l y s i s a n d C o n c l u s i o n s

    W e h a v e p r e s e n t e d a n i n i t i a l e x p l o r a t i o n i n t o t h e p o s s i b i l i t i e s o f u s i n g G e n e t i c A l g o r i t h m s t o

    a u t o m a t i c a l l y g e n e r a t e t e s t d a t a a n d b u i l t a s y s t e m t o s u p p o r t t h i s p r o c e s s . T h e r e s u l t s o f

    t h e s y s t e m s o f a r a r e e n c o u r a g i n g a n d t h e s y s t e m p r e s e n t s s e v e r a l a d v a n t a g e s o v e r t h e m o r e

    t r a d i t i o n a l a p p r o a c h e s t o a u t o m a t i c t e s t d a t a g e n e r a t i o n i n t h a t n o a n a l y s i s o r i n t e r p r e t a t i o n

    o f t h e p r o g r a m u n d e r t e s t i s n e c e s s a r y , t h e f u n c t i o n m i n i m i s a t i o n p r o b l e m s a r e a v o i d e d a n d t h e

    s y s t e m c a n d e a l w i t h a n y t y p e o f p r o g r a m | p r o c e d u r e a n d f u n c t i o n c a l l s p o s e n o p r o b l e m s , n o r

    d o d y n a m i c d a t a t y p e s .

    T h e r e i s m u c h m o r e i n t h e w a y o f e v a l u a t i o n t h a t w e i n t e n d t o c a r r y o u t . F o r e x a m p l e ,

    c h a n g i n g t h e m u t a t i o n r a t e , c r o s s o v e r r a t e a n d p o p u l a t i o n s i z e c a n g r e a t l y a e c t t h e s p e e d a t

    w h i c h a s o l u t i o n i s f o u n d . E x p e r i m e n t i n g w i t h t h e s y s t e m s o f a r h a s f o u n d t h a t t h e b e s t r e s u l t s

    h a v e b e e n a c h i e v e d w i t h a m u t a t i o n r a t e o f 3 0 % a t t h e c h r o m o s o m e l e v e l a n d 5 % a t t h e g e n e

    l e v e l ( m e a n i n g t h a t t h e r e i s a p r o b a b i l i t y o f 0 . 3 t h a t a c h r o m o s o m e w i l l b e s e l e c t e d f o r m u t a t i o n

    a n d i f s e l e c t e d t h e r e i s a p r o b a b i l i t y o f 0 . 0 5 t h a t e a c h g e n e | a b i t i n t h e s t r i n g | w i l l b e

    c h a n g e d ) , a c r o s s o v e r r a t e o f 4 0 % a n d a p o p u l a t i o n s i z e o f 8 0 . F u r t h e r e x p e r i m e n t a t i o n i n v o l v e s

    q u a n t i f y i n g t h e p e r f o r m a n c e o f t h e s y s t e m o n l a r g e s c a l e s o f t w a r e a n d e v a l u a t i n g i t s e e c t i v e n e s s

    a s a t e s t i n g t o o l .

    T h e r e a r e a l s o a n u m b e r o f p o s s i b l e i m p r o v e m e n t s u n d e r i n v e s t i g a t i o n . T h e s e i n c l u d e b a s i n g

    t h e i n i t i a l p o p u l a t i o n o n a p a r t i a l s o l u t i o n ( e . g . a s e t o f f u n c t i o n a l t e s t s ) r a t h e r t h a n a r a n d o m

    p o p u l a t i o n , a n d u s e t h e s y s t e m t o " l l i n t h e g a p s " w h i c h t h e f u n c t i o n a l t e s t s h a v e m i s s e d . A

    r e d u c t i o n i n t i m e t o a c h i e v e a n o p t i m a l s o l u t i o n m a y a l s o b e i m p r o v e d b y s t o r i n g p r e v i o u s g o o d

    s o l u t i o n s w h i c h h a v e b e e n l o s t i n t h e r e p r o d u c t i o n p r o c e s s . A f u r t h e r d e v e l o p m e n t i n v o l v e s t h e

    p r o b l e m o f s t o p p i n g t h e s y s t e m f r o m t r y i n g t o n d s o l u t i o n s i n t h e p r e s e n c e o f i n f e a s i b l e p a t h s .

    O t h e r e n h a n c e m e n t s i n v o l v e c o n t r o l l i n g t h e m u t a t i o n a n d c r o s s o v e r s o t h e y d o n o t ` d e s t r o y ' t h e i r

    d a t a t y p e s - t h e s e c o n d e x a m p l e i n t h e a p p l i c a t i o n s h o w s a s i m p l e m u t a t i o n c a n c h a n g e a s t r i n g

    i n t o a n u n p r i n t a b l e c h a r a c t e r .

    R e f e r e n c e s

    1 ] C . J . B u r g e s s . S o f t w a r e t e s t i n g u s i n g a n a u t o m a t i c g e n e r a t o r o f t e s t d a t a . I n P r o c . S Q M

    9 3 - S o f t w a r e Q u a l i t y M a n a g e m e n t , p a g e s 5 4 1 { 5 5 6 . E l s e v i e r S c i e n c e P u b l i s h e r s , 1 9 9 3 .

    2 ] R i c h a r d A . D e M i l l o , W . M i c h a e l M c C r a c k e n , a n d R . J . M a r t i n a n d J o h n F . P a s s a u m e .

    S o f t w a r e T e s t i n g a n d E v a l u a t i o n . B e n j a m i n C u m m i n g s , 1 9 8 7 .

    3 ] R i c h a r d A . D e M i l l o a n d A J e e r s o n O u t . E x p e r i m e n t a l r e s u l t s f r o m a n a u t o m a t i c t e s t

    c a s e g e n e r a t o r . A C M T r a n s a c t i o n s o n S o f t w a r e E n g i n e e r i n g M e t h o d o l o g y , 2 ( 2 ) : 1 0 9 { 1 2 7 ,

    A p r i l 1 9 9 3 .

    4 ] R i c h a r d A . D e M i l l o a n d A . J e e r s o n O u t t . C o n s t r a i n t - b a s e d a u t o m a t i c t e s t d a t a g e n e r a -

    t i o n . I E E E T r a n s a c t i o n s o n S o f t w a r e E n g i n e e r i n g , 1 7 ( 9 ) : 9 0 0 { 9 1 0 , S e p t e m b e r 1 9 9 1 .

    5 ] D . E . G o l d b e r g . G e n e t i c A l g o r i t h m s i n S e a r c h , O p t i m i z a t i o n a n d M a c h i n e L e a r n i n g .

    A d d i s o n - W e s l e y , 1 9 8 9 .

    1 2

  • 8/8/2019 Genetic Algorithms and the Automatic Generation of Test Data

    13/13

    6 ] J . C . H u a n g . A n a p p r o a c h t o p r o g r a m t e s t i n g . C o m p u t i n g S u r v e y s , 7 ( 3 ) : 1 1 3 { 1 2 7 , S e p t e m b e r

    1 9 7 5 .

    7 ] D a r r e l I n c e . T h e a u t o m a t i c g e n e r a t i o n o f t e s t d a t a . T h e C o m p u t e r J o u r n a l , 3 0 ( 1 ) : 6 3 { 6 9 ,

    1 9 8 7 .

    8 ] B o g d a n K o r e l . A u t o m a t e d s o f t w a r e t e s t d a t a g e n e r a t i o n . I E E E T r a n s a c t i o n s o n S o f t w a r e

    E n g i n e e r i n g , 1 6 ( 8 ) : 8 7 0 { 8 7 9 , A u g u s t 1 9 9 0 .

    9 ] R o n a l d E . P r a t h e r a n d J . P a u l M y e r s , J r . T h e p a t h p r e x s o f t w a r e t e s t i n g s t r a t e g y . I E E E

    T r a n s a c t i o n s o n S o f t w a r e E n g i n e e r i n g , S E - 1 3 ( 7 ) : 7 6 1 { 7 6 5 , J u l y 1 9 8 7 .

    1 0 ] M . S r i n i v a s a n d L a l i t M . P a t n a i k . G e n e t i c a l g o r i t h m s : A s u r v e y . I E E E C o m p u t e r , 2 7 ( 6 ) : 1 7 {

    2 6 , J u n e 1 9 9 4 .

    1 1 ] E l a i n e J . W e y u k e r . T h e a p p l i c a b i l i t y o f p r o g r a m s c h e m a r e s u l t s t o p r o g r a m s . I n t . J n l .

    C o m p u t . I n f o r m . S c i . , 8 : 3 8 7 { 4 0 3 , O c t o b e r 1 9 7 9 .

    1 3