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