Bachelor in de toegepaste informatica
Implementatie van Telbase in C#
CAMPUS Geel
Jolien van den Brand
Academiejaar 2012-2013
1
VOORWOORD Voor de afronding van mijn opleiding tot Bachelor in de Toegepaste Informatica aan Thomas More in Geel heb ik 3 maanden stage gelopen bij Datacon BV, een portaalbedrijf gelegen te Tilburg in Nederland. Het waren 3 leerrijke maanden waarin ik mijn kennis in de praktijk kon toetsen. Dit eindwerk is een weergave van de projecten waaraan ik heb meegewerkt en die ik heb afgerond. Ik wil al mijn docenten bedanken voor alles wat ze me hebben geleerd en voor de hulp die ze steeds geboden hebben. Ik bedank mijn stagebegeleiders Paul van den Eijnde en Sven Langenhuisen voor de begeleiding die ze mij hebben gegeven tijdens mijn stageperiode. Daarnaast ook dank aan mijn collega Niels Kwakkelaar. Hij is een grote hulp voor mij geweest tijdens mijn stage. Ik bedank ook iedereen van Datacon voor de aangename werksfeer. Tot slot een speciaal woordje van dank aan mijn ouders, mijn zussen en mijn vriend Kevin. Zij hebben mij de mogelijkheid gegeven om verder te studeren. Zij hebben mij steun geboden op momenten dat het moeilijker ging maar ze zijn vooral in mij blijven geloven.
2
SAMENVATTING Dit eindwerk beschrijft de werkzaamheden die ik heb uitgevoerd in de loop van mijn stage bij Datacon, een Nederlands IT-bedrijf. In juni 2013 komt er in Nederland een nieuwe telecomaanbieder op de markt. Dit bedrijf heeft beslist om voor zijn CRM-applicatie gebruik te maken van Telbase, een softwarepakket ontworpen door Datacon. Tijdens mijn stage heb ik meegewerkt aan de ontwikkeling en het testen van deze Telbase-applicatie. Mijn rol bij deze implementatie was om eerst mee te programmeren en daarna testscripts te schrijven en te automatiseren zodat deze applicatie op vaste tijdstippen getest kan worden. Op deze manier zou ik dan een realistisch beeld krijgen op de loop van een implementatieproject in het werkveld. In de loop van de periode waarin ik mee heb geprogrammeerd heb ik verschillende opdrachten uitgevoerd. De grootste hiervan was om een interface te schrijven die door een externe partij gebruikt ging worden. Om dit te verwezenlijken heb ik een kleine applicatie geschreven om deze interface te kunnen testen. In de periode dat ik heb testen heb gemaakt heb ik eerst als voorbereiding de testscripts geschreven om deze daarna vlotter te kunnen automatiseren. Om deze testen te automatiseren heb ik gebruik gemaakt van de testsoftware van Spritecloud.
3
LIJST MET GEBRUIKTE BEGRIPPEN EN AFKORTINGEN BSS
Business Support Systeem
CDR
Call Detail Record
CRM
Customer Relationship Management
Cucumber
Een tool in Ruby dat beschrijvingen in gewone tekst kan uitvoeren als automatische testen.
FO
Functioneel Ontwerp
KPN
Nederlands telecombedrijf/provider
MSISDN
Gsm-nummer
Provisioning
Het proces van het netwerk aan te passen om bepaalde diensten aan te bieden aan de gebruikers.
Prepaid network
Een netwerk dat er rond draait dat er vooraf word betaald. Het betaalde bedrag wordt dan bij de provider bijgehouden onder de vorm van beltegoed.
Rate plan
Tool waarmee rating gebeurt.
Rating
Het bepalen van de kosten van netwerk gebruik door telefoneer-gerelateerde data zoals tijdstip, hoeveelheid verbruik, ... om te zetten in een prijs.
RMA
Retourneren Met Autorisatie
UAT
User Acceptance Test
Windows Forms applicatie
Grafische programmeer omgeving die gebruik maakt van het Microsoft.NET framework.
4
INHOUDSTAFEL VOORWOORD ..................................................................................................... 0 SAMENVATTING ................................................................................................. 2 LIJST MET GEBRUIKTE BEGRIPPEN EN AFKORTINGEN ....................................... 3 INHOUDSTAFEL .................................................................................................. 4 INLEIDING ......................................................................................................... 5 1
DATACON ............................................................................................. 6
1.1 1.2 1.3
Geschiedenis ........................................................................................ 6 Visie: “Share more. Do more.” ............................................................. 7 Structuur.............................................................................................. 7
2
OPDRACHT ........................................................................................... 8
2.1 2.1.1 2.1.2 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.6 2.7
Aanleiding en achtergrond ................................................................... 8 Project ................................................................................................. 8 Testen .................................................................................................. 8 Verwacht resultaat............................................................................... 8 Business case....................................................................................... 8 Fasering ............................................................................................... 9 Fase 1 .................................................................................................. 9 Fase 2 .................................................................................................. 9 Fase 3 .................................................................................................. 9 Primaire doelgroep en andere stakeholders ......................................... 9 Rapportering ...................................................................................... 10 Projectorganisatie.............................................................................. 10
3
GEBRUIKTE SOFTWARE ...................................................................... 11
3.1 3.1.1
Telbase .............................................................................................. 11 Algemeen ........................................................................................... 11
3.1.2 3.2 3.2.1 3.2.2
Technisch ........................................................................................... 15 Spritecloud......................................................................................... 16 Algemeen ........................................................................................... 16 Technisch ........................................................................................... 16
3.1.1.1 3.1.1.2
Solutions .......................................................................................................................... 11 Modules ............................................................................................................................ 12
4
IMPLEMENTATIE TELBASE.................................................................. 18
4.1 4.1.1 4.1.2 4.1.3 4.2 4.3
Fase 1 ................................................................................................ 18 Kleinere opdrachten ............................................................................. 18 Use cases ........................................................................................... 19 Interface self-care omgeving ................................................................. 19 Fase 2 ................................................................................................ 22 Fase 3 ................................................................................................ 24
BESLUIT…. ....................................................................................................... 25 LITERATUURLIJST ............................................................................................ 26
5
INLEIDING In dit eindwerk vind je informatie over het werk dat ik heb uitgevoerd in de loop van mijn stage bij Datacon, een Nederlands IT-bedrijf. In juni 2013 komt er in Nederland een nieuwe telecomprovider op de markt. Dit bedrijf heeft beslist om voor zijn CRM-applicatie gebruik te maken van Telbase, een softwarepakket ontworpen door Datacon. Tijdens mijn stage heb ik meegewerkt aan deze Telbase-implementatie. Hierdoor kreeg ik dan ook een realistisch beeld van een implementatieproject. Ik hoop met dit eindwerk de lezers van dit document een beter beeld te geven over wat ik in mijn stage heb gedaan. Om dit te bereiken ga ik eerst meer informatie geven over mijn stage bedrijf, mijn opdracht en de software die ik heb gebruikt. Daarna ga ik dieper in op mijn effectieve werk namelijk programmeren en testen automatiseren.
6
1
DATACON
Datacon is een Nederlands IT bedrijf gelegen in Tilburg. Ze zijn leverancier van onder andere Telbase. Telbase is een IT-applicatie voor voornamelijk telecomproviders. Telbase wordt geïmplementeerd als standaard pakket met een grote variatie aan koppelingen. Om zo’n implementatie te bereiken levert Datacon op een projectgeoriënteerde manier oplossingen die alle fases van een applicatie ondersteund.
1.1
Analyseren en adviseren; Implementeren en configureren; Onderhoud, release management en beheer.
Geschiedenis
Datacon is in 1997 opgericht door Meindert van Duijvenbode en Bas Fockens. Oorspronkelijk was Datacon een bedrijf dat webapplicaties ontwikkelde en hostte. Hierbij maakten ze gebruik van Java en C# als programmeertalen. Eind 1998 kochten ze hun eerste server, hierdoor moesten ze niet meer via Trefpunt hosten. Dit was het begin van Datacon hosting. Op dat moment hadden ze 8 werknemers. In 1999 kochten ze een gebouw. Al snel werden ook deze 75 vierkante meter te klein voor het groeiende aantal werknemers. Daarom verhuisden ze in 2000, toen ze 24 werknemers hadden, nog eens. In 2000 werd de beslissing genomen om met Microsoft producten te werken. Dit had als invloed dat ze in de toekomst enkel nog gingen programmeren met behulp van basisproducten van Microsoft en dit in C#. Omwille van het groeiende aantal werknemers verhuisden ze in 2005 naar de locatie waar ze nu nog altijd gehuisvest zijn. Dit is ook het jaar waarin Markus de Haan actief werd als derde directielid en Telbase werd ontwikkeld. Intussen werken ongeveer 50 mensen bij Datacon waaronder informatieanalisten, projectmanagers, system engineers en developers, daarnaast zijn er ook sales, marketing en HR-medewerkers. Datacon is in de loop van de jaren ook uitgegroeid tot een bedrijf dat portals met systeemintegratie ontwerpt. Ook heeft Datacon op het moment 2 zusterbedrijven, Office2Go en Cloudshape. Zoals je ziet is Datacon een snel groeiend bedrijf.
7
1.2
Visie: “Share more. Do more.”
Datacon hecht belang aan een goede en veilige communicatie met de stakeholders (zie paragraaf Primaire doelgroep en andere stakeholders), omdat dit leidt tot een betere bedrijfsperformance. Dit zorgt dan voor:
grotere efficiëntie, meer eenvoud, hogere omzet, meer klanten, grotere productiviteit, extra motivatie, grotere slagkracht hogere bedrijfswaarde.
Om deze reden is hun slogan dan ook: “Share more. Do more.”
1.3
Structuur
De structuur van Datacon bestaat uit de directie met daaronder een aantal afdelingen en subafdelingen zoals te zien in Figuur 1: Structuur van Datacon. Mijn stage vond plaats op de afdeling Business support systemen (BSS). Op deze afdeling worden er zoals de naam als zegt BSS-systemen ontwikkeld voor klanten. Deze gebeuren in de meeste gevallen op basis van Telbase (zie paragraaf 3.1 Telbase). Figuur 1: Structuur van Datacon
Directie
Sales
Marketing & Communicati e
Operations
Project management
Support
Development
ECM/WCM
Office management
Consultantcy
BSS
Finance
System management
HRM
8
2
OPDRACHT
2.1
Aanleiding en achtergrond
2.1.1
Project
In juni 2013 komt er in Nederland een nieuw telecombedrijf op de markt. Dit bedrijf heeft beslist om zijn IT applicatie te laten ontwikkelen door Datacon. Hierbij gaat er gebruik gemaakt worden van de standaard applicatie Telbase. Meer informatie over Telbase is te vinden in paragraaf 3.1 Telbase. Voor deze implementatie moeten er verschillende connecties worden gemaakt met verschillende systemen van andere bedrijven en instanties. Vanuit Telbase moet onder andere verbinding gemaakt worden met een financieel pakket, met een self-care omgeving, met de overheid en met andere instanties zoals KPN, de provider waarop dit bedrijf zijn prepaid netwerk gaat draaien. 2.1.2
Testen
Voor elke applicatie is het belangrijk dat er grondig getest wordt zodat er geen fouten meer inzitten wanneer deze in gebruik wordt genomen. In een applicatie waarin onder andere financiële transacties gebeuren is dit extra belangrijk omdat dit negatieve gevolgen zoals onder andere winst- en reputatieverlies kan hebben voor de klant en/of zijn gebruikers bij eventuele problemen. Het is ook belangrijk dat deze testen op een juiste manier gedocumenteerd worden. Dat je documenteert wat er is getest, hoe vaak en hoeveel keer de test slaagt of faalt. Op deze manier heb je ook een bewijs dat alles goed is gecontroleerd en dat alles naar behoren werkt.
2.2
Verwacht resultaat
Er werd van mij verwacht dat ik gedurende mijn stageperiode meedraaide in het project voor de implementatie van Telbase voor een nieuw telecombedrijf. Het eerste deel van mijn stage zou ik meedraaien in het programmeerteam. Daarna ging ik testscripts schrijven om de implementatie te testen. Als laatste zou ik de testen die ik in het vorige deel heb uitgewerkt automatiseren. Het was de bedoeling dat ik in de loop van mijn stage een realistisch beeld zou krijgen op de loop van een implementatieproject in het werkveld.
2.3
Business case
Door grondig te testen worden het aantal fouten geminimaliseerd. Hierdoor ontstaat er minder frustratie bij de klant en is Datacon minder lang bezig met het oplossen van diverse problemen en zal de kwaliteitsbeleving bij de klant hierdoor verbeteren. Daarnaast kunnen er tijdens het ontwikkeltraject aanpassingen gedaan worden aan een bestaand deel van de software. Door deel van de software automatisch opnieuw te testen worden fouten gereduceerd en dat tegen geringe extra tijdsbesteding/kosten.
9
2.4
Fasering
Mijn stage kan je opdelen in 3 duidelijk te onderscheiden fasen: programmeren, testscripts opstellen en testen automatiseren. 2.4.1
Fase 1
In deze fase heb ik onder andere een aantal use cases uitgewerkt en de interface voor de self-care omgeving samen met een testapplicatie om deze te testen. Voor meer informatie over wat ik in deze fase heb gedaan zie paragraaf 4.1 Fase 1. Het eerste deel van mijn stage was oorspronkelijk voorzien voor de eerste maand. Uiteindelijk zijn dit zeven weken geworden. 2.4.2
Fase 2
In dit deel heb ik testscripts geschreven. De testen die ik in dit deel heb voorbereid zijn vooral functionele testen voor het hele project waar ik in fase 1 aan heb meegewerkt. 2.4.3
Fase 3
Als laatste fase ga ik testen automatiseren. Hiervoor ga ik de testscripts die ik in fase 2 heb gemaakt programmeren in de testsoftware van Spritecloud (zie 3.2 Spritecloud). Op deze manier kunnen deze testen in de toekomst automatisch opnieuw uitgevoerd worden.
2.5
Primaire doelgroep en andere stakeholders
De belangrijkste stakeholders zijn de klant, Datacon en de werknemers van Datacon. De klant heeft er baat bij dat ze een goed draaiende applicatie krijgt. Een betere applicatie zorgt voor meer efficiëntie met als gevolg een betere reputatie. Dit is voor een startend bedrijf heel belangrijk. Daaruit vloeit voort dat ze meer omzet krijgen, meer winst kunnen realiseren en een betere marktpositie kunnen krijgen. Datacon heeft baat bij het succes van dit project omdat ze hiervoor betaald worden en winst kunnen maken. Door een succesverhaal krijgen ze ook een betere reputatie waardoor ze meer klanten en dus extra orders kunnen krijgen en ze als gevolg daarvan ook kunnen uitbreiden. Een uitbreiding zorgt voor meer omzet, meer winst en meer bedrijfszekerheid. De werknemers hebben er belang bij om het project succesvol af te ronden omdat ze dan de voldoening kunnen krijgen van een geslaagd project. Als Datacon uitbreidt is er ook meer werkzekerheid. Andere belanghebbenden zijn de klanten van de klant. Als deze vlotter bediend kunnen worden, verliezen ze minder tijd.
10
2.6
Rapportering
Bij aanvang van mijn stage was afgesproken dat ik elke 2 weken een afspraak zou inplannen in de agenda van mijn stagebegeleiders en dat dan minstens 1 van hen, samen met mij, mijn vooruitgang besprak. Ik kon ook als er problemen waren vroeger een afspraak inplannen. In het begin van mijn stage zijn we niet elke 2 weken samengekomen omwille van meer tussentijds overleg, maar tegen het einde van mijn stage hebben wij wel om de 2 weken samengezeten. In de eerste fase heb ik meer kleine opdrachten uitgevoerd waarvoor ik elke dag mijn statusrapport doorstuurde naar mijn opdrachtgever. Als ik door de dag heen een bespreking nodig achtte gebeurde dit ook.
2.7
Projectorganisatie
In het projectteam waarin ik op mijn stage terecht kwam was er een projectleider (Sven) die het project waaraan ik werkte in goede banen leidde. Ook was er een projectmanager (Paul) die voor meerdere projecten verantwoordelijk was. De rest van het team waren de programmeurs. Mijn stagebegeleiders waren de projectleider en de projectmanager, ik moest dus naar hun beide rapporteren. Tijdens fase 1 van mijn stage was er ook een programmeur (Niels) die mij opdrachten gaf en waar ik bij terecht kon.
11
3
GEBRUIKTE SOFTWARE
In de loop van mijn stage heb ik met verschillende softwarepakketen gewerkt. Om beter te begrijpen wat ik tijdens mijn stage heb gedaan is het aan te raden om deze software beter te begrijpen.
3.1
Telbase
3.1.1
Algemeen
Telbase is een web gebaseerd business support system (BSS) ontworpen door Datacon, voor voornamelijk telecombedrijven, maar ook voor internet service providers, gift card en loyalty card leveranciers en broadcasting providers. Het is een systeem gericht op het verbeteren van de kwaliteit van dienstverlening en het drukken van de kosten. Om dit te verwezenlijken wordt er gecontroleerd of er ergens verspilling vermeden kan worden. Dit doet Datacon door het gehele leveringsproces van goederen en diensten binnen Telbase af te stemmen en te controleren. Daarbovenop biedt Telbase een real-time inzicht in het gedrag van de klanten waardoor het systeem nog meer kan worden verbeterd. 3.1.1.1
Solutions
Telbase biedt functionaliteiten aan die gerelateerd zijn aan de levering van producten en diensten naar de markt. De oplossingen die ze aanbieden om dit te verwezenlijken zijn:
Control your business; Know your customers; Manage your proposition; Integrate your environment.
3.1.1.1.1 Control your business Telbase biedt functionaliteiten die een flexibelere en gestructureerde organisatie maken. Een aantal voorbeelden van processen die gecontroleerd kunnen worden door Telbase zijn:
Activeren van klanten op het netwerk; Afhandelen van teruggebrachte producten; Maken en versturen van facturen en controle op betaling.
3.1.1.1.2 Know your customers Telbase integreert het profiel van de klant met additionele informatie waardoor klantenloyaliteit gecreëerd worden en de klanten meer worden behouden. Telbase biedt ook een overzicht aan per klant. Zo wordt onder meer de contactgeschiedenis en de ordergeschiedenis bijgehouden. De klant kan ook een voorkeur opgeven voor het kanaal (brief, mail, SMS) waarop hij/zij gecontacteerd wil worden.
12
3.1.1.1.3 Manage your proposition Telbase is flexibel in het implementeren van klant specifieke marketingwensen die in een korte tijd gerealiseerd kunnen worden. Hierdoor kunnen hun klanten een marketingcampagne snel lanceren. 3.1.1.1.4 Integrate your environment Voor de bedrijven waar Telbase zich op richt is het heel belangrijk dat er op een vlotte manier gecommuniceerd kan worden met systemen van andere bedrijven. Hiervoor heeft Telbase een gestandaardiseerd pakket van connectors met diverse systemen van bedrijven in de telecommunicatiemarkt (zie Afbeelding 1: Telbase connectors). Hierdoor kan op een vlotte manier informatie binnengehaald en/of verstuurd worden van of naar deze bedrijven. Afbeelding 1: Telbase connectors
3.1.1.2
Modules
Telbase is gebouwd op een modulaire structuur (zie Afbeelding 2: Alle modules van Telbase). Afhankelijk van wat het bedrijf op de markt wil brengen kunnen modules gekozen worden om te implementeren. Daarnaast is het ook mogelijk om in opdracht van de klant extra modules te implementeren. Ik ga hier enkel de modules toelichten die in de implementatie waarin ik heb meegewerkt van belang zijn.
13
Afbeelding 2: Alle modules van Telbase
3.1.1.2.1 Provisioning Provisioning is een module om real-time transacties uit te voeren op de netwerkelementen. Op die manier is er een grotere controle over onder andere activiteiten, services en deactivaties uitgevoerd op een account. In Afbeelding 3: Klantgerichte taken in CRM kan je een overzicht zien van de klantgerichte taken, deze maken gebruik van deze transacties. Afbeelding 3: Klantgerichte taken in CRM
14
3.1.1.2.2 Product management In de productmanagement module is het mogelijk om producten bundels of gecombineerde pakketten te wijzigen of aan te maken. In Telbase is het mogelijk om allerlei soorten producten toe te voegen: fysieke producten, niet fysieke producten of een combinatie daarvan. Producten kunnen gecombineerd worden met een rate plan. Op die manier wordt de mogelijkheid gecreëerd om producten onmiddellijk aan te rekenen en te verkopen. De tijd nodig om een nieuw product te lanceren kan op deze manier drastisch worden verminderd. Stock control en RMA zijn geïntegreerd in de product management module. Als je gebruik maakt van deze module dan heb je ook volledige controle over de producten, inventaris en RMA processen. 3.1.1.2.3 Customer care en CRM De customer care module biedt uitgebreide customer care functies aan die makkelijk in elk bestaand call center kunnen geïntegreerd worden omdat de applicatie web based is m.a.w. je werkt via het internet. Deze module biedt:
Ticketing & progress management, Case & queue management, Gedetailleerde klant informatie inclusief CDR’s, Task management, Finance management, Automatische interactie met de klant via email, Sales management & order tracking.
3.1.1.2.4 Revenue assurance De Revenue assurance module biedt een aantal mogelijkheden waaronder Dunning (incasso), limieten op verbruik en fraudedetectie. De mogelijkheid Dunning bevat het sturen van betaalherinneringen via post, mail of SMS. Dit is uitbreidbaar met standaard interfaces voor andere partijen die incassodiensten aanbieden. Telbase kan ook limieten leggen op de hoeveelheid dat je met een adres kan bestellen en heeft de mogelijkheid om een levering te vertragen in geval van automatische incasso. Een ander onderdeel van deze module is de mogelijkheid om fraude te detecteren. Wanneer het verbruik van post-paid klanten boven een bepaald niveau gaat kan het systeem deze gebruikers hierover informeren.
15
3.1.1.2.5 Number porting Vaste lijn, VOIP en mobiele communicatie providers kunnen het porteer proces beheren. Indien nodig kan het proces ook worden geoutsourced naar een andere partij. De number porting module kan verbonden worden met de centrale land MSISDN organisatie (vb. COIN) en kan worden gebruikt door gespecialiseerde porteer bedrijven (vb. PortingXS). Beide voorbeelden zijn van bedrijven in Nederland. 3.1.1.2.6 System management Telbase biedt een System en Configuration management module aan waarin een ICT afdeling in staat is om al het nodige onderhoud aan het systeem te kunnen doen. Dit onderhoud kan eventueel ook geoutsourced worden. 3.1.2
Technisch
In dit deel ga ik de meer technische aspecten van Telbase toelichten die van toepassing zijn op mijn stage. Omwille van geheimhouding kan ik hier echter niet al te diep op in gaan. Telbase implementaties zijn geprogrammeerd in C# met behulp van verschillende Microsoft.NET frameworks (2.0, 3.5 en 4.0). Deze frameworks worden door elkaar gebruikt afhankelijk van waar ze het optimaalst gebruikt kunnen worden. Ook wordt er in deze implementaties gebruik gemaakt van een zelfgemaakte datalaag generator. Deze is te vergelijken met de datalaag generator van Microsoft en genereert een derde van de code. Om implementaties van Telbase functioneel te krijgen wordt er gebruik gemaakt van 3 verschillende solutions in Microsoft Visual Studio. De core solution wordt door elke implementatie gebruikt. De 2 andere zijn geïndividualiseerd per implementatie, de connector solution en de effectieve implementatie. De core solution bevat de code die gebruikt wordt door alle Telbase implementaties. Dit is dan ook een belangrijke solution waarin over het algemeen niet veel aan aangepast moet worden. De connector solution is de solution die alle connecties met externe systemen bevat. Om deze verbindingen tot stand te brengen wordt er gebruik gemaakt van o.a. Reflection en WCF services. De solution van de effectieve implementatie bezit al het gepersonaliseerde aan de implementatie. Hierin wordt alles van de front end geprogrammeerd en andere gegevens zoals bedrijfsregels. Om ervoor te zorgen dat iedereen op een gestructureerde manier kan samenwerken aan deze solutions wordt er gebruik gemaakt van Team Foundation Server (TFS), een Microsoft product dat onder meer source control en data collectie aanbiedt.
16
3.2
Spritecloud
Zoals al vermeld in mijn opdracht (zie paragraaf 2.2 Verwacht resultaat) moest ik in de loop van fase 3 van mijn stage testen automatiseren. Hiervoor heb ik gebruik gemaakt van de testsoftware van Spritecloud 3.2.1
Algemeen
Spritecloud is een bedrijf dat testsoftware maakt voor web applicaties. Ze zorgen onder meer voor:
Automatiseren testen; Performance testen; UAT; Functionele testen.
Voor mijn stage hebben we Spritecloud gebruikt om functionele testen te automatiseren. Deze testen kunnen met behulp van cucumber, een tool in Ruby, op de server worden uitgevoerd. Daarna worden de testresultaten geïmporteerd in het service portal van Spritecloud. Op deze service portal kan je dan de resultaten bekijken. 3.2.2
Technisch
Om met de software van Spritecloud te werken programmeer je voor een deel in een door Spritecloud verzonnen taal en voor een deel in Ruby. Om testen te automatiseren werk je met scenario’s en features. Een scenario is het onderdeel waarin de testen worden uitgeschreven in stappen van leesbare taal. Een feature is een verzameling van scenario’s. In een feature kunnen ook stappen worden geschreven die voor alle scenario’s hetzelfde zijn. Op deze manier moeten deze niet elke keer opnieuw geschreven worden. @home Feature: Home Background: Steps that are executed before every scenario Given I navigate to page "telbase" @case4 @home4 Scenario: Case4: Password – Failed When I login with "DataconTest" and password "PASSWORD" And I click on image "Change password" And I change password "PASSWORD" with "Test" "Testje" Then I should see text "New password and confirmation password do not match"
Wat de stappen in de scenario’s achter de schermen doen wordt geprogrammeerd in methodes. In de methode programmeer je in Ruby wat de stap juist gaat doen, hierbij is het mogelijk om gebruik te maken van definities. Definities zijn vergelijkbaar met methodes, maar zijn meestal ruimer en kunnen daardoor ook in meerdere methodes gebruikt worden.
Given /^I navigate to page "([^"]*)"$/ do |arg1| if !CONFIGS[arg1] handle_element_not_found('page', arg1) end BROWSER.goto CONFIGS[arg1] end
17
def find_frame(label) return BROWSER.frame(:src => /#{label}/) if BROWSER.frame(:src => /#{label}/).exist? return nil end
De testen zelf kan je zowel manueel al automatisch uitvoeren. Het is de bedoeling dat je elke feature en/of scenario voorziet van een tag. Deze tag kan je dan met behulp van cucumber uitvoeren in een command prompt, alle scenario’s of features met deze tag worden dan uitgevoerd. Om deze testen te automatiseren maak je dan een job aan op een server die deze testen automatisch uitvoerd.
18
4
IMPLEMENTATIE TELBASE
Voordat mijn stage bij Datacon begon, was het project waarin ik ben terecht gekomen al opgestart. Omdat ik ben terechtgekomen in een project waarvan de eerste opzet al was gemaakt, was een analyse maken al uitgevoerd. In de loop van mijn stage heb ik wel een groot deel van de rest van het implementatietraject kunnen meemaken. Ik heb mee kunnen programmeren, testscenario’s uitwerken en testscenario’s automatiseren. In dit hoofdstuk ga ik deze onderdelen/fasen verder verduidelijken zodat je een beter beeld kan krijgen van mijn stage traject.
4.1
Fase 1
Zoals eerder vermeld heb ik in mijn eerste fase meegewerkt in een programmeerteam. Hier heb ik in C# een aantal zaken helpen programmeren. Omdat programmeren redelijk ruim is ga deze fase nog verder opdelen in concretere programmeeropdrachten om het op deze manier duidelijker uit te kunnen leggen. 4.1.1
Kleinere opdrachten
In het begin van mijn stage heb ik me met behulp van een aantal kleinere opdrachten kunnen inwerken in het systeem. Deze opdrachten waren dan ook vooral gericht op kennismaken met het systeem. Een aantal opdrachten die ik in deze fase heb gedaan zijn:
Data toevoegen in de database; Schedules aanmaken zodat taken zoals mails versturen op vaste tijdstippen kunnen worden uitgevoerd; Klantgerichte taken in CRM enkel laten verschijnen als het account in de juiste status is: Sommige taken kunnen niet uitgevoerd worden op een account in een bepaalde status (vb. Check registration is onmogelijk op een account in status Active); De IBAN ophalen als de bank wordt aangepast: De IBAN wordt automatisch opnieuw berekend op het moment dat de rekeningnummer of bank wordt aangepast; Invoercontroles: De controle dat ingevulde gegevens (vb. telefoonnummer) het juiste formaat (lengte, soort karakters, ...) hebben; Extra gegevens tonen: Onder meer in een detailoverzicht extra gegevens laten zien zorgen dat deze ingevuld zijn met de juiste gegevens; Tabbladen toevoegen: In de module account een extra tabblad toevoegen (vb. Bills) zoals te zien is in Afbeelding 3: Klantgerichte taken in CRM; ...
19
4.1.2
Use cases
In deze periode heb ik vooral use cases uitgewerkt in het systeem. Deze hadden voornamelijk betrekking tot de taken die je kan uitvoeren op een account. Zo heb ik onder andere een use case uitgewerkt om de huidige balans van accounts te upgraden of downgraden. Bij deze use case haalt het systeem de huidige balans op van het geselecteerde account waarna de agent deze kan upgraden of downgraden. Een andere use case die ik heb uitgewerkt is een taak die de prepaid Call Detail Reports (CDR’s) van het huidige account ophaalt en toont. Bij deze use case haalt het systeem via provisioning de CDR’s van het geselecteerde account op en toont deze aan de agent, de gebruiker van het systeem. Voor beide van deze use cases heb ik taken moeten schrijven. Deze taken (CDR’s opvragen, main balance opvragen, main balance updaten) roepen dan methodes aan waarin de connectie met KPN moest gebeuren. 4.1.3
Interface self-care omgeving
Dit onderdeel heeft het grootste deel van fase 1 in beslag genomen. Hierin heb ik een interface gemaakt. Deze interface gaat gebruikt worden door de externe partij die de self-care omgeving gaat maken. Ik ben hiermee begonnen door methodes aan te maken in de interface (zie Printscreen 1: Interface self-care omgeving) op basis van het functioneel ontwerp (FO) dat ik had gekregen. Hierdoor had ik al een beter beeld van wat ik op een later tijdstip moest gaan implementeren. Hierin had ik ook al direct een groepering gemaakt van welke methodes bij elkaar hoorden, en uiteindelijk in dezelfde managerklasse zouden belanden, om op deze manier een beter overzicht te krijgen op de interface. Wanneer er dan een methode aangepast moest worden kon ik deze sneller terugvinden. Deze managerklassen kan je ook zien in de rechterkolom van de printscreen.
20
Printscreen 1: Interface self-care omgeving
Omdat ik een beter beeld wou hebben op de vooruitgang die ik maakte, heb ik toen ook een document (zie Printscreen 2: Interface self-care omgeving - Progress) gemaakt om mijn vooruitgang in bij te houden. Om ervoor te zorgen dat anderen dit document ook konden begrijpen heb ik ook een legende (zie Printscreen 3: Interface self-care omgeving - Progress) gemaakt voor de codes die ik hierin gebruikte. Dit document was in deze fase een heel makkelijke manier om aan mijn opdrachtgever te laten zien hoever ik stond en om eventuele vragen en opmerkingen op een gestructureerde manier bij te houden zodat er geen zaken over het hoofd werden gezien.
21
Printscreen 2: Interface self-care omgeving - Progress
Printscreen 3: Interface self-care omgeving - Progress: Legende
Bij het maken van een interface kan je niet zomaar testen. Daarom heb ik hiervoor een Windows Forms applicatie gemaakt om de interface te kunnen testen (zie Printscreen 4: Testapplicatie interface self-care omgeving). Aan de hand van de indeling van de methodes die ik bij het ontwerpen van de interface heb gemaakt heb ik deze georganiseerd in een testapplicatie. Zoals op de printscreen te zien is, zijn er 2 kolommen van knoppen. Deze knoppen werken als een soort van menu. Als je op een knop uit de eerste kolom klikt, dus de knop van de managerklasse, worden de knoppen uit de tweede kolom aangepast om de methodes van die managerklasse te tonen. Als je op een methode klikt uit deze tweede kolom, dan wordt deze methode uitgevoerd. In het geval dat het nodig is om gegevens mee door te geven verschijnt er een ander venster waarin je de gegevens kan invullen die meegegeven moeten worden. Daarna wordt via services de methode aangeroepen. Het resultaat wordt daarna in het eerste scherm getoond.
22
Printscreen 4: Testapplicatie interface self-care omgeving
Hierna ben ik begonnen met de methodes te implementeren. Tijdens het programmeren heb ik het vooruitgangdocument waar ik het hierboven over had ook constant bijgehouden. Op die manier kon ik heel makkelijk en efficiënt rapporteren over mijn vooruitgang en eventuele problemen of opmerkingen.
4.2
Fase 2
Deze fase was eigenlijk de analyse voor fase 3. Om deze fase vlot te laten verlopen heb ik in het begin van deze fase een planning opgesteld (zie Printscreen 5: Planning testscripts). In dit document heb ik ook mijn vooruitgang bijgehouden om op elk moment te kunnen zien hoe ver ik stond. In dit Excel bestand heb ik ook een paar statistieken geïntegreerd die zichzelf automatisch aanpasten wanneer ik mijn vooruitgang bijwerkte.
23
Printscreen 5: Planning testscripts
Tijdens deze fase heb ik testscripts geschreven die ik in fase 3 zou implementeren in de testsoftware van Spritecloud. Het document (zie Printscreen 6: Testscripts) dat ik hiervoor heb aangemaakt was op basis van de huisstijl van Datacon. Voor deze testscripts heb ik buiten de stappen ook telkens opgeschreven wie de stappen uitvoert, en in het geval het nodig was de pre- en postcondities.
24
Printscreen 6: Testscripts
4.3
Fase 3
Deze fase is begonnen met een 2-daagse introductie in de software van Spritecloud. Tijdens deze 2 dagen hebben we informatie gekregen over hoe de testsoftware werkt gevolgd door een praktische sessie om ons te leren hoe we met de software moeten werken. Na deze 2 dagen ben ik zelf aan de slag gegaan met de software en de testscripts die ik had voorbereid om hieruit de testen te programmeren. In deze fase heb ik ook een document aangemaakt, vergelijkbaar met het document van fase 2 om mij vooruitgang in bij te houden. In dit document bevindt zich zoals in het document van fase 2 ook een statistisch overzicht om bij te kunnen houden of het maken van de testen op schema zit.
25
BESLUIT Mijn stageperiode was een aangename en educatieve ervaring waarin ik veel heb bijgeleerd. Het was heel interessant om te zien hoe het er in het werkveld aan toe gaat en hoe een implementatietraject werkt. Ik heb ook kunnen proeven van de aangename bedrijfscultuur van Datacon. Mijn stage zat vol met uitdagingen, zo heb ik met twee nieuwe softwarepakketten (Telbase en Spritecloud) en een nieuwe programmeertaal (Ruby) leren werken. Hierbij heb ik ook meer bijgeleerd over het belang van een correcte en duidelijke documentatie in de IT sector. Daarnaast heb ik ook veel bijgeleerd over het doordenken en bundelen van knelpunten om op deze manier tijd te besparen. In de laatste week van mijn stage is de nieuwe telecomprovider, waar ik heel mijn stage rond heb gewerkt, succesvol live gegaan. Ik ben dan ook heel trots dat ik daar aan heb kunnen bijdragen. Als ik nu terugkijk op mijn stage ben ik heel blij dat ik mijn stage mocht doen bij Datacon. Ik heb hierbij veel bijgeleerd en ervaring opgedaan die ik in mijn verdere loopbaan goed ga kunnen gebruiken.
26
LITERATUURLIJST Datacon Gravity, intranet, maart 2013 http://gravity.intranet.datacon.nl/GeneralInformation/overdatacon/Pages/Historie.aspx Datacon website, internet, maart 2013 http://www.datacon.nl Telbase website, internet, april 3013 www.telbase.eu Spritecloud website, internet, mei 2013 http://www.spritecloud.com Cucumber website, internet, mei 2013 http://cukes.info