Citat:
Ursprungligen postat av
christery
Inte svar på frågorna, men LTU (tror jag det var) kör en distanskurs med inriktning test vilket kan vara vettigare för ett nytt jobb än att lära sig hemma.
Låter väl kanske inte så relevant för nån som har arbetat i flera år med test?
Citat:
Ursprungligen postat av
Aristocles
Jag arbetar som featuretestare (och har gjort ett antal år) men har inga större erfarenheter inom testautomation vilket är ett aber då de flesta företag efterfråga denna kunskap. Jag har nu tänkt lära mig detta och behöver således lite vägledning initialt.
1. Vilket typ av testautomation är det som främst efterfrågas av svenska IT-företag (och som jag därmed bör rikta in mig på)?
2. Vilka verktyg används och hur används de för valda typ av testautomation?
3. Finns det bra sidor med praktiska guider som man bör kolla upp?
4. Hur arbetar ni med testautomation på ert företag?
Tack på förhand!
De två vanligaste testautomatiseringstyper jag ser (givetvis bortsett från enhetstester som mer eller mindre till fullo ligger på utvecklarnas bord) är:
* API-tester, där verktyg som SoapUI är populära
* "End-to-end"-tester som går via användargränssnittet. Verktyg beror där givetvis på vad man har för UI. Inom webben är det Selenium och i mindre utsträckning Watir som gäller. Därutöver har jag inte så stor koll. För Java Swing finns FEST, men du vill -inte- jobba med Java Swing. Det finns även Sikuli som är mer allmänt och bygger på bildigenkänning, men jag tyckte det lätt ledde till väldigt bräckliga tester när jag höll på med det.
Därutöver finns det mycket annat man behöver ha koll på för att bygga en fullständig testautomatiseringshistoria för projektet man jobbar med, men det ska nämnas att man inte behöver nämna där. Tanken med testautomatisering är att underlätta den manuella testningen, vilket delvis bör göras genom att bygga fulla regressionstester, men till en början bör man leta efter lågthängande frukter - verktyg som kan underlätta under den manuella testningen. Jag har ofta skrivit små scripts för att automatisera smågrejer som jag ofta behövt göra när jag testat manuellt.
Hursomhelst. Om du faktiskt ska utveckla själva testautomatiseringsramverket som används för att implementera testerna så krävs att du är en duktig programmerare. Automatiska tester behöver hålla en hög kvalitet - ständiga false negatives (och vice versa) leder till att ingen litar på testerna. Givet ett bra ramverk för produkten du arbetar med brukar det inte behövas så starka programmeringskunskaper för att faktiskt implementera testerna, men även om det är det du vill inrikta dig mot kan det vara bra att kunna grunderna i något språk. Beroende på språk används sen ofta t.ex. JUnit, TestNG, NUnit, Cucumber, etc för att definiera upp testfallen och testsviterna.
Det är iallafall en del som ska på plats för att få till automatiska tester som ska köras regelbundet. Du behöver ofta kunna säkerställa att testerna börjar i ett känt tillstånd varje gång, ofta innebär det att du behöver trixa med nån databas och kanske ha några SQL-script redo. Testerna bör kunna köras från en Continuous Integration-server, t.ex. TeamCity, så om teamet inte redan använder ett sådant så lär det behöva sättas upp. Oavsett så behöver du förmodligen förstå dig på projektets bygg- och deployprocess (och där beror det givetvis väldigt mycket på vilka programmeringsspråk som används). Det verkar vara väldigt vanligt att testautomatiseringsrollen blandas med en devops-roll, där man har koll och ansvarar för såna saker, så det kan vara bra att kolla upp (och kanske även molnlösningar som Azure och AWS).
Förhoppningsvis fanns det nåt matnyttigt i det pladdrandet!