Ohjelmistotuotanto, kevät 2003, harjoitus 7

Tehtävä 1

Vuoverkko metodille getTableNames:

Vuoverkko metodille getNamesOfUpdate:



Tehtävä 2

Tekijät ja ekvivalenssiluokat:

Osakyselyiden määrä: 1, 2, monta=3
Taulujen määrä FROM osassa: 1, 2, monta=4
WHERE-osan mukanaolo: puuttuu, on
GROUP BY -määreen mukanaolo: puuttuu, on
HAVING -määreen mukanaolo: puuttuu, on
Kerroksellisuus: ei alikyselyjä, yksikerroksinen alikysely, monikerroksinen alikysely
Alikyselyn paikka: FROM-osa, WHERE-osa, HAVING-osa.
Taulualiasten käyttö: ei, käytetään ilman AS-avainsanaa, käytetään AS -avainsanan kera
Lausekkeiden käyttö: ei lausekkeita, käytetään
Lausekkeiden paikka: tulostietomäärittelyssä, WHERE-osassa
Rivinvaihtojen paikat: avainsanan SELECT, FROM, WHERE, GROUP BY, ORDER BY ennen, jälkeen, keskellä kaksiosaisissa
White space -merkkien sijainti: avainsanan SELECT, FROM, WHERE, GROUP BY, ORDER BY ennen, jälkeen, keskellä kaksiosaisissa

Tehtävä 3

Idea: Käydään läpi kyselyä. Jokaisen FROM-alkion jälkeen käydään läpi kyselyä ensimmäiseen loppumerkkiin (SELECT, WHERE jne.) asti. Pilkulla erotetut osat ovat taulunimiä. Suurin osa koodista keskittyy tyhjän (engl. white space) poistamiseen taulunimestä.
 
SELECT jotain FROM taulu
SELECT jotain FROM taulua, taulub;
SELECT jotain FROM taulua, ( SELECT jotainmuuta FROM taulub WHERE ehto)
WHERE ehto2;
SELECT jotain FROM taulua, taulub \n WHERE ehto;
SELECT jotain FROM taulua, taulub \n\t\n WHERE m IN (SELECT a FROM b);

(Täydellistä kattavuutta ei ole tutkittu, näyttäisi siltä että koodissa on saavuttamattomia polkuja, esimerkiksi tyhjä eristetty taulunimi.)

Sama aineisto käy läpi useita polkuja.

Seuraavassa parin testin suorituspolut on merkitty vuoverkkoon punaisella. Kattavuuden varmistamiseksi pitäisi piirtää koko aineiston polut.


[Kuva suurempana]
  
[Kuva suurempana]


Tehtävä 4

-Kaikilla testaustyypeillä jää virheitä huomaamatta. Näitä virheitä voidaan mahdollisesti havaita korkeamman tason testeillä.

Lisäksi:

-Integrointitestauksessa voi löytyä virheitä, sillä vaikka kaikki moduulit on yksikkötestattu, niiden rajapintojen yhteistoiminta ei välttämättä toimi oikein.
"Moduulit toimivat yksin, mutta eivät yhdessä."

-Validointitestauksessa voi löytyä virheitä, sillä integrointitestaus ei takaa mitään siitä, että ohjelmiston toteutettu toiminnallisuus vastaisi määrityksiään.
"Tekee oikein, mutta ei välttämättä oikeita asioita."

-Beta-testauksessa voi löytyä virheitä, sillä kun testit on suoritettu toimittajan laitteistolla, ohjelmistoilla ja henkilöstöllä, tämä ei takaa ohjelmiston toimivuutta asiakkaan ympäristössä. Asiakkaan henkilöstön osuus on suuri: paljon testaajia ja loppukäyttäjän suunnittelijasta (testaajasta) poikkeava näkökulma.
"Tekee oikeita asioita oikein, mutta vain 'laboratorio-olosuhteissa'."