1 00:00:00,057 --> 00:00:01,092 Olemme käyttäneet aikaa 2 00:00:01,092 --> 00:00:03,032 muutamalla viimeisellä luennolla 3 00:00:03,032 --> 00:00:05,082 keskustellen erilaisista testauksista 4 00:00:05,082 --> 00:00:08,021 yksikkötestauksesta verrattuna integraatiotestaukseen 5 00:00:08,021 --> 00:00:10,010 Olemme puhuneet kuinka voit käyttää RSpec:iä 6 00:00:10,010 --> 00:00:12,049 todella erottelemaan koodin eri osat, joita haluat testata 7 00:00:12,049 --> 00:00:14,090 olette myöskin mm. 3. kotitehtävän takia 8 00:00:14,090 --> 00:00:18,017 ja muiden asioiden ohella tehneet BDD:tä, 9 00:00:18,017 --> 00:00:20,062 missä olemme Cucumberin avulla kääntäneet käyttäjätarinat 10 00:00:20,062 --> 00:00:22,095 integraatio ja hyväksymistesteiksi 11 00:00:22,095 --> 00:00:25,061 Olette siis nähneet testausta muutamilla eri tasoilla 12 00:00:25,061 --> 00:00:27,063 ja nyt tavoitteena onkin tehdä muutama tärkeä huomio 13 00:00:27,063 --> 00:00:29,092 ymmärtääksemme kokonaisuuksia 14 00:00:29,092 --> 00:00:33,001 ja sitoaksemme ne toisiinsa saadaksemme laajemman käsityksen 15 00:00:33,001 --> 00:00:34,095 Joten tämä luento käsittelee materiaaleja 16 00:00:34,095 --> 00:00:37,000 jotka kattavat kolmen tai neljän luvun asioita kirjassa 17 00:00:37,000 --> 00:00:39,061 ja yritän vain tällä luennolla käydä läpi tärkeimpiä pointteja 18 00:00:39,061 --> 00:00:41,046 Kysymys, joka tulee usein vastaan 19 00:00:41,046 --> 00:00:43,025 Ja olen varma, että se tulee vastaan myös kaikille teistä 20 00:00:43,025 --> 00:00:44,052 tehdessänne kotitehtäviänne 21 00:00:44,052 --> 00:00:45,069 on: "Kuinka paljon testausta on tarpeeksi?" 22 00:00:45,069 --> 00:00:48,049 Ja surullisesti, jo kauan aikaa 23 00:00:48,049 --> 00:00:51,009 jos kysyit samaa kysymystä ohjelmistoalalla 24 00:00:51,009 --> 00:00:52,017 vastaus oli käytännössä 25 00:00:52,017 --> 00:00:53,017 "No, meillä on päivämäärä, jolloin tuotteen tulee olla valmis 26 00:00:53,017 --> 00:00:54,099 joten, kuinka paljon testausta voimme tehdä 27 00:00:54,099 --> 00:00:56,066 ennen sitä päivämäärää, niin paljon on tarpeeksi." 28 00:00:56,066 --> 00:00:58,015 Se on se aika mitä siihen on käytettävissä. 29 00:00:58,015 --> 00:01:00,002 Eli käytännössä tuo on vain epämääräinen arvio, "heitto" 30 00:01:00,002 --> 00:01:01,011 joka ei ole millään tasolla hyvä. 31 00:01:01,011 --> 00:01:02,054 Joten on varmasti parempiakin keinoja, eikö totta? 32 00:01:02,054 --> 00:01:03,070 On olemassa jotain mitattavia asioita 33 00:01:03,070 --> 00:01:06,003 kuten kuinka monta koodiriviä ohjelmalla on 34 00:01:06,003 --> 00:01:08,021 ja kuinka monta koodiriviä on testejä? 35 00:01:08,021 --> 00:01:10,029 Eikä ole epätavallista ohjelmistoalalla 36 00:01:10,029 --> 00:01:12,068 että hyvin testatussa ohjelmistossa 37 00:01:12,068 --> 00:01:14,057 testikoodin rivimäärä 38 00:01:14,057 --> 00:01:17,073 on paljon suurempi kuin varsinaisen ohjelmakoodin rivimäärä 39 00:01:17,073 --> 00:01:19,075 Joten jopa kokonaisluvulliset kertoimet eivät ole epätavallisia 40 00:01:19,075 --> 00:01:21,084 Ja minun mielestäni jopa 41 00:01:21,084 --> 00:01:23,022 opiskelu tai tutkimukseen liittyvän koodin 42 00:01:23,022 --> 00:01:26,085 testauskerroin 1.5 ei ole kohtuutonta 43 00:01:26,085 --> 00:01:30,005 joten siis yksi ja puoli kertaa enemmän testauskoodirivejä 44 00:01:30,005 --> 00:01:32,024 kuin varsinaisen ohjelman koodirivejä 45 00:01:32,024 --> 00:01:34,022 Ja useimmissa tuotantoon menevissä järjestelmissä 46 00:01:34,022 --> 00:01:35,027 missä testauksella on todella merkitystä 47 00:01:35,027 --> 00:01:36,091 kerroin on paljon korkeampi kuin tuo 48 00:01:36,091 --> 00:01:38,015 Joten on ehkä parempi kysyä: 49 00:01:38,015 --> 00:01:39,047 Enemmin kuin kysyä "Kuinka paljon testausta on tarpeeksi?" 50 00:01:39,047 --> 00:01:42,049 on kysyä "Kuinka hyvää testausta olen tekemässä?" 51 00:01:42,049 --> 00:01:44,035 "Kuinka perusteellista se on?" 52 00:01:44,035 --> 00:01:45,056 Myöhemmin lukukaudella 53 00:01:45,056 --> 00:01:46,056 Professori Sen puhuu 54 00:01:46,056 --> 00:01:48,018 vähän enemmän formaaleista metodeista 55 00:01:48,018 --> 00:01:50,085 ja siitä mitkä ovat testauksen ja debuggauksen rajat 56 00:01:50,085 --> 00:01:52,068 Mutta muutama asia, josta voimme puhua 57 00:01:52,068 --> 00:01:54,007 perustuen siihen mitä jo tiedätte 58 00:01:54,007 --> 00:01:57,074 on peruskäsitteet testauksen kattavuudesta 59 00:01:57,074 --> 00:01:59,054 ja sanoisin jopa 60 00:01:59,054 --> 00:02:01,001 koska, tiedättehän, yleensä sanotaan, että 61 00:02:01,001 --> 00:02:03,003 formaalit menetelmät eivät oikeasti toimi isoissa järjestelmissä 62 00:02:03,003 --> 00:02:05,033 Minusta kyseinen toteamus 63 00:02:05,033 --> 00:02:07,001 on todellisuudessa vähemmän totta kuin mitä se oli aikaisemmin 64 00:02:07,001 --> 00:02:09,019 Uskon, että on olemassa useita tiettyjä alueita 65 00:02:09,019 --> 00:02:10,052 varsinkin testauksessa ja debuggauksessa 66 00:02:10,052 --> 00:02:12,084 missä formaalit menetelmät ovat kehittymässä valtavalla vauhdilla 67 00:02:12,084 --> 00:02:15,075 ja Koushik Sen on sen alueen johtava tutkija 68 00:02:15,075 --> 00:02:17,094 Joten teillä on mahdollisuus kuulla lisää siitä myöhemmin 69 00:02:17,094 --> 00:02:21,043 mutta nyt, perusasioiden äärelle 70 00:02:21,043 --> 00:02:22,073 puhutaan kattavuudesta ja sen mittaamisesta 71 00:02:22,073 --> 00:02:24,047 koska siihen kaikki loppupeleissä perustuu 72 00:02:24,047 --> 00:02:26,020 testauksen arvioinnissa 73 00:02:26,020 --> 00:02:28,063 jos olet testaamassa oikeasti