5. Тестувати систему можна
Ззовні Зсередини
Інтерфейс Код
Сценарії взаємодії Стан системи
Весь застосунок Окремі компоненти
Повільно Швидко
6. Всередині
Як все працює в деталях: (це взагалі не до вас)
Юніт тести
Інтеграційні тести
Функціональні тести
Ззовні
Як все працює загалом: (а оце для вас)
Прийомні тести (Acceptance)
10. НІТ!
Бо ми вивели серію обмежень для наших тестів.
А значить писати їх буде просто
11. Так ОСЬ!
тестувати систему ми можем тільки ззовні
тест бачить тільки те що бачить користувач
тест має бути максимально коротким
тест має бути простим як двері
12. Що з програмування НЕ ТРЕБА для
автотестів:
if/else - порушують однозначність виконання
for/while/until - роблять щось ніпонятне
abstract class interface - ускладнюють розуміння
type A<T> - переобтяжують написання коду
13. Чим краще ви знаєте
програмування тим складніше вам
написати простий тест
14. Як має виглядати тест
// Given
I.openWebSite();
// When
I.changeSomething();
// Then
I.seeItWasChaged();
15. Як це працює в вебі
// Given
I.amOnPage('https://rozetka.ua');
// when
I.click('Блендер')
I.see('Категорія: Блендери')
I.click('Samsung')
I.click('Купити')
// Then
I.see('Блендер Samsung додано в кошик')
16. Що треба щоб тестувати веб
Базовий JavaScript
HTML елементи
CSS та як по ньому шукати елементи
Що таке DevTools
XPath ви все одно його не вивчите. Гугл в помічь
Робота з терміналом
Робота з гітом
Мати наставника
17. Ваш тест може робити тільки те що може
зробити будь-який користувач
18. Java vs JavaScript
// java
import java.io.*;
class Test {
public static void main()
{
System.out.println("Привіт");
}
}
// javascript
console.log('Привіт')
32. Як налаштувати CI сервер
напишіть пару браузерних тестів
попросіть розробників налаштувати вам CI
33. Як почати писати тести
1. Оберіть веб-сайт (ні, не Google.com)
2. Встановіть фреймворк тестування
3. Використовуючи інфу з DevTools керуйте браузером
4. Записуйте результати в код
5. Запускайте!
34. Дякую за увагу!
Михайло Боднарчук
Twitter: @davert
GitHub: DavertMik
LinkedIn linkedin.com/in/davert
CodeceptJS найкращий фреймворк для тестів на JavaScript
Testomat.io
t.me/sorrytell мій телеграм канал (не про тестування)