Несколько вещей в помощь автоматизатору ЧЕРНОВИК!
Об авторе • Занимался автоматизированным тестированием • 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’у.
Вопросы? Контакты : …