TESTIKAAVIO
SYNKRONOINTITESTIT KAHDEN LAITTEEN SYNKRONOINTITESTI Kaikkien käyttötapausten lähtötilanne on se, että laitteet ovat synkronoinnin suhteen perustilassa. Käyttötapauksessa 1 ipad-laiteen bluetooth ei ole päällä. Muissa tapauksissa ipadin bluetooth on päällä. Testaus suoritettu ipadin ios-versioilla 4.3.3 ja 5.0.1. Käyttötapausten polkuina esitetyt toimintoketjut löytyvät testikaaviosta. Käyttötapaus 1. (Testattu: ei toimi - ei myöskään korjattavissa) Polku: A2 -> B1/B2 : Alert-viesti Jos ipadin bluetooth ei ole päällä ja käyttäjä alkaa masteriksi tai slaveksi, ohjelman pitäisi antaa siitä virheilmoitus. Näin ei kuitenkaan tapahdu, sillä ei ole ohjelmallisesti mitään tapaa selvittää, onko bluetooth päällä. Bluetooth rajapinta ei anna virheilmoitusta siitä, että bluetooth ei ole päällä. Jos yritetään alkaa masteriksi, ohjelma näyttää menevän master-tilaan, vaikka oikeasti näin ei tapahdu. Jos yritetään alkaa slaveksi, master-laitteita ei löydy. Käyttötapaus 2. (Testattu: toimii) : Masterin synkronointisymboli vaihtuu ipadin bluetooth on päällä (tästä eteenpäin kaikissa kohdissa oletetaan, että bluetooth on päällä), ja käyttäjä haluaa alkaa masteriksi. Synkronointinapin painalluksesta tulee esille master- ja slave vaihtoehdot. Master-napin painalluksen jälkeen synkronointisymboli vaihtuu mastersynkronointisymboliksi, ja masteriin kiinnittyineiden laitteiden määrän osoitin näyttää lukua 0. Käyttötapaus 3. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 : Lista master-laitteista Synkronointinapin painalluksesta tulee esille master- ja slave vaihtoehdot. Slave-napin painamisen jälkeen ohjelmassa aukeaa näkymä, jossa ovat kaikki master-laitteet, joihin voi kiinnittyä sekä orientaatiolukituksen valitsin. Jos yhtään laitetta ei ole ilmoittautunut masteriksi, lista on tyhjä. Käyttötapaus 4. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D1 -> E2 : Synkronointisymboli muuttuu slavesynkronointisymboliksi Bluetooth kantamalla on vähintään yksi laite ilmoittautunut masteriksi. Slave-laite kiinnittyy masteriin koskematta orientaatiolukituksen valitsimeen painamalla master-laitteen nimen kohdalla olevaa solua. Synkronointisymboli vaihtuu slave-synkronointisymboliksi. Master-laitteessa kiinnittyneiden laitteiden lukumäärä master-synkronointisymbolissa kasvaa yhdellä. Käyttötapaus 5. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D2 -> E2 : Synkronointisymboli muuttuu slavesynkronointisymboliksi
Bluetooth-kantamalla on vähintään yksi laite ilmoittautunut masteriksi. Slave-laite kiinnittyy masteriin valitsemalla orientaatiolukituksen valitsimen päälle sekä painamalla master-laitteen nimen kohdalla olevaa solua. Synkronointisymboli vaihtuu slave-synkronointisymboliksi. Käyttötapaus 6. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D3 -> E2 : Synkronointisymboli muuttuu slavesynkronointisymboliksi Bluetooth-kantamalla on vähintään yksi laite ilmoittautunut masteriksi. Slave-laite kiinnittyy masteriin vaihtamalla orientaatiolukituksen valitsimen ensin päälle ja sitten pois päältä sekä tämän jälkeen painamalla master-laitteen nimen kohdalla olevaa solua. Synkronointisymboli vaihtuu slave-symboliksi. Käyttötapaus 7. (Testattu: toimii) -> F1 : Lista slave-laitteista Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> E2 Master-laitteen käyttäjä painaa master-synkronointisymbolia. Näyttöön tulee lista masteriin kiinnittyneitä slave-laitteista sekä disconnect-painike. Jos masteriin ei ole kiinnittynyt yhtään laitetta, lista avautuu tyhjänä. Toiminto on testattu kaikilla mahdollisilla slave-laitteen orientaatiovaihtoehdoilla sekä ilman yhtäään masteriin kiinnittynyttä slave-laitetta. Käyttötapaus 8. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> E2 -> F2 : Näytetään info masterista Bluetooth-kantamalla on vähintään yksi laite ilmoittautunut masteriksi. Slave laitteen käyttäjä painaa slave-synkronointisymbolia, jolloin näytölle aukeaa näkymä, josta selviää mihin masterlaitteeseen ollaan kiinnitytty sekä disconnect-painike. Toiminto on testattu kaikilla mahdollisilla slav-laitteiden orientaatiovaihtoehdoilla. Käyttötapaus 9. (Testattu: toimii) -> F1 -> G1 : Synkronointisymbolit muuttuvat ja slavet saavat infon Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> E2 Master-laitteen käyttäjä painaa disconnect-painiketta. Ohjelma lähettää kaikille kyseiseen masteriin kiinnittyneille slave-laitteille tiedon yhteyden katkaisusta. Master-laitteen ja siihen kiinnittyneinä olleiden slave-laitteiden synkronointisymboli muuttuu alkuperäiseksi synkronointisymboliksi. Toiminto on testattu kaikilla mahdollisilla slave-laitteiden orientaatiovaihtoehdoilla. Käyttötapaus 10. (Testattu: toimii) -> F1 -> G2 : Symbolit eivät muutu Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> E2 Master-laitteen käyttäjä avaa listan kiinnittyneistä slave-laitteista. Käyttäjä poistaa näkymän painamalla back-nappia palatakseen normaalinäkymään. Mikään synkronointisymboli ei muutu. Toiminto on testattu kaikilla mahdollisilla slave-laitteiden orientaatiovaihtoehdoilla, sekä ilman masteriin kiinnittyneitä slave-laitteita.
Käyttötapaus 11. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> E2 -> F2 -> G1 : Masterin ja slaven symbolit muuttuvat Slave-laitteen käyttäjä painaa slave-synkronointisymbolia. Näyttöön tulee näkymä, jossa on tieto masterista johon ollaan kiinnitytty sekä disconnect-nappula. Käyttäjä painaa disconnect-painiketta, jolloin hänen laitteen synkronointisymboli muuttuu alkuperäiseksi synkronointisymboliksi ja master-laitteen synkronointisymbolista kiinnittyneiden laitteiden lukumäärä vähenee yhdellä. Toiminto on testattu kaikilla mahdollisilla slaven orientaatiovaihtoehdoilla. Käyttötapaus 12. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> E2 -> F2 -> G2 : Mikään ei muutu -> F1 Slave-laitteen käyttäjä painaa slave-synkronointisymbolia. Näyttöön tulee näkymä, jossa on tieto masterista sekä disconnect-nappula. Käyttäjä painaa ruutua näkymän ulkopuolelta, jolloin näkymä poistuu. Synkronointisymbolit sailyvät master- ja slavelaitteissa ennallaan. Toiminto on testattu kaikilla mahdollisilla slaven orientaatiovaihtoehdoilla. Käyttötapaus 13. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> H1 : Slave seuraa masteria oikein Orientaatiotestit suoritettiin kaikilla laitteen kaikilla neljällä eri orientaatiolla. Orientaatiomuutokset testattiin sekä myötä- että vastapäivään kääntäen. Slave-laite seuraa masteria kaikissa asennoissa toivotulla tavalla. D1- ja D3 poluissa näyttöjen synkronointi on asetettu kuvan ylälaitaan. Silloin esimerkiksi vaakatasossa olevasta laitteesta jää nuotin alaosa näkymättä. Tämä ei ole virhe, vaan haluttu tapa toteuttaa toiminto. Polun D2-kautta (orientaatiolukitus päällä) slave-laitteen näyttö seuraa master-laitteen kaikkia orientaatioita, vaikka slave-laitteen käyttäjä pitäisi omaa ipadia koko ajan samassa asennossa. Käyttötapaus 14. (Testattu: toimii) Slaven polku: A1 -> B2 -> C1 -> D1/D2/D3 -> H1 -> I1 : Slave seuraa masteria oikein Slave-laite seuraa masterin scroll- ja zoom -viestejä toivotulla tavalla kaikilla eri orientaatiovaihtoehdoilla. Toiminnot ovat testattu kaikilla kolmella orientaatiolukituksen vaihtoehdolla. Polkujen D1- ja D3 -kautta jos laitteilla on eri orientaatiot (toinen vaakatasossa ja toinen pystytasossa), master-laitteen zoom tiedot eivät välity slave-laitteelle. Tämä ei ole bugi vaan haluttu toiminto. Jos tämän jälkeen laitteet käännetään takaisin samaan asentoon, zoomit säilyvät silti erilaisina niin kauan kunnes mahdollinen uusi zoomaus suoritetaan. Polun D2-kautta (orientaatiolukitus päällä) slave-laite seuraa kaikkia master-laitteen scroll- ja zoom toimintoja halutulla tavalla. Jos slave-laite itse zoomaa johonkin, palaa sen näyttö takaisin masteria vastaavaksi heti seuraavan master-laitteen eventin seurauksena.
SLAVE-LAITTEIDEN MÄÄRÄN ILMAISIMEN TESTI Testaus suoritettu ipadin ios-versioilla 4.3.3 ja 5.0.1. Käyttötapaus 1. (Testattu: toimii) Master: Disconnect -> Master-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi Slave1: Symboli vaihtuu alkuperäiseksi Slave2: Symboli vaihtuu alkuperäiseksi Käyttötapauksen 1 lähtötilanteessa master-laitteeseen yhdistetty kaksi slave-laitetta. Master-laite katkaisee yhteyden. Slave-laitteille lähetetään katkaisusta viesti. Master-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi. Käyttötapaus 2. (Testattu: toimii) Master: Yhdistää itsensä uudelleen masteriksi-> Synkronointisymboli vaihtuu mastersynkronointisymboliksi ja kiinnittyneiden laitteiden lukumäärän ilmaisin näyttää lukua 0 -> Kiinnittyneiden slave-laitteiden lista tyhjä Slave1: Synkronointisymboli säilyy alkuperäisenä Slave2: Synkronointisymboli säilyy alkuperäisenä Käyttötapaus jatkuu siitä, mihin käyttötapauksessa 1 jäätiin. Master-laitteena edellisessä tilanteessa ollut laite yhdistää itsensä uudelleen masteriksi. Synkronointisymboli vaihtuu mastersynkronointisymboliksi ja kiinnittyneiden laitteiden lukumäärän ilmaisin näyttää lukua 0. Kiinnittyneiden slave-laitteiden lista on tyhjä. Slave laitteet säilyvät synkronoimattomassa tilassa. Käyttötapaus 3. (Testattu: toimii) Slave1: Disconnect -> Slave-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi Slave2: Tila säilyy muuttumattomana Master: Master-synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin pienenee yhdellä näyttäen lukua 1 Käyttötapauksessa 3 master-laitteeseen on jälleen yhdistetty kaksi slave-laitetta. Slave1 katkaisee yhteyden masteriin, jolloin slave-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi. Slave2-laitteessa tila säilyy muuttumattomana. Mastersynkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin pienenee yhdellä näyttäen lukua 1. Käyttötapaus 4. (Testattu: toimii) Slave1: Yhdistää itsensä masteriin -> Synkronointisymboli vaihtuu slave-symboliksi Slave2: Tila säilyy muuttumattomana Master: Master-synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin kasvaa yhdellä näyttäen lukua 2 Käyttötapaus jatkuu tilanteesta, mihin käyttötapauksessa 3 jäätiin. Edellisessä tilanteessa yhteyden katkaissut Slave1 yhdistää itsensä uudelleen samaan master-laitteeseen missä oli yhdistyneenä edellisen tilanteen aluksi. Slave1-laitteessa synkronointisymboli vaihtuu slave-symboliksi. Slave2- laitteessa tila säilyy muuttumattomana. Master-laitteessa master-synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin kasvaa yhdellä näyttäen lukua 2.
Käyttötapaus 5. (Testattu: toimii) Slave1: Disconnect -> Slave-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi Slave2: Tila säilyy muuttumattomana Master: Master-synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin pienenee yhdellä näyttäen lukua 1 Käyttötapaus jatkuu tilanteesta, mihin käyttötapauksessa 4 jäätiin. Slave1 katkaisee yhteyden masteriin, jolloin slave-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi. Slave2-laitteessa tila säilyy muuttumattomana. Master-synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin pienenee yhdellä näyttäen lukua 1. Käyttötapaus 6. (Testattu: toimii) Slave1: Tila säilyy muuttumattomana Slave2: Disconnect -> Slave-synkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi Master: Master-synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin pienenee yhdellä näyttäen lukua 0 Käyttötapaus jatkuu tilanteesta, mihin käyttötapauksessa 5 jäätiin. Masteriin on kiinnittynyt tässä vaiheessa ainoastaan Slave2, joka nyt katkaisee yhteyden masteriin. Slave2-laitteen slavesynkronointisymboli vaihtuu alkuperäiseksi synkronointisymboliksi. Master-laitteen synkronointisymbolin kiinnittyneiden laitteiden lukumäärän ilmaisin pienenee yhdellä näyttäen lukua 0. KAHDEN SAMANAIKAISEN SYNKRONOINNIN TESTI Kahden samanaikaisen synkronoinnin testi suoritettiin kahdella ios-simulaattorilla sekä kahdella ipadilla, jossa toisessa on ios-versio 4.3.3 ja toisessa 5.0.1. Käyttötapaus 1. (Testattu: toimii) Master1: ipad1 <--> Slave1: ios-simulator1 Master2 : ipad2 <--> Slave2: ios-simulator2 Synkronointi testattiin kahdella erillisellä samanaikaisella sessiolla. Molempiin master-laitteeisiin kiinnittyi eri ios-simulaattori, jolloin saman bluetooth-kantaman sisällä oli kaksi täysin erillistä samanaikaista synkronointia. Molemmat synkronoinnit kuuntelivat ja käskyttivät ainoastaan oman session laitteita, joten ristikkäisiä käskytyksiä/kuunteluita ei tapahtunut. Myös synkronoinnin katkaisuviestit tulivat ainoastaan samaan sessioon kiinnittyneelle ios-simulaattorille.