Несколько вещей в помощь автоматизатору ЧЕРНОВИК!
Об авторе Занимался автоматизированным тестированием Now development Где работал
Point 1: Domain’ая модель Domain – область знаний Что это? Цель : стремиться при написании кода тестовых сценариев, использовать понятные всем сущности и оперировать ими. Зачем?
Пример 1 Пример кода тестового сценария : Apple apple = appleBuilder.buildApple(); Kid kid = kidFactory.getKid(); kid.eat(apple); asserts.isTrue(kid.isHungry(), “Kid is hungry after ate apple”);
Пример 2 PostRequest postRequest = new PostRequest(); postRequest.setURI(testServerUri + kidEatUri); postRequest.setBody(“Food : Apple”); httpClient.execute(postRequest); Boolean isHungry = checkHungry(); asserts.isTrue(isHungry, “Kid is hungry after ate apple”);
Как достичь Примера 1?
Point 2 : Качество кода Проблемы : Часто, никто вокруг не считает, что разработка автотестов – это разработка. Разработчик автотестов не считает, что он занимается разработкой
Что делать? Программа минимум : Don’t Repeat Yourself (DRY) Middle level : делать код чище (Роб Мартин – Чистый код) Hard level : Фаулер – Архитектура корпоративных приложений
Point 3 : DDT Что такое? Картинка с разными тестовыми данными (как обойма) и один выполняющий это скрипт (автоматическое оружие?)
Пример TestData testData = TestDataExtractor.getData(); Food food = testData.getFood(); Kid kid = kidFactory.getKid(); kid.eat(food); asserts.isEquals(testData.getExpectedResult(), kid.isHungry()); Test data : “Food : Apple”, “True” “Food : Empty”, “False” “Food : Pear”, “True”
Как этого достичь? Архитектура, картинка
Point 4 : useful artifacts CI : зачем нужен? автоматический запуск тестов/сборок. запуски по event’у.
Вопросы? Контакты : …