EasyPay Studienarbeit

Transcrição

EasyPay Studienarbeit
EasyPay
Studienarbeit
AbteilungInformatik
HochschulefürTechnikRapperswil
Herbstsemester2015
Autoren: Betreuer: Projektpartner:
MarinoMelchiori
DominicMülhaupt
Prof.Dr.FarhadMehta
InstitutfürSoftware(IFS)
Eigenständigkeitserklärung
Wirerklärenhiermit,
•
•
•
dasswirdievorliegendeArbeitselberundohnefremdeHilfedurchgeführthaben,ausser
derjenigen,welcheexplizitinderAufgabenstellungerwähntistodermitdemBetreuerschriftlich
vereinbartwurde,
dasswirsämtlicheverwendetenQuellenerwähntundgemässgängigenwissenschaftlichen
Zitierregelnkorrektangegebenhaben.
daswirkeinedurchCopyrightgeschütztenMaterialien(z.B.Bilder)indieserArbeitinunerlaubter
Weisegenutzthaben.
Ort,Datum:
Rapperswil,Dezember2015
Namen,Unterschriften:
MarinoMelchiori
DominicMülhaupt
Seite2von33
Inhaltsverzeichnis
Inhaltsverzeichnis....................................................................................................................................3
1 Abstract............................................................................................................................................5
1.1 Ausgangslage.............................................................................................................................5
1.2 Vorgehen/Technologien............................................................................................................5
1.3 Ergebnis.....................................................................................................................................5
2 ManagementSummary....................................................................................................................6
2.1 Ausgangslage.............................................................................................................................6
2.2 Funktionsweise..........................................................................................................................6
2.3 Ergebnisse..................................................................................................................................6
3 EinleitungundÜbersicht..................................................................................................................7
4 Ergebnisse.........................................................................................................................................8
5 Anforderungsanalyse........................................................................................................................9
5.1 Marktanalyse.............................................................................................................................9
5.2 UseCases...................................................................................................................................9
5.2.1 UC1:Einzahlungsscheinerfassen........................................................................................9
5.2.2 UC2:Einzahlungsscheinbezahlen.....................................................................................10
5.2.3 UC3:Einzahlungsschein-Eintraglöschen..........................................................................10
5.3 FunktionaleAnforderungen.....................................................................................................10
5.3.1 Allgemein..........................................................................................................................10
5.3.2 TexterkennungundQR-CodeScanner..............................................................................11
5.3.3 Web..................................................................................................................................11
5.3.4 AbgewieseneFeatures......................................................................................................12
5.4 Nicht-funktionaleAnforderungen...........................................................................................12
5.4.1 Funktionalität....................................................................................................................12
5.4.2 Zuverlässigkeit..................................................................................................................14
5.4.3 Benutzbarkeit...................................................................................................................14
5.4.4 Effizienz.............................................................................................................................15
5.4.5 Wartbarkeit.......................................................................................................................15
5.4.6 Übertragbarkeit................................................................................................................16
5.5 GUI...........................................................................................................................................16
5.5.1 Android.............................................................................................................................17
5.5.2 iOS.....................................................................................................................................17
5.5.3 WebClient........................................................................................................................18
6 TechnischeAspekte........................................................................................................................19
6.1 Risikomanagement..................................................................................................................19
6.1.1 RisikoanalysederElaboration-Phase................................................................................19
6.1.2 RisikoanalysederConstruction-Phase..............................................................................19
6.2 Cross-Platform.........................................................................................................................21
6.2.1 UrsprünglicherPlan..........................................................................................................21
Seite3von33
6.2.2 Entscheid..........................................................................................................................21
6.3 Architektur...............................................................................................................................21
6.3.1 Domainmodell..................................................................................................................21
6.3.2 ScanprozessundWebserverKommunikation..................................................................22
6.4 OCR..........................................................................................................................................23
6.4.1 Ausgangslage....................................................................................................................23
6.4.2 Massnahmen....................................................................................................................23
6.4.3 TechnischerPrototypverglichenmitSmartIDPay...........................................................23
6.5 Frameworks.............................................................................................................................24
6.5.1 Android.............................................................................................................................24
6.5.2 iOS.....................................................................................................................................25
7 Testing............................................................................................................................................26
7.1 FunktionaleTests.....................................................................................................................26
7.1.1 StartenderApp.................................................................................................................26
7.1.2 ScannenmitCodierzeile...................................................................................................26
7.1.3 ScannenmitQR-Code.......................................................................................................27
7.1.4 DetailseinesEinzahlungsscheinsansehen.......................................................................27
7.1.5 ManuellesWechselnzwischenScreens............................................................................27
7.1.6 MitBrowseraufWebserverzugreifen..............................................................................28
7.1.7 AustauschzwischenAppundClient.................................................................................29
7.1.8 VerwendungdesClients...................................................................................................29
7.1.9 Testergebnisse..................................................................................................................30
7.2 NichtfunktionaleTests.............................................................................................................31
7.3 Unit-Tests.................................................................................................................................31
8 Schlussfolgerungen.........................................................................................................................32
8.1 Nochzubehandeln..................................................................................................................32
8.1.1 BestehendeBugs..............................................................................................................32
8.1.2 FutureWork......................................................................................................................32
Glossar..................................................................................................................................................33
Seite4von33
1 Abstract
1.1 Ausgangslage
ObwohlinderSchweizdiemeistenRechnungenperE-Bankingbezahltwerden,müssendie
Zahlungsdatennormalerweisemanuelleingetipptwerden.EsgibtzwarLesegeräteumdie
erforderlichenInformationeneinzuscannen,diesesindaberfürdiemeistenPrivathaushalteund
kleinerenUnternehmerzuteuer.DaheutzutagefastjederübereinSmartphoneverfügt,eignetsich
einemobileAppalsLösung.
DazuistimRahmeneinervorhergehendenStudienarbeitbereitseineMachbarkeitsanalyse
durchgeführtworden,inderuntersuchtwurde,welcheMöglichkeitenesgibt,diesenProzesszu
automatisieren.DabeiwurdeeintechnischerPrototypgeliefert,dergrundsätzlichinderLageist,
DateneinzuscannenundaufdenPCzuübertragen.
UnsereAufgabewares,ausgehendvomtechnischenPrototyp,einebenutzerfreundlicheAppfürdie
beidenPlattformenAndroidundiOSzuentwickeln.DesWeiterensolldieAppdenneuen,2018
eingeführtenEinzahlungsschein,unterstützen.
1.2 Vorgehen/Technologien
DieSchwerpunktederArbeitwaren,eineMarktanalysedurchzuführen,dasUserInterfacezu
definieren,dieScanzeitzuverringern,sowiedieRealisierungderbeidenApps.
UmeineansprechendeundintuitiveBenutzeroberflächezuentwickelnwurdenMethodendesUserCenteredDesignProzesseseingesetzt.
FürdieErfassungderInformationenaufeinemEinzahlungsscheinwurdeOpticalCharacter
Recognition(OCR)eingesetzt,welchemithilfevonTrainingoptimiertwerdenkonnte.
DiejeweiligenAppswurdennativeinAndroidStudio,respektiveXcodeentwickelt.
1.3 Ergebnis
MithilfederentwickeltenAppskönnennunsowohldieaktuellenEinzahlungsscheinemitCodezeile,
sowiedieneuenEinzahlungsscheinemitQR-Codeerfasstwerden.AmPCkannviaBrowseraufdie
gespeichertenEinzahlungsscheineaufdemSmartphonezugegriffenwerden.DieerfasstenWerte
könnendannbequeminsE-Bankingkopiertwerden.
Seite5von33
2 ManagementSummary
2.1 Ausgangslage
ObwohlinderSchweizdiemeistenRechnungenperE-Bankingbezahltwerden,müssendie
Zahlungsdatennormalerweisemanuelleingetipptwerden.EsgibtzwarLesegeräteumdie
erforderlichenInformationeneinzuscannen,diesesindaberfürdiemeistenPrivathaushalteund
kleinerenUnternehmerzuteuer.DaheutzutagefastjederübereinSmartphoneverfügt,eignetsich
einemobileAppalsLösung.
EsbestandvordemProjektbereitseintechnischerPrototypinFormeinerAndroidApp.Fürdiesesoll
eineneue,benutzerfreundlicheVersionerstelltwerden.DesWeiterenwirdeineweitereAppfürdie
iOSPlattformzurVerfügunggestellt.
2.2 Funktionsweise
UmeinenEinzahlungsscheinzuerfassenundimE-Bankingzubezahlen,mussderEinzahlungsschein
erstmitderSmartphoneAppgescanntwerden.DazumussdieCodierzeileuntenrechtsaufdem
Einzahlungsscheinerfasstwerden.Ab2018werdenneueEinzahlungsscheine,dieeinenQR-Code
enthalten,eingeführt.Diesekönnenebenfallsgescanntwerden.
NachderErfassungmitdemSmartphonekannderBenutzeramPCüberdenBrowseraufdie
erfasstenEinzahlungsscheinezugreifen.WerteeinesEinzahlungsscheins,wieKontonummeroder
Rechnungsbetrag,könnenperMausklickindieZwischenablagekopiertwerdenumsieimE-Banking
einzufügen.
2.3 Ergebnisse
ErgebnisdesProjektsistjeeineAppfürAndroidundiOS.Damitistesmöglich,inderoben
beschriebenenArtundWeiseEinzahlungenzuerledigen.Leiderbestehennocheinzelne
Unannehmlichkeiten,welcheinderNutzungderAppnochstörendsind.Bevordiesenochbeseitigt
werden,istesnichtzuempfehlen,dieAppszupublizieren.
Seite6von33
3 EinleitungundÜbersicht
DieAufgabenstellungbestandauseinerAnalysevomtechnischenPrototyp.Dieseristineiner
Machbarkeitsstudie,StudienarbeitvonMichaelBurriundBenjaminWilhelm(Mai2015),entstanden.
DiebereitsimplementierteOCR-BibliothekimtechnischenPrototypsollteoptimiertwerden.
PotentielleBenutzerwürdendieAppnichtnutzen,wenndasErfassenzulangedauert.Daab2018
EinzahlungsscheinemitQR-Codeseingeführtwerden,müssendieseaucherfasstwerdenkönnen.Zu
denZielengehörteauchdieEntwicklungeineriOS-VersioninXcode.
DieübrigenTeilederAbgabebestehenausdenUsabilityTests,derGUI-Entwicklung(User-Centered
Design)fürdiebeidenAppsundfürdieWebseite.
DieWebseitekannvomBrowseramComputer,deralsClientfungiert,aufgerufenwerden.Sieläuft
aufeinemembeddedWebserveraufdemSmartphone.Dortwerdendiegescannten
Einzahlungsscheineangezeigt.DieerfasstenWerteeinesEinzahlungsscheinskopiertderBenutzermit
einemKlickindieZwischenablageundfügtSieimE-Bankingein.DieserautomatischeProzess
verhindertTippfehlerundspartZeit.
DieAufgabenwurdensoverteilt,dassDominicMülhauptsichprimärumdieEntwicklungderiOSApp
kümmertwährendMarinoMelchioridenbestehendenAndroidPrototypneugestaltetundsich
ausserdemmitderOptimierungderOCR,demEinsatzvonQR-Scannernundweiterenanfallenden
Themenauseinandersetzt.
Seite7von33
4 Ergebnisse
DieOptimierungvomOCR-ScannerwardankdemSchriftartentrainingvonTesseracterfolgreich.QRCodeUnterstützungwurdeebenfallsumgesetzt.BeischlechtenLichtverhältnissenkannnunder
Kamerablitzverwendetwerden.
DamitderBenutzerentscheidenkann,wannerdieEinzahlungsscheineeffektivbezahlt,werdenalle
erfasstenDatenaufdemSmartphonegespeichert.DieDateneinesEinzahlungsscheinssindfürdie
PersistenzaufdeminternenSpeicherabgelegt.AllegespeichertenEinzahlungsscheinewerdendem
BenutzerineinerListeangezeigt.ErhatdieMöglichkeitdieDetailseinesEintrageszusehen,oderihn
zulöschen.
DerWebserverunddieWebseitevomtechnischenPrototypwurdenerweitert.DerWebClient
empfängtnunallegespeichertenEinzahlungsscheine.
DieInstallationsanleitungenfürdiejeweiligenAppsfindensichimAnhangunter
Installationsanleitungen.
Seite8von33
5 Anforderungsanalyse
BeiderKonzipierungwurdendiePrinzipiendesUser-CenteredDesignsangewendet.Dasheisst,dass
dasProjektvomUserInterfaceausgedachtundgesteuertwirdundderUservonAnfanganinden
Entwicklungsprozesseinbezogenwird(Frontendfirst).
EineausführlicheBeschreibungdesUser-CenteredDesignProzessesfindetsichimDokumentUserCenteredDesignimAnhangimOrdnerUser-CenteredDesign.
5.1 Marktanalyse
EineMarktanalysewurdeinderMachbarkeitsanalyseschondurchgeführt.IndieserStudienarbeit
ergänzenwirsie.BereitsjetztsindschonsehrguteLösungenvorhanden.SiebeinhaltenFunktionen,
wieExport-Files,welchedirektimE-Bankingeingefügtwerdenkönnen.SomitwirddieRechnung
automatischausgeführtundbezahlt.DieÜbertragungperE-MailoderdasSendenaneinenServer,
deralsDesktopApplikationrealisiertist,werdenauchschongeboten.DieAppsaufdemMarkt
könnenauchmehrereEinzahlungsscheinegleichzeitigübertragen.BekannteBeispielesindSmartID
undsmoothscan.Beidesindgratis,nurSmartIDbietetzusätzlicheFunktionen,diegekauftwerden
können.
DieVorteilevonEasyPaysindfolgende:
•
•
•
•
KeineZusatzsoftwarenötig(einzigeAlternative:E-Mail)
SimpleUmsetzungmitnurzweiScreens(intuitiveBedienbarkeitumsowichtiger)
Chance:SolltedieersteAppmitQR-CodeUnterstützungsein
Gratis
MöglicheNachteilevonEasyPaysind:
•
•
•
LangsamererScan
KeinScanderAdresse
EsmussjedesMaldieIPindenBrowsereingegebenwerden
UnsereOpen-Source-VarianteTesseractkannleidernichtmitproprietärer,kostenpflichtigerOCRSoftwareverglichenwerden,dadiesedochvielschnellerarbeiten.
DieAdressewirdmitdemCodierzeilen-Scannernichterfasst.AllerdingskanndieAdressebei
anderenAppsauchnichtgescanntwerden.
5.2 UseCases
5.2.1 UC1:Einzahlungsscheinerfassen
DerBenutzerstartetdieAppundkanngleichbeginnen,denEinzahlungsscheinzuerfassen.
Szenarioa:vor2018(mitCode)
MitdemdafürvorgesehenenFeldaufdemBildschirmfokussierterdenCodeaufdem
Einzahlungsschein.
Seite9von33
Szenariob:nach2020(mitQRCode)
DerBenutzerfokussiertdenQRCodeaufdemneuenEinzahlungsschein.
Szenarioc:zwischen2018und2020(mitToggle)
DemBenutzerstehenbeideOptionenzurVerfügungunderkanndirektimCaptureScreen
dazwischenumschalten.
NachdemderCodeerkanntwurde,wechseltderScreenundderBenutzersiehtdieerfassten
EinzahlungsscheineineinerListe.
5.2.2 UC2:Einzahlungsscheinbezahlen
DerBenutzerbefindetsichmitseinemSmartphoneaufdemPayScreen.ErsiehtdieIP-Adressevom
WebserverunddiezuvorerfasstenEinzahlungsscheine.EröffnetdenBrowseraufseinemPCund
gibtdieangezeigteIP-Adressean.NunwirddieWebseitemitdenDatenderEinzahlungsscheine
geladen.ErsiehteinenabgebildetenEinzahlungsschein,ausgefülltmitdengescanntenWerten.
UnterdemEinzahlungsscheinerkennterdierestlichenDatendargestelltineinerListe.
DerBenutzerloggtsichinseinemE-BankingeinunderfassteineneueZahlung.Erwechseltzurück
zumTaboderBrowser.DieReferenznummerkopierterindieZwischenablage,indemeraufsiedrauf
klickt.DerBenutzerwechseltnunzumE-BankingzurückundfügtdortdieReferenznummer,diein
derZwischenablagegespeichertist,ein.
DieswiederholtermitallengewünschtenWertenundfülltdenRestnochvonHandaus.
5.2.3 UC3:Einzahlungsschein-Eintraglöschen
DerBenutzerhatdieRechnungbezahltundmöchtedenerfasstenEinzahlungsscheinnichtmehrin
derAppsehen.ErtipptaufdenLöschenButtoninderAppumdenEintragzulöschen.Dergelöschte
EintragwirdvonderListeentfernt.
5.3 FunktionaleAnforderungen
5.3.1 Allgemein
1
Anforderung
Priorität
Erfüllt
1.1
Internationalisierung
Muss
Teilweise
1.1.1 StandardmässigwirddieSprachevomBetriebssystemgewählt.
WenndieseSprachenichtunterstütztist,wirdEnglischgewählt.
Muss
Ja
1.2
Muss
Ja
VerbindungsherstellungvonBrowserzuWebserverwirderklärt
Seite10von33
1.3
BenutzererhältWarnmeldungwennernichtmitdemWLAN
verbundenist.
Muss
Teilweise
GeplantwardieInternationalisierunginDeutsch,Italienisch,FranzösischundEnglisch.Auszeitlichen
Gründenhabenwirditalienischundfranzösischweggelassen.FürdenWebClientwurdekeine
Mehrsprachigkeitumgesetzt.
DerBenutzerwirdnichtexplizitdaraufhingewiesenwennernichtmitdemWLANverbundenist.Die
FunktionwurdeinderAndroidAppnichtbehandelt,inderiOSAppwirdstattderIPAdresseein
entsprechenderHinweisangezeigt.EswurdeeinkleinesTutorialimplementiert,welchesübereinen
Hilfe-ButtonaufgerufenwirdunddasVorgehenerklärt.Zusätzlichweistesdaraufhin,dasssichdas
SmartphoneimgleichenWLANwiederComputerbefindenmuss.
5.3.2 TexterkennungundQR-CodeScanner
2
Anforderung
Priorität
Erfüllt
2.1
EskönnenEinzahlungsscheineperQR-CodeScanerfasst
werden.
Muss
Ja
2.2
BeimScanderCodezeilewirdgleichzeitigeinBildderAdresse
gemacht.DiesesBildwirdbeiderDetailansichteines
EizahlungsscheinesaufdemSmartphoneundaufderWebseite
angezeigt.
Soll
Nein
DasErfassenderAdressebeimScannenderCodezeilewurdeauszeitlichenGründennicht
umgesetzt.WeiterhinhätteeseinProblemmitdemÜbertragenvomBildandenWebserver
gegeben.DerWebserverunterstütztnurTextnachrichten,dieerautomatischaufderWebseite
einblendenkann.WenneinQR-Codegescanntwurde,wirddieAdresseextrahiertundaufdem
SmartphonesowieauchaufderWebseiteangezeigt.DieAdresselässtsichdannauchkopieren.
SonstistdieUnterscheidungderEinzahlungsscheineimmernochdurchdenBetragmöglich.
5.3.3 Web
3
Anforderung
Priorität
Erfüllt
3.1
DieWebseiteermöglichtdenUseCase“SpäterBezahlen”.(Der
UserkannmehrereEinzahlungsscheinescannenunddiesein
einerListeaufderWebseiteansehen.)
Muss
Ja
3.1.1
EsgibtdieMöglichkeiteinzelneEinzahlungsscheinezum
Löschenzumarkieren.InderNächstenSessionwerdendie
Datenautomatischgelöscht.
Muss
Nein
Seite11von33
3.2
NeugescannteEinzahlungsscheineerscheinendirektaufder
Webseite.GelöschtewerdenautomatischausderWebseite
entferntwerden.
Soll
Teilweise
DasUmsetzeneinerLöschfunktionaufderWebseitewurdeauszeitlichenGründenaufgegeben.Es
gabausserdemkeineMöglichkeitvomWebservereineAntwortzusenden,umdieDatendann
effektivzulöschen.
DieAndroidVersionerfülltdiefunktionaleAnforderung3.2,dassUpdatesautomatischaufder
Webseiteangezeigtwerden.DieiOSVersionhateinenAktualisierenButton,denderBenutzerbei
geändertenDatenbetätigenmuss.DasliegtandemiOSWebserverFramework,daskeine
automatischenUpdatesermöglicht.
DieAuswertungderfunktionalenAnforderungenzeigt,dassderAufwandfürdieUmsetzung
unterschätztwurde.DieMöglichkeitenderBibliothekenwurdenzuweniggenauuntersucht.
TrotzdemkonntedieGrundfunktionalitätmiteinerAppdieDatenspeichernundlöschenkannund
einemWebserver,deralleDatenineinerListeanzeigenkann,erreicht.
5.3.4 AbgewieseneFeatures
InputStick
DerInputStickistzurÜbertragungaufgrundvonPreisundAufwandeheruninteressantfür
Privatpersonen.GesprächemitbetroffenenPersonenausKMUshabenergeben,dassderexterne
KaufeinesInputSticksehernichtinFragekommt.Gründehierfürwaren:
•
•
•
Fürca.150CHFstatt40CHFkönnenauchgleichdirektbewährteScannergekauftwerden.
VieleZahlungsvorgängewerdenbereitsmitE-Rechnungengelöst.
DieBeschreibung,wieeinsolcherInputStickzumEinsatzkäme,wurdenichtverstanden.Eine
ErklärunginnerhalbderApp–stattimDialog–wärenochschwererverständlich.
EinFallbeispiel,woeinevergleichbareAppausprobiertwurde,führtezueinerzukomplizierten
Konfiguration.DieVerwendungderAppwurdezuumständlich.DasBestelleneinesInputSticksund
danndaraufzuwarten,wirktabschreckend.
FürdenwohlgrösserenAnteilanBenutzern,welchenurdenWebserverzurVerbindungsherstellung
nutzenwollen,wirktdasKonzeptderAppverwirrend.DieÜberlegung,dassunterUmständenetwas
dazugekauftwerdenmüsste,schrecktab.DieEntwicklungeinermöglichstkomfortablenLösungvia
WebserverundeineansprechendeGestaltungstanddeshalbfürunsimVordergrund.
5.4 Nicht-funktionaleAnforderungen
Dienicht-funktionalenAnforderungenwurdennachISO/IEC9126entwickelt.
5.4.1 Funktionalität
1
Anforderung
Priorität
Erfüllt
Seite12von33
1.1
Richtigkeit
Muss
Ja
DieAnwendungsolltebeieinemabgeschlossenenScankeine
falschenErgebnisseliefern.DieswirdmitHilfederPrüfsumme
vonESRsundentsprechendenUnitTestssichergestellt.
1.2
Sicherheit
DereinzigerelevanteSicherheitsaspektbetrifftdieHTTPVerbindungzwischenBrowserundWebserverinnerhalbder
Applikation.ÜberdieseVerbindungwerdendieerfasstenWerte
derEinzahlungsscheineübermittelt.DieseInformationen
könntenabgefangenwerdenwennmansichimselbenWLANNetzwerkbefindet.AufgrundderKostenfüreinentsprechendes
SSLZertifikat–umdieHTTPS-Verbindungzuermöglichen–und
demUmstand,dassRechnungennormalerweisekeine
sicherheitsrelevantenInformationenenthalten,isteineHTTPVerbindungausreichend.Soodersokannaufdiegescannten
DatenzugegriffenwerdenwennmansichimselbenWLANNetzwerkbefindetunddielokaleIPdesmobilenGerätskennt.
1.3
Ordnungsmässigkeit
Muss
Ja
Muss
Ja
DieRichtlinienfürdiejeweiligenAppStores–AppleAppStore
undGooglesPlayStore–werdeneingehalten.
DieRichtlinienfindensichimAnhangunterExterne
Spezifikationen/RichtlinienderStores.
FüriOS:AppStoreRichtlinien.pdf
FürAndroid:GooglePlayRichtlinien.pdf
DiefürdieEasyPayrelevantenRichtlinienwurdenimDokument
ÜbersichtderRichtlinien.pdfinFormeinerCheckliste
zusammengefasst.
1.4
Konformität
DieStandards–sowohlfürdieaktuellenalsauchdieneuen
Einzahlungsscheine–findensichimAnhangunterExterne
Spezifikationen/Einzahlungsscheine.
FürdieStandardsderaktuellen,orangenEinzahlungsscheine
haltenwirunsandiehierdefiniertenVorgaben:ManualISR.pdf.
Seite13von33
FürdieStandardsdes2018neueingeführten
Einzahlungsscheinshaltenwirunsandiehierdefinierten
Vorgaben:Mass-undGestaltungsmusterES.pdf,sowiedenhier
definiertenFahrplan:Fahrplan–MigrationES.pdf.
5.4.2 Zuverlässigkeit
2
Anforderung
Priorität
Erfüllt
2.1
Reife
Muss
Teilweise
Muss
Ja
DieAppdarfinkeinemderdefiniertenTestsabstürzenundauch
sonstkeineBugsaufweisen.
2.2
Fehlertoleranz
FehlerhafteDatenkönnennurbeimScanprozessentstehen.
UnterschlechtenBedingungenwieschwachemLichtwerdenbei
derOCRmehrBilderfalsch„gelesen“.Eswirdallerdingsbei
jedemScananhandderPrüfsummederCodierzeileüberprüft,
obderEinzahlungsscheingültig.NurfallsderEinzahlungsschein
gültigist,wirdergespeichert.
DiebeidenAppshabendieAnforderungderReifenochnichterfülltdanochdiverseBugsvorhanden
sind.DiesesindimKapitelSchlussfolgerungenaufgeführt.Abstürzekonntenbeidendurchlaufenen
Testsallerdingskeineverzeichnetwerden.
5.4.3 Benutzbarkeit
3
Anforderung
Priorität
Erfüllt
3.1
Erlernbarkeit
Soll
Ja
Muss
Ja
DieAppunterstütztdenBenutzerbeimVerständnisder
ÜbertragungsmöglichkeitenindemeinmaligHilfestellungen
eingeblendetwerdensobalddasentsprechendeVerständnis
benötigtwird(imGegensatzzueinemeinzelnenTextblock,der
allesbereitsvorderNutzungderApperklärt).Die
HilfestellungensollenauchnochnachdemerstenLesen
verfügbarfürdenBenutzersein.
3.1.1
Konformität
Seite14von33
DasDesignderAppswirdkonformzudenDesignGuidelinesder
jeweiligenPlattformenentwickelt.
iOS:
https://developer.apple.com/library/ios/documentation/UserEx
perience/Conceptual/MobileHIG/
Android:https://developer.android.com/design/index.html
5.4.4 Effizienz
4
Anforderung
Priorität
Erfüllt
4.1
Zeitverhalten
Muss
Ja
DerScanprozesssollbeioptimalenBedingungen
(leistungsfähigeKamera,guteLichtverhältnisse)nichtlängerals
zweiSekundedauern.BeisehrschlechtenBedingungen
(schwacheKamera,schlechte–abernochakzeptable-
Lichtverhältnisse,Smartphonenichtsenkrechtüber
Einzahlungsschein)darfderScanprozessnichtlängeralsfünf
Sekundendauern.DieZeitdauerdesScanprozessesbeginnt,
sobalddieCodierzeilefokussiertistundendetsobalddie
Codierzeileerkanntwurde.
DieTestergebnissesindimKapitelTestingdokumentiert.
5.4.5 Wartbarkeit
5
Anforderung
Priorität
Erfüllt
5.1
Analysierbarkeit
Soll
Nein
Muss
Ja
DieAppspeichertdetaillierteLog-Einträge,welchezuDebugZweckenverwendetwerdenkönnen.
5.2
Testbarkeit
UnitTestsbeschränkensichaufdiePaymentSlipKlassen.
DadieFunktionstüchtigkeitderAppstarkvonäusseren
Umständen(Hardware,Umgebung)abhängigist,wirdverstärkt
auffunktionaleundnicht-funktionaleTestsgesetzt.Weitere
Seite15von33
InformationensindinderTestspezifikationzufinden.
5.4.6 Übertragbarkeit
6
Anforderung
Priorität
Erfüllt
6.1
Installierbarkeit
Kann
Nein
Muss
Ja
Muss
Ja
DerInstallationsprozesswirddurchdieAppStoresder
jeweiligenAppsvorgenommen.Ansonstenmussnurein
BrowseraufdemPCdesBenutzersinstalliertsein.
6.2
iOS
EswirdiOS8.0vorausgesetzt.DieAppwirdmitSwift
programmiert,welchesmitiOS8eingeführtwurde.Umauch
tiefereiOS-Versionenzuunterstützenmüssenfürverschiedene
FunktionenSpezialbehandlungeneingesetztwerden.Stand
14.12.15verwendennur8%derAppStoreUsereinetiefereiOSVersionalsiOS8(https://developer.apple.com/support/appstore/).AusserdemkonntenkeineTestgerätemiteinertieferen
iOS-Versionorganisiertwerden.
6.3
Android
VorausgesetztwirdAPILevel15(Android4.0.3IceCream
Sandwich).FürdieseMindestversionsindvierverschiedene
Testgeräte,mitunterschiedlicherCPULeistung,vorhanden.Nur
4%allerGeräte,diedenGooglePlayStorenutzenhabeneinen
tieferenAPILevelalsLevel15.
DasDeploymentüberdieAppStoreswarausorganisatorischenGründennichtmöglich,hätteaber
auchzueinerweiterenZeitbelastunggeführt.
5.5 GUI
EinSchwerpunktdesProjektswardieEntwicklungeineransprechendenBenutzerführung.ImAnhang
befindetsichimOrdnerUser-CenteredDesigneineDokumentationzumEntstehungsprozessderGUI.
ImDokumentGUIfinalfindetsichdieaktuelleVersionderGUI.
HiereingroberÜberblicküberdieeinzelnenElemente.
Seite16von33
5.5.1 Android
CaptureScreen
PayScreen
5.5.2 iOS
CaptureScreen
Seite17von33
PayScreen
5.5.3 WebClient
AnsichtimBrowser
Seite18von33
6 TechnischeAspekte
6.1 Risikomanagement
6.1.1 RisikoanalysederElaboration-Phase
UnsereRisikoanalysevom30.09.2015.
Risiko
1. IngewissenFällenzu
langsameScans.
Massnahme
EintrittsSchaden
wahrscheinlichkeit
OptimierungmitOpenCV-
Bildgrösseanpassen,Bild
zuschneiden,
Schwellenwertverfahren,
Schrifttraining.
Wahrscheinlich
Hoch
UmdiesesRisikozubeseitigenwurdesehrvielZeitaufgewendet.EsgibtvieleMöglichkeitendieses
Risikoanzugehen.DerAufwandwarschwereinzuschätzenundstimmtenichtimmermitdemErtrag
überein.ZumBeispielwurdeeineOptimierungderBilderdurchOpenCV,miteinem
Schwellenwertverfahren,inBetrachtgezogen.DaTesseractselbereinensolchenFiltereinsetzt,wäre
dasErgebnisnichtmitSicherheitbessergewesen.UmdieszutestenwarschlichtkeineZeit
vorhanden.DasRisikoderzulangsamenScanskonntedannerfolgreichmitdemSchrifttrainingfür
Tesseractbehobenwerden.DetailshierzusindimKapitelOCRbeschrieben.
2. Fehlplanungaufgrundder
LernenvorderEntwicklung
Wahrscheinlich
Gross
EinarbeitunginiOS
Technologien
EingrossesRisikowardieganzePlanungeinzuhalten,ohnerichtigeinschätzenzukönnen,wieviel
ZeitdieTasksfürdieUmsetzungbrauchen.DashatdiePlanungsphaseerheblicherschwert.Eswar
niesicher,obunsereZielewirklichrealistischsind.UnddashatsichimganzenProjektbemerkbar
gemacht.DieiOSTechnologienmusstenwährenddemProjekterlerntwerden.
3. FehlerhafteScans.
TestderKorrektheitderScans Gering
durchführen.
Hoch
DasRisikozudenfehlerhaftenScanskonnteebenfallsgeklärtwerden.MitdemrepetitivemTesten
derAppinderEntwicklungsphase,wurdendieZeichenstetskorrekterkannt.
6.1.2 RisikoanalysederConstruction-Phase
Risiko
1. TesseractBugkannnicht
rechtzeitigbehoben
werden.
Massnahme
EintrittsSchaden
wahrscheinlichkeit
FunktionenderAppkürzen,
damitsierechtzeitig
veröffentlichtwerdenkann
Wahrscheinlich
Gross
Seite19von33
WährendderEntwicklungistunglücklicherweiseeinProblemmitderTesseractBibliothek
aufgetreten.DieAppliesssichnichtmehrstartenundderGrundwarlangenichtklar.Mitgrossem
AufwandkonntenwirdenFehlerunddasRisikobeheben.
2. DieWebserverfürAndroid
Keine.
Wahrscheinlich
Mittel
undiOSsindzuverschieden,
waszueinerhöheren
Entwicklungszeitführt.
HieristdasProblemeingetroffenundführtezueinemweiterenRisiko(Nummer6).DeriOS
WebserverunterstütztekeinedirektenUpdatesderWebseite.UnsereLösungwares,beider
WebseitederiOSAppeinenAktualisierenButtoneinzubauen.
3. Webserverkannnicht
rechtzeitigfertiggestellt
werden
LöschfunktionderWebseite
streichen.
Wahrscheinlich
Gering
EineListemitLinksanstatt
eineraufklappbarenListemit
Einzahlungsscheinen
darstellen.
AusZeitlichenGründenhabenwirdieListemitdenLinksumgesetzt.DieLöschfunktionwirdnurnoch
inderAppangeboten.VonderFunktionalitätherhatsichabernichtvielgeändert.DieWebseiteist
immernochsehrübersichtlich.EsgibteinEinzahlungsscheinderseineWerteändern,sobaldauf
einenLinkgeklicktwurde.DieListemitdenLinkswirdnurangezeigt,wennmehralsein
Einzahlungsscheinvorhandenist.
4. DieAppswerdennicht
rechtzeitigimStore
freigeschaltet.Die
Überprüfungdauertvielzu
lange.
Store-Richtliniengenau
überprüfenundumsetzen.
FokusaufdieiOSApplegen–
dadieVeröffentlichungauf
demApplestoreviellänger
dauert.
Wahrscheinlich
Gross
FürdieZeitvomHochladenbiszureffektivenVeröffentlichunghabenwirzweiWocheneingeplant.
UmdiesesRisikozukontrollierenmusstenwirunsereZeitressourcenumverteilen.Die
VeröffentlichungderAppwareinklaresZieldieserStudienarbeit.AusdiesenGründenwolltenwirdie
EntwicklungiOSAppsoschnellwiemöglichbeendenundzusammenamWebserverundder
Webseitearbeiten.Dieshatauchgeklappt,jedochstelltesichimspäterenVerlaufdesProjektes
heraus,dassdieVeröffentlichungaufdenStoresorganisatorischnichtsoeinfachmöglichist.Die
HerausgabeüberdieHSRnichtmöglich.EslagandenAnforderungenvonAppleundandenKosten.
SomitfieldasZieldieAppszuveröffentlichenweg.
Seite20von33
6.2 Cross-Platform
6.2.1 UrsprünglicherPlan
UnserersterGedankewaresdieAppsseparatzuentwickeln.Trotzdemsuchtenwirnacheiner
einfacherenMöglichkeitundentdecktendannXamarinStudio.DerVorteillagdarin,dasssogardie
GUImitXamarin.Formsnureinmalentworfenwerdenmüsste.Gleichzeitigkamenabergrössere
Problemedazu.
Xamarinistkostenpflichtig.FallskeinSupportmehrangebotenwird,kämeeszueinemProblem.
DenndieAppsollteerweiterbarundgutzuWartensein.EsmüsstenneueFrameworksfürC#
gefundenwerden.UndderbestehendetechnischePrototypmüssteportiertwerden.Dasmachtvom
AufwandherkeinengrossenUnterschiedzueinerEntwicklungeinerzusätzlicheniOSApp.
6.2.2 Entscheid
AusdenProblemen,diemitXamarinentstandenwären,habenwirunsdochfüreinzelnenativeApps
(AndroidundiOS)entschieden.DieFrameworkskönnensogrösstenteilsübernommenundoptimiert
werden.
6.3 Architektur
6.3.1 Domainmodell
DasDomainmodellfürdieEinzahlungsscheinesiehtfolgendermassenaus.DieStrukturisteinfach
aufgebaut.DerjeweiligeScannererzeugtdaspassendePaymentSlip-Objekt.
Seite21von33
6.3.2 ScanprozessundWebserverKommunikation
Seite22von33
6.4 OCR
6.4.1 Ausgangslage
Unsistaufgefallen,dassdieZeitfürdasScannen,vomtechnischenPrototyp,sehrunterschiedlichist.
TeilweisedauernScansgerademal2Sekunden-manchmaldauertesaberauchbiszu8Sekunden.
AlsklareerstePrioritätwurdedieScangeschwindigkeitvomTesseract1OCRgesetzt.UnserZielwares
alsodieScanzeitenzuverbessernundkonstantzuhalten.Dafürmusstenwirabschätzen,wasinder
vorhandenenZeitüberhauptumsetzbaristundobesschlussendlichdieScanZeitverringert.
EsgabvieleverschiedeneMöglichkeiten.ZumBeispielwäreOpenCV2,eineOpen-SourceBildbearbeitungssoftware,eineOptiongewesen.BeimRecherchierennachBeispielprojektenwurde
OpenCVoftinVerbindungmitTesseractverwendet.Nurwaresnichtsicher,obdergrosseAufwand
auchzueinemgutenErgebnisführenwürde.Tesseracthatsichweiterentwickeltundnutztnun
selberSchwellenwertverfahren(Otsuthresholding)umBinärbilderzuerstellen.
TrotzdemhabenwirabersimplereundwenigeraufwendigereBildbearbeitungen,wie
Graustufenfilter,ausgetestet.EsgababerkeineUnterschiedeindenScanzeiten.
6.4.2 Massnahmen
AlsletzteMöglichkeitbotsichdasSchrifttrainingmitderCodezeilen-SchriftfürTesseractan.Undin
derMachbarkeitsanalysewurdedasSchrifttrainingalssehraufwendigeingestuft.Glücklicherweise
hatabernurdasEinlesen,wieguteTrainingsdatenerstelltwerdenkönnen,Zeitgebraucht.Das
TrainingselberwarschnellerledigtundbrachteaucheineVerbesserungderScanzeiten.Eswurden
hatauchdievorherfehlgeschlagenenScansbehoben.DennseltenwurdenCodierzeilengarnicht
erkannt.
UmdasTrainingmitderCodierzeilen-SchriftdurchzuführenwurdedieSchriftartOCR-B1verwendet.
MitdemjTessBoxEditor3wurdedasBoxfileerzeugt.DieseDateilegtdenrechteckigenRahmen,der
geradedasganzeZeichenenthältunddessenWertfest.FürguteErgebnissesolltejederWerteines
ZeichensmindestensfünfMal,inzufälligerReihenfolge,zumentsprechendenoptischenZeichen
gemapptwerden.AlsohabenwirneunCodierzeilenineinerTextdateimitderOCR-B1Schrift
aufgelistetunddasBoxfileerstellt.Trainingsdaten,dieauseinerTextdateimitmehralsneun
Codierzeilenerstelltwurden,brachtenkeinebesserePerformance.AusdemBoxfilekonntenwirdie
gesamtenTrainingsdatenmitdemSerakTesseractTrainer4V0.4erstellen.DieseSoftwareerzeugt
einenContainer.DieSpracheinstellungvonTesseractmussnurnochaufdenDateinamendes
Containersgesetztwerden.
6.4.3 TechnischerPrototypverglichenmitSmartIDPay
DiegenauenTestergebnissebefindensichimAnhangunterTesting/OCR.
1
https://code.google.com/p/tesseract-ocr/
http://opencv.org/
3
http://vietocr.sourceforge.net/training.html
4
https://code.google.com/p/serak-tesseract-trainer/
2
Seite23von33
TestergebnissebeiTageslicht
OpenSourcetess-two
OpenSourcetess-two
OCRvonSmartIDPay
EasyPay–technischer
Prototyp
ScanzeiteninSekunden
EasyPaymitOCRTrainingsdaten
ScanzeiteninSekunden
SmartIDPay
ScanzeiteninSekunden
Durchschnitt
2.77 Durchschnitt
1.78 Durchschnitt
0.4
Testergebnissebeischlechtem,künstlichemLicht
OpenSourcetess-two
OpenSourcetess-two
OCRvonSmartIDPay
EasyPay–technischer
Prototyp
ScanzeiteninSekunden
EasyPaymitOCRTrainingsdaten
ScanzeiteninSekunden
SmartIDPay
ScanzeiteninSekunden
Durchschnitt
3.94 Durchschnitt
2.55 Durchschnitt
1.07
JedeZeilerepräsentierteinenEinzahlungsscheinmiteinereinzigartigenCodierzeile.Die
Erkennungszeitenliegenjetztmeistenszwischen1.5bis2Sekunden.Dieserfülltunsere
nichtfunktionalenAnforderungen.GemessenwurdedieZeitwieesimDokumentimAnhang,unter
Testing/NichtfunktionaleTests,beschriebenwurde.
6.5 Frameworks
6.5.1 Android
6.5.1.1 OCR
DieTexterkennungwirdwievomtechnischenPrototypdurchdasFrameworktess-two5erledigt.Es
isteineTesseract-PortierungfürAndroid.
6.5.1.2 WebServer
DertechnischePrototypwurdemitNanoHTTPD6umgesetzt.DieseImplementationwurdefortgesetzt
undaufunsereAnforderungenangepasst.
6.5.1.3 QR-Code
ZurAuswahlstandenZBar7undZXing8.ZweibekannteProjekte,dieunserenAnforderungen
entsprechen.
5
6
https://github.com/rmtheis/tess-two
https://github.com/NanoHttpd/nanohttpd
Seite24von33
Entscheidung
WirhabenunszuerstfürZXingentschieden,obwohldieImplementationeheraufwendigistundes
keinegleicheLösung,wiefürdieiOSVariantegab.ZBaristausserdemveraltet.
DerVorteilvonZXingist,dassessichdirektindieAppintegrierenlässt.Ohne,dassderBenutzereine
Appinstallierenmussumdiesedannaufzurufen.WeitereVorteilewaren,dassderScanner
kontinuierlichverbessertwurdeunddieDokumentationausführlichvorhandenist.
ImVerlaufvomProjektstelltesichheraus,dassdieIntegrationetwaszuvielZeitbenötigte.Dasind
wiraufZXingembedded9gestossen.DiesesFrameworkliesssichdurchdasAnpassenvomBuildfile
ganzeinfachintegrieren.
6.5.2 iOS
6.5.2.1 OCR
FürdieOCRwurdedasFrameworkTesseract-OCR-iOS10verwendet,welchesebenfallseine
PortierungvonTesseractist.DieLibraryistinObjective-Cgeschrieben,kannaberauchmitSwift
verwendetwerden.EshandeltsichhierbeiumdieeinzigenochaktuellePortierungvonTesseractfür
iOS.
6.5.2.2 WebServer
EswurdendreiFrameworksuntersucht:GCDWebServer11,CocoaHTTPServer12undSwifter13.
CocoaHTTPServeristallerdingsveraltetundwirdauchnichtmehraktualisiert.
GCDWebServersiehtansprechendaus,istaberinObjective-Cgeschriebenundwarschwierigzu
interpretieren.
SwifteristinSwiftgeschrieben,sehrsimpelgehaltenundhateineaktiveCommunity.
SchlussendlichhabenwirunsfürSwifterentschiedendaeseinfacherzuintegrierenwarals
GCDWebServer.Leiderwurdeerstzuspätbemerkt,dassSwifterdiegängigeSocket-Kommunikation
nichtunterstütztundderClientnichtvomWebserverausaktualisiertwerdenkann.Könntenwiruns
nochmalsentscheiden,würdeGCDWebServergewählt.
6.5.2.3 QR-Code
QR-CodeErkennungistiniOSbereitsintegriert(AVFoundation14).Esmusstekeinexternes
Frameworkgesuchtwerden.
7
https://github.com/ZBar/ZBar
https://github.com/zxing/zxing
9
https://github.com/journeyapps/zxing-android-embedded
10
https://github.com/gali8/Tesseract-OCR-iOS
11
https://github.com/swisspol/GCDWebServer
12
https://github.com/robbiehanson/CocoaHTTPServer
13
https://github.com/glock45/swifter
8
Seite25von33
7 Testing
7.1 FunktionaleTests
UmdieFunktionalitätzutestenwirdeinTestablaufspezifiziert,dersichausdenUseCasesableitet.
DiedefiniertenTestläufewerdenmitallenzurVerfügungstehendenTestgerätendurchlaufen.Jeder
TestwirdmitBestanden,BestandenmitEinschränkungen,oderFehlgeschlagenbewertet.Wennbei
einemTestunerwartetesVerhaltenauftritt,wirddiesesalsKommentarerfasst.
DieTestspezifikationistfolgendermassenaufgebaut.
7.1.1 StartenderApp
Beschreibung
DieAppwirdunterverschiedenenStartbedingungengestartet.
Vorbedingungen
DerBenutzerbefindetsichaufdemHomeScreen.
DieaktuelleAppVersionistinstalliert.
DieAppwurdenochniegestartet.
Schritte
ErwartetesResultat
1.
2.
3.
4.
5.
AufAppIcontippen
ZuCaptureModusQR-Codewechseln
Appschliessen
AufAppIcontippen
ZuCaptureModusCodierzeileundwiederzurückzuQRCodewechseln
WährenddemLadenzeigtdieAppeinenLaunchScreen.
NachdemLadenzeigtdieAppdenCaptureScreen.
Nachdem1.SchrittbefindetsichderCaptureScreenim
Codierzeilen-Modus.
Nachdem2.SchrittwirddemBenutzereinHinweiszumQR-Code
angezeigt.
Nachdem4.SchrittbefindetsichderCaptureScreenimQR-CodeModus.
Nachdem5.SchrittwirdkeinHinweiszumQR-Codemehrangezeigt.
7.1.2 ScannenmitCodierzeile
Beschreibung
EinESRmitCodierzeilewirderfasst.
Vorbedingungen
DerCaptureScreenbefindetsichimCodierzeilen-Modus.
14
https://developer.apple.com/av-foundation/
Seite26von33
Schritte
ErwartetesResultat
1. DieCodierzeilemitdemtransparentenFensterimCapture
Screenfokussieren
DieCodierzeilewirdinnerhalbkurzerZeit,nachdemder
Kamerafokusausgerichtetwurde,erkannt.
DieAppwechseltzumPayScreen.
DererfassteEinzahlungsscheinwirdinderListeangezeigtundwurde
gespeichert.
7.1.3 ScannenmitQR-Code
Beschreibung
EinEinzahlungsscheinmitQR-Codewirderfasst.
Vorbedingungen
DerCaptureScreenbefindetsichimQR-Code-Modus.
Schritte
ErwartetesResultat
1. DieKameraüberdenQR-Codebewegen
DerQR-CodewirdinnerhalbkurzerZeit,nachdemderKamerafokus
ausgerichtetwurde,erkannt.
DieAppwechseltzumPayScreen.
DererfassteEinzahlungsscheinwirdinderListeangezeigtundwurde
gespeichert.
7.1.4 DetailseinesEinzahlungsscheinsansehen
Beschreibung
DetailseinesEinzahlungsscheinsansehen
Vorbedingungen
DieAppzeigtdenPayScreen.
EswurdemindestenseinEinzahlungsscheinerfasst.
Schritte
ErwartetesResultat
1. AufInfoButtonimListeneintrageinesEinzahlungsscheins
tippen
DieAppzeigtdemBenutzeralleüberdenEinzahlungsschein
erfasstenInformationenan
7.1.5 ManuellesWechselnzwischenScreens
7.1.5.1 iOS
Beschreibung
ÜberdieTabBarwirdzwischenCaptureundPayScreengewechselt.
Vorbedingungen
DieAppzeigtdenCaptureScreen.
Schritte
1. InderTabBaraufBezahlentippen
2. InderTabBaraufErfassentippen
Seite27von33
ErwartetesResultat
Nachdem1.SchrittzeigtdieAppdenPayScreenan.
Nachdem2.SchrittzeigtdieAppdenCaptureScreenan.
7.1.5.2 Android
Beschreibung
ÜberdenNavigationSpinnerinderActionBarwirdzwischen
CaptureundPayScreengewechselt.
Vorbedingungen
DieAppzeigtdenCaptureScreen.
Schritte
1. ImNavigationSpinneraufÜbersichttippen
2. ImNavigationSpinneraufErfassentippen
Nachdem1.SchrittzeigtdieAppdenPayScreenan.
ErwartetesResultat
Nachdem2.SchrittzeigtdieAppdenCaptureScreenan.
7.1.6 MitBrowseraufWebserverzugreifen
Beschreibung
MitBrowseraufWebserverzugreifen
Vorbedingungen
SmartphoneundPCClientsindzumselbenWLAN-Netzwerk
verbunden.
DieAppzeigtdenPayScreen.
BrowseraufPCClientläuft.
EswurdenmindestenszweiEinzahlungsscheineerfasst.
Schritte
ErwartetesResultat
1. AufInfoButton,dernebenderIPAdresseangezeigtwird,
tippen
2. Erklärungwegtippen
3. ÜberdenBrowseraufdieimPayScreenangezeigteIP
Adressezugreifen
Nachdem1.SchrittwirdeineErklärungangezeigt,diedie
VerbindungsherstellungzwischenClientundAppbeschreibt.
Nachdem3.SchrittwirdimBrowserdieClientViewangezeigt.Dabei
wurdedieAnsichtdesEinzahlungsscheinsmitdenWertendes
zuletztgescanntenEinzahlungsscheinsaufgefüllt.Unterhalbdieser
AnsichtfindetmaneineListemitallengespeicherten
Einzahlungsscheinen.
Der3.SchrittkannauchausgeführtwerdenwenndieAppsichim
CaptureScreenbefindet.
Seite28von33
7.1.7 AustauschzwischenAppundClient
7.1.7.1 iOS
Beschreibung
MitderAppwerdenneueEinzahlungsscheineerfasstund
bestehendegelöscht.DerClientsolldabeiaktuellgehaltenwerden.
Vorbedingungen
DieVerbindungzwischenAppundClientisthergestellt.
DieAppzeigtdenCaptureScreen.
Schritte
ErwartetesResultat
1. EinzahlungsscheinmitderApperfassen
2. ImBrowseraufAktualisierenklicken
3. DenvorherigerfasstenEinzahlungsscheininderApplöschen
4. ImBrowseraufAktualisierenklicken
Nachdem2.SchrittstelltdieAnsichtdesEinzahlungsscheinsim
BrowserdensoebenerfasstenEinzahlungsscheindar.Ausserdem
wurdedieListeumdenentsprechendenEinzahlungsschein
erweitert.
Nachdem4.Schrittistderim1.SchritterfassteEinzahlungsschein
wederinderListenochinderAnsichtdesEinzahlungsscheinszu
finden.
7.1.7.2 Android
Beschreibung
MitderAppwerdenneueEinzahlungsscheineerfasstund
bestehendegelöscht.DerClientsolldabeiaktuellgehaltenwerden.
Vorbedingungen
DieVerbindungzwischenAppundClientisthergestellt.
DieAppzeigtdenCaptureScreen.
Schritte
ErwartetesResultat
1. EinzahlungsscheinmitderApperfassen
2. DenvorherigerfasstenEinzahlungsscheininderApplöschen
Nachdem1.SchrittstelltdieAnsichtdesEinzahlungsscheinsim
BrowserdensoebenerfasstenEinzahlungsscheindar.Ausserdem
wurdedieListeumdenentsprechendenEinzahlungsschein
erweitert.
Nachdem2.Schrittistderim1.SchritterfassteEinzahlungsschein
wederinderListenochinderAnsichtdesEinzahlungsscheinszu
finden.
7.1.8 VerwendungdesClients
Beschreibung
DieFunktionenimBrowserdesClientswerdenverwendet.
Seite29von33
Vorbedingungen
DieVerbindungzwischenAppundClientisthergestellt.
EswurdenmindestenszweiEinzahlungsscheineerfasst.
DerzweitobersteEintragderListederEinzahlungsscheineenthält
einen(neuen)EinzahlungsscheinmitallenerfassbarenWerten.
Schritte
ErwartetesResultat
1. DenzweitoberstenListeneintragunter„Erfasste
Einzahlungsscheine“anklicken
2. FüralleerfasstenWertewiederholen:
a. AufdenerfasstenWertklicken
b. Überprüfen,obdieZwischenablagemitdem
erfasstenWertübereinstimmt
Nachdem1.SchrittwerdensämtlicheWertedeszweiten
EinzahlungsscheinsinderAnsichtdesEinzahlungsscheinsdargestellt.
Bei2.b.stimmendiebeidenWerteimmerüberein.
7.1.9 Testergebnisse
7.1.9.1 iOS
FolgendeProblemesindaufgetreten:
•
ScannenmitCodierzeile
o DieCodierzeilewirdnurgescannt,wennmanuellindenCodierzeilen-Modus
gewechseltwird.BeiinsgesamtsechsTestsmitiOS-Gerätenhabenwirfestgestellt,
dassdiesesProblemnurbeidendreiGerätenunteriOS9auftritt.
o DasGeräuschdesKameraauslöserswirdimmerabgespielt.DasGerätmussauf
lautloseingestelltsein.
•
MitBrowseraufWebserverzugreifen
o ImHSR-NetzwerkhatdieVerbindungsherstellungnichtgeklappt.
7.1.9.2 Android
FolgendeProblemesindaufgetreten:
•
StartenderApp
o DerLetzteScan-ModuswirdmitdemSchliessenderAppnichtgespeichert.DieApp
startetimmermitdemCodierzeilen-Scanner.
•
DetailseinesEinzahlungsscheinsansehen
o DerFall,dassderEinzahlungsscheinkeinenBetragliefert,wurdenichtbehandelt.
Seite30von33
DievollständigenErgebnisse,miteinergenauerenBeschreibungderProbleme,befindensichim
DokumentFunktionaleTests–BerichtimAnhangunterTesting.
7.2 NichtfunktionaleTests
BeidenTestswurdediegeprüftobdieAnforderungderScanzeiteingehaltenwird.
Geräte
DurchschnittszeitbeiTageslicht Durchschnittszeitbei
schwachemLicht
iPhone5
1.5
2.6
SonyXperiaT3
1.5
2.5
LGNexus5
1.4
2.5
SamsungGalaxyS4
1.5
2.4
SamsungGalaxyNexus
1.8
2.7
DieausführlichenTestsbefindensichimAnhangunterTesting/NichtfunktionaleTests.
7.3 Unit-Tests
UnitTestssindnurinderderPaymentSlipKlassenötig.DawerdendieChecksumme,dieValidation
vonWertenundWährungstypen,dasParsingunddieFormatierungvonWertenfüralle
erforderlichenTypenvonEinzahlungsscheinengeprüft.
Seite31von33
8 Schlussfolgerungen
VerglichenmitanderenCodierzeilen-ScannernaufdemMarkt,sindunsereScanzeitennochzu
langsam.WieschoninderMachbarkeitsanalysefestgestellt,müsstedazueinebessereOCR-Lösung
verwendetwerden.MöglicheOCR-AlternativensindinderMachbarkeitsanalyseevaluiertworden.
WaswiraufjedenFallerreichthabenisteineintuitiveundbenutzerfreundlicheGUI.Vergleichbare
AppssinddurchdievielenInformationenundFunktionenunübersichtlich.
InternationalisierungwurdeaufDeutschundEnglischumgesetzt.DieAppSmartIDPaybietet
zusätzlichnochFranzösischan.EinQR-CodeScannerwirdhingegennochvonkeinerAppaufdem
Marktangeboten.
DieÜbertragungunsererDatenmitdemWebserveristvieleleganter,alsdieÜbertragungperE-Mail.
NurdieBezahlungperDatentransfer(nächstesKapitel)wirdnichtunterstützt.DieseFunktion
einzubindenwärefürdasweitereVorgehengeplant.
ÄndernwürdenwirdieLösungdesWebservers.LeiderkonntenfüriOSundAndroidnichtdie
gleichenFrameworksverwendetwerden.DadurchunterscheidensichauchdieFunktionenundwie
dieWebseitezubedienenist.EsmüssteeineeinheitlicheLösunggefundenwerden.
8.1 Nochzubehandeln
8.1.1 BestehendeBugs
DieApps–sowohlfürAndroidalsauchiOS–enthaltennochBugs,welchebehobenwerdenmüssten.
EineAuflistungdieserBugsfindensichindenTestergebnissenderfunktionalenTests.
8.1.2 FutureWork
8.1.2.1 ZahlungperDatentransfer(DTAundOPAE)
ImE-BankinglassensichRechnungendirektbezahlen,wennsiealsDateiimDTA-oderOPAE-Format
hochgeladenwerden.
Vorteile:
•
•
•
Praktisch,auchfürmehrereRechnungen
AppsaufdemMarktbietendiesebenfallsan.DieKonkurrenzlöstdasProblemder
DateiübertragungperE-Mail.
WirdvonallenbekanntenBankenunterstützt
Nachteile:
•
•
WeitereDatenmüssenaufSmartphonestattimE-Bankingerfasstwerden(Kontoinhaber:
Vorname,Name,PLZ,Ort,IBAN/Empfänger:Name,Adresse,PLZ,Ort)
Relativunbekannt–demBenutzermussgeholfenwerden.
Seite32von33
Glossar
AppleAppStore
ApplesVertriebsplattformfüriOSApps(u.a.)
CaptureScreen
ViewinnerhalbderApp,inderneueEinzahlungsscheineerfasstwerden
können
ESR
EinzahlungsscheinmitReferenznummer
GooglePlayStore
GooglesVertriebsplattformfürAndroidApps(u.a.)
IFS
InstitutfürSoftwarederHSR
OCR
OpticalCharacterRecognition
PayScreen
ViewinnerhalbderApp,welchedieÜbersichtüberalleerfassten
Einzahlungsscheineanzeigt
Seite33von33

Documentos relacionados