Професия qa инженер - softuniconf june 2015
TRANSCRIPT
Професия QA инженер
Peter SabevQA Managerwww.psabev.info Software Universityhttp://softuni.bg
2
Запознайте се с Борислав(a.k.a. Българският Jason Statham)
!(Борислав)Борислав
www.qachallengeaccepted.com
3
Трябва да разкажешна тези хора за цяла
професия, все едно си лафим в метрото и имаш
време от центъра до летището…
4
МС „Сердика“
Единствената (засега) трансферна метростанция в България
5
Няколко бъга в любими игри…
6
7
8
9
10
11
12
13
TOP-5 „любими“ бъга
5. Бъг в софтуера на Мичиганския затвор погрешно причинява
предсрочно освобождаване на 23 тежко проявени
затворници…
14
TOP-5 „любими“ бъга
4. Грешка във firmware на мрежова карта причинява
проблем в РВД-системата на Лос Анджелис, заради което 17 000 самолета са свалени и над 8 часа никой не лети от и
към САЩ
15
TOP-5 „любими“ бъга
3. healthcare.gov
Новият сайт на американското министерство на здравеопазването
просто не е бил тестван за натоварване от повече
потребители. При обявяването му всички сървъри се сриват.
Поправката струва $600 000 000.
16
TOP-5 „любими“ бъга
2. Поради объркване на базите данни, системата за трафик-нарушения в Париж
вписва пощенския код вместо кода на нарушението. В резултат вместо глоба за превишена скорост или
неправилно престрояване, гражданите получават такива за тежки престъпления като
убийство, грабеж или изнасилване.
17
TOP-5 „любими“ бъга
1. Advanced Field ArtilleryTactical Data System
По време на военно учение във Fort Drum, двама войници
пропускат да въведат разстояние до целта в артилерийската
система. Вместо съобщение за грешка, системата приема 0 за стойност по подразбиране и ги
взривява.
18
Автомобили, магистрали, влакове, самолети, летища, атомни електроцентрали и електроуреди – днес всички те се
управляват от софтуер!
Неадекватното тестване може да струва пари, имидж и дори човешки животи!!!
Помислете…
19
Ето затова са нужни QA инженерите!
QA
20
МС „СУ Св. Климент Охридски“
Единствената метростанция с подвижни тротоари
21
Quality Assurance (Осигуряване на качеството) e процес, включващ всички действия в жизнения цикъл на даден софтуерен продукт, концентрирани върху планирането, подготовката и развитието на продукта и неговата работа, с три основни цели:
1. Да се определи дали изискванията са удовлетворени;
2. Да се потвърди, че продуктът работи по предназначение;
3. Да се открият грешки (a.k.a. бъгове, дефекти, проблеми).
Какво е QA?
22
МС „Стадион Васил Левски“
Оформена в цветовете на слайдовете от тази презентация
23
Такъв, за който са удовлетворени всички функционални и нефункционални изисквания.
Какво е качествен софтуер?
24
Пример: Windows Calculator
2+2 трябва да дава 4
Софтуерът трябва да е ФУНКЦИОНАЛЕН!
25
2+2 трябва ВИНАГИ да дава 4…
(представете си, ако това се случваше само в 62% от случаите)
Софтуерът трябва да е НАДЕЖДЕН!
26
Всеки софтуер трябва да е удобен за ползване…
Представете си ей такава клавиатура:
Софтуерът трябва да е ПОЛЗВАЕМ!
27
Всеки софтуер трябва да работи ефективно спрямо ситуацията и ресурсите. Представете си при „2+2“ да се случва това:
Софтуерът трябва да е ЕФЕКТИВЕН!
28
Промени и корекции трябва да се извършват лесно.
Софтуерът трябва да може ДА СЕ ПОДДЪРЖА!
Нова функционалност
29
Софтуерът трябва да работи на различни среди и платформи, както софтуерни, така и хардуерни…
Софтуерът трябва да е ПРЕНОСИМ!
30
QA инженерът трябва да провери всичко това!
QA
31
МС „Жолио-Кюри“ (слезте тук за СофтУни)
Последно има ли тире между „Жолио“ и „Кюри“?
32
DISCLAIMER: Без мишкоблудци!
QA vs. Developer
33
Software Developer знае една технология почти съвършено (напр. Java), но рядко има понятие от хардуер, мрежи, операционни системи, системни процеси, стандарти, маркетингово позициониране и конкурентни пазари,
UI/UX, load balancing и др.
Един добър Quality Assurance Engineer знае по малко за всички тези неща, макар рядко да има понятие от тях в
дълбочина…
QA vs. Developer
34
МС „Г. М. Димитров“
Излизаме над земната повърхност…
35
Как се тества?
Изберете картинка(от 1 до 9)
36
Резултат
1. Чувствителен и разсъдлив2. Независим и необикновен3. Динамичен и отворен4. Хармоничен и здраво стъпил
на земята5. Професионалист и
самоуверен6. Дискретен и миролюбив7. Весел и игрив8. Романтичен и мечтател9. Аналитичен и надежден
37
Схемата е една и съща!
SUT(System Under Test)
Входниданни
Изходниданни
Резултат
Очакван резултат
QA Failed
38
Калкулатор
2+2 4
Очакван резултат:
4
Реален резултат:
4
QA Passed
39
Човек
8
Очакван резултат:
?
Реален резултат:
8
40
Тестов оракул
SUT(System Under Test)
Входниданни
Изходниданни
Резултат
Очакван резултатTest Oracle
Спецификации, договори, подобни продукти, стари версии на същия продукт, клиентски
очаквания, стандарти, закони и др.
41
Black Box Testing
Не знаем как работи системата
Входниданни
Изходниданни
42
White (Glass) Box Testing
Знаем точно как работи системата
Входниданни
Изходниданни
43
Предимство на White Box Testing
Знаейки как работи една система, можем да
покрием максимална функционалност с
минимален брой тестове.
44
МС „Мусагеница“
Кръстена на бог Аполон (Мусагет)?
45
Test Plan
Тестов план, тестови случаи и др.
Test SuiteTest SuiteTest Suite(Test Script)
(Test Scenario)
1. Test Step
2. Test Step
3. Test Step
4. Test Step
Test Case
Test Case
People &Responsibilities
Schedule &Enviroments
46
1. Натиснете Start бутона в долния ляв ъгъл.
2. Намерете Calculator и щракнете с левия бутон на мишката. (Уверете се, че калкулаторът се е появил на екрана.)
3. Въведете: 2+2
4. Натиснете ENTER
Очакван резултат:
На екрана се изписва „4“.
Няма друга промяна в системата, няма съобщения за грешки.
Примерен тестов случай (test case)
47
МС „Младост 1“
Който е към Бизнес парка, да слиза тук и да чака…
48
Видове тестване
ТестванеФункционално
Тестване за приемане от
крайния потребител
Тестване на интеграцията на
системите
Тестване на системата
Тестване на интеграцията на компонентите
Тестване на компонента
Нефункционално
49
V-ModelТестване за приемане от крайния потребител(User Acceptance Testing)
Тестване на интеграцията на системите(System Integration Testing)
Тестване на системата(System Testing)
Тестване на интеграцията на компонентите(Component Integration Testing)
Тестване на компонента(Unit/Component Testing)
Бизнес изисквания(Business Requirements)
Функционалниспецификации
(Functional Specifications)
Технически спецификации(Technical Specifications)
Програмни спецификации(Program Specifications)
Код(Source Code)
50
МС „Младост 3“
Директно на 3: защото „Втора младост“ е пенсионерски вестник
51
Нефункционално тестване
ТестванеФункционално
Нефункционално
Performance Testing
Load Testing
Stress Testing
Endurance Testing
Volume Testing
Scalability Testing
Usability Testing
… и др.
52
1000 потребители, правещи 1 KB трафик на сайт в рамките на 1 минута се нарича LOAD TESTING
1 потребител, качващ 1 файл с размер 10 GB на сайт в рамките на 1 час се нарича VOLUME TESTING
1 потребител, работещ на сайт в рамките на 100 часа без прекъсване се нарича ENDURANCE TESTING
(всякакво комбиниране е допустимо)
Load vs. Volume vs. Endurance Testing
53
Performance vs. Load vs. Stress Testing
54
Performance vs. Load vs. Stress Testing
Капацитет: 40 едновременни клиента
Stress Testing
Load Testing
Performance Testing
Reliability: 95% (при 5% върнати грешки)
Scalability: При 20+ потребители, се включва load balancer
55
Usability с Heatmap
56
Usability с A/B Testing
57
Penetration Testing SQL Injection OS Injection Cross-Site Scripting (XSS) Cross-Site Request Forgery (XSRF) Other
Vulnerability Scanning Security Audits
Security Testing
58
Тестване на инсталацията (Installation Testing) Инсталира ли се продуктът? Правилно ли се ъпгрейдва от всяка до всяка версия?
Тестване на документацията (Documentation Testing) Всичко ли е документирано? Вярна и точна ли е?
Тестване на съвместимостта (Compatibility Testing) Различни операционни системи, платформи и др.
Тестване на възстановяването (Recoverability Testing) Ако спре токът, нетът, няма дисково място и тем подобни
И много други…
Други
59
МС „Интер Експо Център – Цариградско шосе“
Защото никой не се е сетил за по-кратко име…
60
„Бъговете“ са навсякъде около нас
61
Когато открием бъг, трябва да го опишем: Заглавие – кратко, ясно и с един поглед да се разбира Подробно описание – стъпки за репродуциране,
очакван и реален резултат Приоритет и потенциална опасност – колко спешно
трябва да се оправи и какви щети може да нанесе Screenshots, логове, дъмпове и друга важна
информация
Bug Тracking
62
Bug Tracking Software
63
Bug Tracking Software
64
Bug Tracking Software - JIRA
65
МС „Дружба“
Едва на 3 месеца…
66
Regression Testing е повтарящо се тестване на
текущата функционалност, за да се уверим, че оправяйки
даден бъг или добавяйки нова функционалност не сме
увредили вече съществуващата.
Може да бъде ръчно и автоматично.
Регресионно тестване и автоматизация
67
Инструменти за автоматизирано тестване
Администрация и управление на тестовете (напр. JIRA) Генератори на тестови данни (напр. SQL Data Generator) Тест драйвери и симулатори Тест роботи
Capture and Replay (Selenium) Performance Testing (JMeter) Web Testing (gtmetrics.com) Debuggers (Eclipse) Static Analyzers (SonarQube)
68
Seleniumpackage org.openqa.selenium.example;
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class Example { public static void main(String[] args) { // Create a new instance of the html unit driver // Notice that the remainder of the code relies on the interface, // not the implementation. WebDriver driver = new HtmlUnitDriver();
// And now use this to visit Google driver.get("http://www.google.com");
// Find the text input element by its name WebElement element = driver.findElement(By.name("q"));
// Enter something to search for element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element element.submit();
// Check the title of the page System.out.println("Page title is: " + driver.getTitle());
driver.quit(); }}
Automation QA = Developer in Test
69
МС „Искърско шосе“
За втори път – връзка с БДЖ
70
Причина No. 3: Повече бираTOP 3 причини да станете QA инженер
https://www.facebook.com/groups/qabulgaria/
71
TOP 3 причини да станете QA инженер
Причина No. 2: Повече колежки (32%)
72
Причина No. 1: Най-щастливите IT служители са QAThe Happiest Jobs in America (Source: Career Bliss)
1. Real estate agent
2. Senior QA engineer3. Senior sales representative
4. Construction superintendent
5. Senior application developer
6. Logistics manager
7. Construction manager
8. Executive administrative assistant
9. Network engineer
10. Assistant controller
TOP 3 причини да станете QA инженер
73
МС „Софийска Света гора“
Нито е света, нито е гора и почти не е софийска…
74
QA Intern
Junior QA
Regular QA
Senior QA
QA Lead
QA Manager
QA DirectorВертикално:
Възможности за кариерно развитие
Automation QA
Senior Automation QA
QA Automation Lead
QA Architect
Non-Functional QA
Senior Non-Functional QA
Non-Functional QA Lead
75
Хоризонтално:
Възможности за кариерно развитие
QA Specialist
SoftwareDeveloper
TechnicalDocumentation
Delivery Specialist
Product / Project
ManagerProcess Engineer /
Quality Auditor
Build Engineer / Operations Specialist
Business Analyst
Support
76
МС „Летище София“
Крайна станция. Приятен полет!
Questions??
??
?
?
??
?
?
http://softuni.org/courses
Questions??
??
?
?
??
?
?
Coffee is served on board!
Peter [email protected]/in/petersabevfacebook.com/peter.sabev@BORIME4KA
Thanks for your attention!
License
This course (slides, examples, demos, videos, homework, etc.)is licensed under the "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International" license
79
All copyrights belong to their respective owners.
Images owned by other copyright holders are used here under the guidelines of the Fair Use provisions of United States Copyright Law.
Free Trainings @ Software University Software University Foundation – softuni.org Software University – High-Quality Education,
Profession and Job for Software Developers softuni.bg
Software University @ Facebook facebook.com/SoftwareUniversity
Software University @ YouTube youtube.com/SoftwareUniversity
Software University Forums – forum.softuni.bg