Projekat

Općenito

Profil

Akcije

Podrška #29026

Zatvoren

F18 TDD, prvi integracijski testovi

Dodano od Ernad Husremović prije skoro 14 godina. Izmjenjeno prije skoro 14 godina.

Status:
Zatvoreno
Prioritet:
Normalan
Odgovorna osoba:
Početak:
31.08.2012
Završetak:
% završeno:

0%

Procjena vremena:

Povezani tiketi 1 (0 otvoreno1 zatvoren)

korelira sa F18 - Nove funkcije #29010: test environment najčešćih funkcijaZatvorenoErnad Husremović29.08.2012

Akcije
Akcije #1

Izmjenjeno od Ernad Husremović prije skoro 14 godina

rezultat

vagrant@f18-dev-1:~/github/F18_knowhow$ ./F18_test
----------------------------------------------------------------------------------------------------
      Version: Harbour 3.2.0dev (Rev. 17922)
     Compiler: GNU C 4.6.3 (32-bit)
           OS: Linux 3.2.0-23-generic-pae i686
   Date, Time: 2012.08.31 00:55:00
Shortcut opt.: ON
     Switches: 
====================================================================================================
R No.  Line            TestCall()                                                   -> Result                                                                                | Expected                                                                             
----------------------------------------------------------------------------------------------------
     1 TEST_MIGRATE(42 FILE(_dbf)                                                   -> .T.                                                                                   | .T.                                                                                  
     2 TEST_MIGRATE(46 FILE(_dbf)                                                   -> .T.                                                                                   | .T.                                                                                  
     3 TEST_MIGRATE(50 FILE(_dbf)                                                   -> .T.                                                                                   | .T.                                                                                  
     4 HARBOUR_BASE(5) hb_ValToStr( 4 )                                             -> "         4"                                                                          | "         4"                                                                         
     5 HARBOUR_BASE(6) hb_ValToStr( 4.0 / 2 )                                       -> "         2.00"                                                                       | "         2.00"                                                                      
     6 HARBOUR_BASE(7) hb_ValToStr( "String" )                                      -> "String"                                                                              | "String"                                                                             
     7 HARBOUR_BASE(8) hb_ValToStr( hb_SToD( "20010101" ) )                         -> "2001.01.01"                                                                          | "2001.01.01"                                                                         
     8 HARBOUR_BASE(9) hb_ValToStr( NIL )                                           -> "NIL"                                                                                 | "NIL"                                                                                
     9 HARBOUR_BASE(10 hb_ValToStr( .F. )                                           -> ".F."                                                                                 | ".F."                                                                                
    10 HARBOUR_BASE(12 hb_ValToStr( .T. )                                           -> ".T."                                                                                 | ".T."                                                                                
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "semaphores_f18_test_pkey" for table "semaphores_f18_test" 
row number -1 is out of range 0..-1
    11 MODSTRU_TEST(58 FIELDPOS("NAZ2") > 0 .AND. LEN(EVAL(FIELDBLOCK("ID"))) == 5  -> .T.                                                                                   | .T.                                                                                  
    12 FETCH_SET_METRI fetch_metric(_sect, NIL, _is_fakturisi)                      -> .F.                                                                                   | .F.                                                                                  
    13 FETCH_SET_METRI fetch_metric(_sect, NIL, _is_fakturisi)                      -> .T.                                                                                   | .T.                                                                                  
    14 FETCH_SET_METRI fetch_metric(_sect, NIL, _is_fakturisi)                      -> .F.                                                                                   | .F.                                                                                  
    15 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 50                                                                                    | 50                                                                                   
    16 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 50                                                                                    | 50                                                                                   
    17 FETCH_SET_METRI fetch_metric(_sect, "<>", _color )                           -> 101                                                                                   | 101                                                                                  
    18 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 101                                                                                   | 101                                                                                  
    19 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 70                                                                                    | 70                                                                                   
    20 FETCH_SET_METRI fetch_metric(_sect)                                          -> "hbakir"                                                                              | "hbakir"                                                                             
    21 FETCH_SET_METRI fetch_metric(_sect, NIL, "default_default")                  -> "default_default"                                                                     | "default_default"                                                                    
    22 FETCH_SET_METRI fetch_metric(_sect, "hernad", _dat_2)                        -> HB_SToD("20111224")                                                                   | HB_SToD("20111224")                                                                  
    23 FETCH_SET_METRI fetch_metric(_sect, NIL, _dat_2)                             -> HB_SToD("20110101")                                                                   | HB_SToD("20110101")                                                                  
    24 TEST_VERSION(19 get_version_str(_num)                                        -> "3.21.55"                                                                             | "3.21.55"                                                                            
    25 TEST_VERSION(22 get_version_str(_num)                                        -> "55.5.7"                                                                              | "55.5.7"                                                                             
    26 TEST_VERSION(24 get_version_num(12, 5, 49)                                   -> 120549                                                                                | 120549                                                                               
    27 I_DODAJ_SIFRU_R test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    28 I_DODAJ_SIFRU_R test_var("rec_99") == 1                                      -> .T.                                                                                   | .T.                                                                                  
    29 I_DODAJ_SIFRU_P test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    30 I_DODAJ_SIFRU_P test_var("rec_part_99") == 1                                 -> .T.                                                                                   | .T.                                                                                  
    31 I_DODAJ_SIFRE_R test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    32 I_DODAJ_SIFRE_R test_var("rec_roba_t1") == 1 .AND. test_var("rec_roba_t2") = -> .T.                                                                                   | .T.                                                                                  
    33 I_POVRAT_FAKTUR test_var("fakt_pov") == 0                                    -> .T.                                                                                   | .T.                                                                                  
    34 I_NAPRAVI_FAKTU test_var("fakt_77") == 2                                     -> .T.                                                                                   | .T.                                                                                  
====================================================================================================
Test calls passed:         34 ( 100.00 % )
Test calls failed:          0 ( 0.00 % )
                   ----------
            Total:         34 ( Time elapsed: 4.42 seconds )
Akcije #2

Izmjenjeno od Ernad Husremović prije skoro 14 godina

integracijski testovi vrše automatsko testiranje korisničkih funkcija, simulirajući rad korisnika unutar aplikacije.

tako sam napravio unos (i_dodaj_sifru):
  • radna jedinice 99
  • partner 99999
  • artiikli TEST1, TEST2

ako ovi artikli postoje sa c-F se traže pa brišu ... što znači da se uvijek indirektno testiraju i funkcije kao što je c-F - traži šifru.

kada se pokriju glavne funkcije sa ovakvim testovima, side efekat bugovi će biti preventivno eliminisani. Kao što znamo, svaka nova verzija F18 core-a izaziva veliki broj tih side efekata bugo-ova - regresija funkcionalnosti

Akcije #3

Izmjenjeno od Ernad Husremović prije skoro 14 godina

integracijski testovi fakturisanje

podešavanje parametara zaglavlja fakture:

evo kako izgleda takva testna funkcije

pa onda ide povrat fakture

i na kraju kreiranje fakture od dvije stavke

gornji testovi pokazuju da li su operacije uspješno realizovane

Akcije #4

Izmjenjeno od Ernad Husremović prije skoro 14 godina

developerske procedure - pokretanje testova nakon builda

ove testove developer treba nakon svakog builda pokretati. to se radi iz dva koraka:

./build_test.sh => F18_test
./F18_test

baza koja se koristi za test je uvijek localhost/f18_test

za te potrebe trebamo napraviti i redovno održavati empty bazu (sa standarnim sifarnicima)

Akcije #5

Izmjenjeno od Ernad Husremović prije skoro 14 godina

developerske procedure - pravljenje novih testova

potrebno je za sve kritične operacije kao što su izdavanje računa, i ažuriranje dokumenata napraviti testove

Akcije #6

Izmjenjeno od Ernad Husremović prije skoro 14 godina

test štampe fakture

...
    25 TEST_VERSION(22 get_version_str(_num)                                        -> "55.5.7"                                                                              | "55.5.7"                                                                             
    26 TEST_VERSION(24 get_version_num(12, 5, 49)                                   -> 120549                                                                                | 120549                                                                               
    27 I_DODAJ_SIFRU_R test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    28 I_DODAJ_SIFRU_R test_var("rec_99") == 1                                      -> .T.                                                                                   | .T.                                                                                  
    29 I_DODAJ_SIFRU_P test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    30 I_DODAJ_SIFRU_P test_var("rec_part_99") == 1                                 -> .T.                                                                                   | .T.                                                                                  
    31 I_DODAJ_SIFRE_R test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    32 I_DODAJ_SIFRE_R test_var("rec_roba_t1") == 1 .AND. test_var("rec_roba_t2") = -> .T.                                                                                   | .T.                                                                                  
    33 I_POVRAT_FAKTUR test_var("fakt_pov") == 0                                    -> .T.                                                                                   | .T.                                                                                  
    34 I_NAPRAVI_FAKTU test_diff_between_files("fakt_1.txt", _fakt_outf)            -> 0                                                                                     | 0          <<<<<<<<<                                                                          
    35 I_NAPRAVI_FAKTU test_var("fakt_77") == 2                                     -> .T.                                                                                   | .T.                                                                                  
====================================================================================================
Test calls passed:         35 ( 100.00 % )
Test calls failed:          0 ( 0.00 % )
                   ----------
            Total:         35 ( Time elapsed: 6.10 seconds )

na čemu je bazirana ? na jednostavnom diff-ovanju (sa diff programom) test/data/fakt_1.txt fakture i izgenerisanog outf.txt-a

Akcije #7

Izmjenjeno od Ernad Husremović prije skoro 14 godina

Testiranje ODT dokumenata

odt je zip fajl a u njemu se nalazi xml sadržaj

vagrant@f18-dev-1:~/github/F18_knowhow/tmp$ sudo apt-get install libxml2-utils

Akcije #8

Izmjenjeno od Ernad Husremović prije skoro 14 godina

koristiću unzip i xmllint eksterne aplikacije

Akcije #9

Izmjenjeno od Ernad Husremović prije skoro 14 godina

F18 1.3.17

vagrant@f18-dev-1:~/github/F18_knowhow$ ./F18_test

----------------------------------------------------------------------------------------------------
      Version: Harbour 3.2.0dev (Rev. 17922)
     Compiler: GNU C 4.6.3 (32-bit)
           OS: Linux 3.2.0-23-generic-pae i686
   Date, Time: 01.09.12 16:00:15
Shortcut opt.: ON
     Switches: 
====================================================================================================
R No.  Line            TestCall()                                                   -> Result                                                                                | Expected                                                                             
----------------------------------------------------------------------------------------------------
     1 TEST_MIGRATE(42 FILE(_dbf)                                                   -> .T.                                                                                   | .T.                                                                                  
     2 TEST_MIGRATE(46 FILE(_dbf)                                                   -> .T.                                                                                   | .T.                                                                                  
     3 TEST_MIGRATE(50 FILE(_dbf)                                                   -> .T.                                                                                   | .T.                                                                                  
     4 HARBOUR_BASE(5) hb_ValToStr( 4 )                                             -> "         4"                                                                          | "         4"                                                                         
     5 HARBOUR_BASE(6) hb_ValToStr( 4.0 / 2 )                                       -> "         2.00"                                                                       | "         2.00"                                                                      
     6 HARBOUR_BASE(7) hb_ValToStr( "String" )                                      -> "String"                                                                              | "String"                                                                             
     7 HARBOUR_BASE(8) hb_ValToStr( hb_SToD( "20010101" ) )                         -> "01.01.01"                                                                            | "01.01.01"                                                                           
     8 HARBOUR_BASE(9) hb_ValToStr( NIL )                                           -> "NIL"                                                                                 | "NIL"                                                                                
     9 HARBOUR_BASE(10 hb_ValToStr( .F. )                                           -> ".F."                                                                                 | ".F."                                                                                
    10 HARBOUR_BASE(12 hb_ValToStr( .T. )                                           -> ".T."                                                                                 | ".T."                                                                                
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "semaphores_f18_test_pkey" for table "semaphores_f18_test" 
row number -1 is out of range 0..-1
    11 MODSTRU_TEST(58 FIELDPOS("NAZ2") > 0 .AND. LEN(EVAL(FIELDBLOCK("ID"))) == 5  -> .T.                                                                                   | .T.                                                                                  
    12 FETCH_SET_METRI fetch_metric(_sect, NIL, _is_fakturisi)                      -> .F.                                                                                   | .F.                                                                                  
    13 FETCH_SET_METRI fetch_metric(_sect, NIL, _is_fakturisi)                      -> .T.                                                                                   | .T.                                                                                  
    14 FETCH_SET_METRI fetch_metric(_sect, NIL, _is_fakturisi)                      -> .F.                                                                                   | .F.                                                                                  
    15 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 50                                                                                    | 50                                                                                   
    16 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 50                                                                                    | 50                                                                                   
    17 FETCH_SET_METRI fetch_metric(_sect, "<>", _color )                           -> 101                                                                                   | 101                                                                                  
    18 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 101                                                                                   | 101                                                                                  
    19 FETCH_SET_METRI fetch_metric(_sect, f18_user(), _color )                     -> 70                                                                                    | 70                                                                                   
    20 FETCH_SET_METRI fetch_metric(_sect)                                          -> "hbakir"                                                                              | "hbakir"                                                                             
    21 FETCH_SET_METRI fetch_metric(_sect, NIL, "default_default")                  -> "default_default"                                                                     | "default_default"                                                                    
    22 FETCH_SET_METRI fetch_metric(_sect, "hernad", _dat_2)                        -> HB_SToD("20111224")                                                                   | HB_SToD("20111224")                                                                  
    23 FETCH_SET_METRI fetch_metric(_sect, NIL, _dat_2)                             -> HB_SToD("20110101")                                                                   | HB_SToD("20110101")                                                                  
    24 TEST_VERSION(19 get_version_str(_num)                                        -> "3.21.55"                                                                             | "3.21.55"                                                                            
    25 TEST_VERSION(22 get_version_str(_num)                                        -> "55.5.7"                                                                              | "55.5.7"                                                                             
    26 TEST_VERSION(24 get_version_num(12, 5, 49)                                   -> 120549                                                                                | 120549                                                                               
    27 I_DODAJ_SIFRU_R test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    28 I_DODAJ_SIFRU_R test_var("rec_99") == 1                                      -> .T.                                                                                   | .T.                                                                                  
    29 I_DODAJ_SIFRU_P test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    30 I_DODAJ_SIFRU_P test_var("rec_part_99") == 1                                 -> .T.                                                                                   | .T.                                                                                  
    31 I_DODAJ_SIFRE_R test_var("ok")                                               -> .T.                                                                                   | .T.                                                                                  
    32 I_DODAJ_SIFRE_R test_var("rec_roba_t1") == 1 .AND. test_var("rec_roba_t2") = -> .T.                                                                                   | .T.                                                                                  
    33 I_POVRAT_FAKTUR test_var("fakt_pov") == 0                                    -> .T.                                                                                   | .T.                                                                                  
    34 (b)I_NAPRAVI_FA test_diff_between_files("fakt_1.txt", _fakt_outf)            -> 0                                                                                     | 0                                                                                    
    35 (b)I_NAPRAVI_FA test_diff_between_odt_files("fakt_1.odt", _fakt_out_odt)     -> 0                                                                                     | 0                                                                                    
    36 I_NAPRAVI_FAKTU test_var("fakt_77") == 2                                     -> .T.                                                                                   | .T.                                                                                  
====================================================================================================
Test calls passed:         36 ( 100.00 % )
Test calls failed:          0 ( 0.00 % )
                   ----------
            Total:         36 ( Time elapsed: 6.18 seconds )

napomena: testove izvoditi do daljnjeg na ubuntu mašini. windows diff (odt, txt) nije podržan

Akcije #10

Izmjenjeno od Ernad Husremović prije skoro 14 godina

tokom rada sam neke globalne postavke mjenjao (postavke datuma SET DATE ...)

Testovi su mi odmah detektovali probleme koje promjene izazivaju

Akcije #11

Izmjenjeno od Ernad Husremović prije skoro 14 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno

ova prva baterija testova je sada jedna smislena cijelina.

prije svake isporuke nove verzije obavezno ih treba pokrenuti

Akcije

Također dostupno kao Atom PDF