QA / QA Automation
Objectgeoriënteerd programmeren (OOP) is een aanpak voor het ontwikkelen van software waarbij de code wordt georganiseerd in de vorm van objecten Encapsulatie Encapsulatie is het samenvoegen van gegevens en methoden die met deze gegevens werken binnen één klasse, evenals het beperken van directe toegang tot de interne toestand van het object. In eenvoudige woorden: het object beheert zijn eigen gegevens, en externe code interacteert ermee via methoden. Abstractie Abstractie is het selecteren van alleen de belangrijke kenmerken van het object en het verbergen van de details van de implementatie. In eenvoudige woorden: de gebruiker geeft om wat het object doet, niet hoe het dat precies doet. Polymorfisme Polymorfisme is de mogelijkheid voor objecten met verschillende implementaties om dezelfde interface te gebruiken. In testen helpt dit om universele code te schrijven die werkt met verschillende datatypes of klassen. Voorbeeld in Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Woef!" class Cat(Animal): def make_sound(self): return "Miauw!" def animal_sound(animal: Animal): print(animal.make_sound()) dog = Dog() cat = Cat() animal_sound(dog) # Woef! animal_sound(cat) # Miauw! In geautomatiseerde tests is polymorfisme nuttig voor: - Het creëren van universele verificatiemethoden - Het implementeren van verschillende teststrategieën via één interface - Het ondersteunen van verschillende API/UI-versies zonder de tests te wijzigen Erfelijkheid Erfelijkheid is een mechanisme dat het mogelijk maakt dat een nieuwe klasse automatisch een bestaande klasse gebruikt, door deze eigenschappen en methoden te erven. In eenvoudige woorden: de nieuwe klasse hergebruikt de code van de ouderklasse en breidt deze indien nodig uit. Git 1. Versiebeheersystemen. Lokaal, gecentraliseerd, gedistribueerd. 2. Basisconcepten. Repository, index, commit, pointers, branch, werkkopie. 3. Werken met een repository. Commando’s: init, clone, status 4. Een commit maken. Commando’s: add, commit. 5. Een branch maken, bekijken, wisselen, verwijderen. Commando’s: branch, checkout, log, diff. 6. Wijzigingen ongedaan maken. Commando’s: restore, rm, checkout, revert. 7. Wijzigingen samenvoegen tussen branches. Commando’s: merge, cherry-pick, rebase. 8. Werken met een remote repository. Commando’s: fetch, pull, push. 9. Werken met GitHub, forks en Pull Requests.
Waren alleen de producenten getest of werden ook de consumenten gedekt door automatische tests?
Welke groepen statuscodes ken je? Beschrijf de groepen en hun betekenissen.
Wat zijn de belangrijkste parameters van het defect?
Doe je ook handmatige tests, of iemand anders in het team?
Vertel over closures in Python. Hoe gebruikt een functie binnen een andere functie de variabelen van de externe functie?
Wat is de levenscyclus van een Activity in Android?
Waaruit bestaat volgens jou de architectuur van een mobiel netwerk?
Hoe toon je het bericht 'testen voltooid' één keer na het uitvoeren van alle tests in JUnit?
Wat ga je doen bij ontvangst van de nieuwe versie van de applicatie?
Is de accreditering belangrijk, is er een hypotheek?
Hoe haal je de lijst met resultaten uit een REST-antwoord dat is uitgevoerd met Rest Assured?
Wat zijn equivalentieklassen en hoe wordt de partitionering ervan bepaald?
Hoe zou je de integratie met een externe betaalservice testen?
Hoe is je werk met Kubernetes georganiseerd? Ga je naar de pods/containers, bekijk je logs, wijzig je configuraties? Welke interface wordt gebruikt voor het werken met Kubernetes?
Heb je gewerkt met Kafka of RabbitMQ?
Klantbeoordelingsformulier bij het kredietbureau: Als de klant jonger is dan 18 jaar - weigering. Als de klant ouder is dan 60 - min één punt Als de klant getrouwd is - plus één punt Als de klant kinderen heeft en jonger is dan 25 - min één punt Als de klant kinderen heeft en ouder is dan 25 - plus één punt De klant vult de juiste velden in. En uiteindelijk geeft het bureau een score of WEIGERING. De weigering wordt direct aan de klant getoond. De score wordt naar een ander systeem gestuurd voor verificatie. Schrijf testgevallen, hoe zou het testontwerp eruitzien.
Hoe werden conflictuele situaties gewoonlijk opgelost? Vertel meer details over de zaak met de analist.
Heeft u een framework vanaf nul ontwikkeld. Kunt u vertellen welke stack u hebt gebruikt en over de architectuuroplossing, hoe het was ingericht?
Wat is git rebase?