SlideShare une entreprise Scribd logo
1  sur  80
Професия QA инженер
Peter Sabev
QA Manager
www.psabev.info
Software University
http://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 Artillery
Tactical Data System
По време на военно учение във
Fort Drum, двама войници
пропускат да въведат разстояние
до целта в артилерийската
система. Вместо съобщение за
грешка, системата приема 0 за
стойност по подразбиране и ги
взривява.
18
Автомобили, магистрали, влакове, самолети, летища,
атомни електроцентрали и електроуреди – днес всички те се
управляват от софтуер!
Неадекватното тестване може да струва пари, имидж и дори
човешки животи!!!
Помислете…
19
Ето затова са нужни 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 инженерът трябва да провери всичко това!
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
МС „Мусагеница“
Test Plan
45
Тестов план, тестови случаи и др.
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“
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
МС „Дружба“
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
Selenium
package 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 служители са QA
The Happiest Jobs in America (Source: Career Bliss)
1. Real estate agent
2. Senior QA engineer
3. 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
МС „Софийска Света гора“
QA Intern
Junior QA
Regular QA
Senior QA
QA Lead
QA Manager
QA Director
74
Вертикално:
Възможности за кариерно развитие
Automation
QA
Senior
Automation QA
QA Automation
Lead
QA Architect
Non-
Functional QA
Senior Non-
Functional QA
Non-Functional
QA Lead
75
Хоризонтално:
Възможности за кариерно развитие
QA
Specialist
Software
Developer
Technical
Documentation
Delivery
Specialist
Product /
Project
ManagerProcess
Engineer /
Quality
Auditor
Build
Engineer /
Operations
Specialist
Business
Analyst
Support
76
МС „Летище София“
?
http://softuni.org/courses
?
Coffee is served on board!
Peter Sabev
psabev@gmail.com
linkedin.com/in/petersabev
facebook.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

Contenu connexe

Tendances

Test Cases Maintaining & Documenting
Test Cases Maintaining & DocumentingTest Cases Maintaining & Documenting
Test Cases Maintaining & DocumentingSeyed Ali Marjaie
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentJoseph Beale
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
Exploratory testing using heuristics
Exploratory testing using heuristicsExploratory testing using heuristics
Exploratory testing using heuristicsMichelle Lagare, CSM
 
Test Planning & Test Strategy
Test Planning & Test StrategyTest Planning & Test Strategy
Test Planning & Test StrategyRoman Iakymchuk
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testingpingkapil
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best PracticesSauce Labs
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testingTharinda Liyanage
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredElias Nogueira
 
Performance Testing Using JMeter | Edureka
Performance Testing Using JMeter | EdurekaPerformance Testing Using JMeter | Edureka
Performance Testing Using JMeter | EdurekaEdureka!
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software TestingMohammed Moishin
 
Functional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaFunctional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaEdureka!
 
Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013XBOSoft
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testingHuib Schoots
 

Tendances (20)

Test Cases Maintaining & Documenting
Test Cases Maintaining & DocumentingTest Cases Maintaining & Documenting
Test Cases Maintaining & Documenting
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile Environment
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
Introduction & Manual Testing
Introduction & Manual TestingIntroduction & Manual Testing
Introduction & Manual Testing
 
Exploratory testing using heuristics
Exploratory testing using heuristicsExploratory testing using heuristics
Exploratory testing using heuristics
 
Test Planning & Test Strategy
Test Planning & Test StrategyTest Planning & Test Strategy
Test Planning & Test Strategy
 
Quality Assurance and Software Testing
Quality Assurance and Software TestingQuality Assurance and Software Testing
Quality Assurance and Software Testing
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Exploratory Testing in Practice
Exploratory Testing in PracticeExploratory Testing in Practice
Exploratory Testing in Practice
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssured
 
JMeter
JMeterJMeter
JMeter
 
Performance Testing Using JMeter | Edureka
Performance Testing Using JMeter | EdurekaPerformance Testing Using JMeter | Edureka
Performance Testing Using JMeter | Edureka
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Functional Testing Tutorial | Edureka
Functional Testing Tutorial | EdurekaFunctional Testing Tutorial | Edureka
Functional Testing Tutorial | Edureka
 
Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013Software Quality Metrics for Testers - StarWest 2013
Software Quality Metrics for Testers - StarWest 2013
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
 

Similaire à Професия QA инженер - SoftUniConf June 2015

Курс качество на софтуера - част 1
Курс качество на софтуера - част 1Курс качество на софтуера - част 1
Курс качество на софтуера - част 1Kalin Vasilev
 
Тестове на уеб приложения
Тестове на уеб приложенияТестове на уеб приложения
Тестове на уеб приложенияKalin Vasilev
 
Continuous integration (d.atanasov)
Continuous integration (d.atanasov)Continuous integration (d.atanasov)
Continuous integration (d.atanasov)Deyan Atanasov
 
причини за автоматизация на тестването
причини за автоматизация на тестванетопричини за автоматизация на тестването
причини за автоматизация на тестванетоEvgeni Tsonev
 
High Quality Code Introduction
High Quality Code IntroductionHigh Quality Code Introduction
High Quality Code IntroductionSvetlin Nakov
 
Nakov High Quality Code
Nakov High Quality CodeNakov High Quality Code
Nakov High Quality CodeSvetlin Nakov
 
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)Lubomir Chorbadjiev
 
[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with JenkinsBorislav Traykov
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical DebtAdrian Mitev
 
Linux: Relaxing Administration - New Horizons Bulgaria
Linux: Relaxing Administration - New Horizons BulgariaLinux: Relaxing Administration - New Horizons Bulgaria
Linux: Relaxing Administration - New Horizons BulgariaNew Horizons Bulgaria
 
Visual Studio Team System 2008 Test Edition(for Software Tester)
Visual Studio Team System  2008 Test Edition(for Software Tester)Visual Studio Team System  2008 Test Edition(for Software Tester)
Visual Studio Team System 2008 Test Edition(for Software Tester)Yosifov
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummiesCode Runners
 
Usability Testing за нула време, с нула пари и нула опит
Usability Testing за нула време, с нула пари и нула опитUsability Testing за нула време, с нула пари и нула опит
Usability Testing за нула време, с нула пари и нула опитPeter Sabev
 
Как да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходКак да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходBozhidar Boshnakov
 
High Volume Monitoring with Graphite
High Volume Monitoring with GraphiteHigh Volume Monitoring with Graphite
High Volume Monitoring with Graphitezeridon
 

Similaire à Професия QA инженер - SoftUniConf June 2015 (20)

Курс качество на софтуера - част 1
Курс качество на софтуера - част 1Курс качество на софтуера - част 1
Курс качество на софтуера - част 1
 
Тестове на уеб приложения
Тестове на уеб приложенияТестове на уеб приложения
Тестове на уеб приложения
 
Continuous integration (d.atanasov)
Continuous integration (d.atanasov)Continuous integration (d.atanasov)
Continuous integration (d.atanasov)
 
причини за автоматизация на тестването
причини за автоматизация на тестванетопричини за автоматизация на тестването
причини за автоматизация на тестването
 
Writing tests in Go
Writing tests in GoWriting tests in Go
Writing tests in Go
 
DrupalCamp Sofia 2015
DrupalCamp Sofia 2015DrupalCamp Sofia 2015
DrupalCamp Sofia 2015
 
J-Unit тестове
J-Unit тестовеJ-Unit тестове
J-Unit тестове
 
Стар проект на Благо?!
Стар проект на Благо?!Стар проект на Благо?!
Стар проект на Благо?!
 
High Quality Code Introduction
High Quality Code IntroductionHigh Quality Code Introduction
High Quality Code Introduction
 
Nakov High Quality Code
Nakov High Quality CodeNakov High Quality Code
Nakov High Quality Code
 
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
 
[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Linux: Relaxing Administration - New Horizons Bulgaria
Linux: Relaxing Administration - New Horizons BulgariaLinux: Relaxing Administration - New Horizons Bulgaria
Linux: Relaxing Administration - New Horizons Bulgaria
 
Visual Studio Team System 2008 Test Edition(for Software Tester)
Visual Studio Team System  2008 Test Edition(for Software Tester)Visual Studio Team System  2008 Test Edition(for Software Tester)
Visual Studio Team System 2008 Test Edition(for Software Tester)
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummies
 
Usability Testing за нула време, с нула пари и нула опит
Usability Testing за нула време, с нула пари и нула опитUsability Testing за нула време, с нула пари и нула опит
Usability Testing за нула време, с нула пари и нула опит
 
Sample IT Test 13
Sample IT Test 13Sample IT Test 13
Sample IT Test 13
 
Как да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходКак да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подход
 
High Volume Monitoring with Graphite
High Volume Monitoring with GraphiteHigh Volume Monitoring with Graphite
High Volume Monitoring with Graphite
 

Plus de Peter Sabev

Burnout - синдром на професионалното изчерпване
Burnout - синдром на професионалното изчерпванеBurnout - синдром на професионалното изчерпване
Burnout - синдром на професионалното изчерпванеPeter Sabev
 
Secure Software: Action, Comedy or Drama? (2017 edition)
Secure Software: Action, Comedy or Drama? (2017 edition)Secure Software: Action, Comedy or Drama? (2017 edition)
Secure Software: Action, Comedy or Drama? (2017 edition)Peter Sabev
 
Ако можех да се клонирам... Можеш! Делегирай!
Ако можех да се клонирам...Можеш! Делегирай!Ако можех да се клонирам...Можеш! Делегирай!
Ако можех да се клонирам... Можеш! Делегирай!Peter Sabev
 
Reporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons LearnedReporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons LearnedPeter Sabev
 
Петър Събев - Как да работим с англичани
Петър Събев - Как да работим с англичаниПетър Събев - Как да работим с англичани
Петър Събев - Как да работим с англичаниPeter Sabev
 
Veselin Berov - Testing in the World of Information Management
Veselin Berov - Testing in the World of Information ManagementVeselin Berov - Testing in the World of Information Management
Veselin Berov - Testing in the World of Information ManagementPeter Sabev
 
Slavy Slavov - 6 Common Challenges Setting Up Selenium in High Scale
Slavy Slavov - 6 Common Challenges Setting Up Selenium in High ScaleSlavy Slavov - 6 Common Challenges Setting Up Selenium in High Scale
Slavy Slavov - 6 Common Challenges Setting Up Selenium in High ScalePeter Sabev
 
Working with UK people (for Bulgarians)
Working with UK people (for Bulgarians)Working with UK people (for Bulgarians)
Working with UK people (for Bulgarians)Peter Sabev
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015Peter Sabev
 
RuseConf 2014 - Как да създадем съвършен екип с несъвършени хора
RuseConf 2014 - Как да създадем съвършен екип с несъвършени хораRuseConf 2014 - Как да създадем съвършен екип с несъвършени хора
RuseConf 2014 - Как да създадем съвършен екип с несъвършени хораPeter Sabev
 

Plus de Peter Sabev (10)

Burnout - синдром на професионалното изчерпване
Burnout - синдром на професионалното изчерпванеBurnout - синдром на професионалното изчерпване
Burnout - синдром на професионалното изчерпване
 
Secure Software: Action, Comedy or Drama? (2017 edition)
Secure Software: Action, Comedy or Drama? (2017 edition)Secure Software: Action, Comedy or Drama? (2017 edition)
Secure Software: Action, Comedy or Drama? (2017 edition)
 
Ако можех да се клонирам... Можеш! Делегирай!
Ако можех да се клонирам...Можеш! Делегирай!Ако можех да се клонирам...Можеш! Делегирай!
Ако можех да се клонирам... Можеш! Делегирай!
 
Reporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons LearnedReporting bugs: Errors Made and Lessons Learned
Reporting bugs: Errors Made and Lessons Learned
 
Петър Събев - Как да работим с англичани
Петър Събев - Как да работим с англичаниПетър Събев - Как да работим с англичани
Петър Събев - Как да работим с англичани
 
Veselin Berov - Testing in the World of Information Management
Veselin Berov - Testing in the World of Information ManagementVeselin Berov - Testing in the World of Information Management
Veselin Berov - Testing in the World of Information Management
 
Slavy Slavov - 6 Common Challenges Setting Up Selenium in High Scale
Slavy Slavov - 6 Common Challenges Setting Up Selenium in High ScaleSlavy Slavov - 6 Common Challenges Setting Up Selenium in High Scale
Slavy Slavov - 6 Common Challenges Setting Up Selenium in High Scale
 
Working with UK people (for Bulgarians)
Working with UK people (for Bulgarians)Working with UK people (for Bulgarians)
Working with UK people (for Bulgarians)
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
 
RuseConf 2014 - Как да създадем съвършен екип с несъвършени хора
RuseConf 2014 - Как да създадем съвършен екип с несъвършени хораRuseConf 2014 - Как да създадем съвършен екип с несъвършени хора
RuseConf 2014 - Как да създадем съвършен екип с несъвършени хора
 

Професия QA инженер - SoftUniConf June 2015

  • 1. Професия QA инженер Peter Sabev QA Manager www.psabev.info Software University http://softuni.bg
  • 2. 2 Запознайте се с Борислав (a.k.a. Българският Jason Statham) !(Борислав) Борислав www.qachallengeaccepted.com
  • 3. 3 Трябва да разкажеш на тези хора за цяла професия, все едно си лафим в метрото и имаш време от центъра до летището…
  • 5. 5 Няколко бъга в любими игри…
  • 6. 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13 TOP-5 „любими“ бъга 5. Бъг в софтуера на Мичиганския затвор погрешно причинява предсрочно освобождаване на 23 тежко проявени затворници…
  • 14. 14 TOP-5 „любими“ бъга 4. Грешка във firmware на мрежова карта причинява проблем в РВД-системата на Лос Анджелис, заради което 17 000 самолета са свалени и над 8 часа никой не лети от и към САЩ
  • 15. 15 TOP-5 „любими“ бъга 3. healthcare.gov Новият сайт на американското министерство на здравеопазването просто не е бил тестван за натоварване от повече потребители. При обявяването му всички сървъри се сриват. Поправката струва $600 000 000.
  • 16. 16 TOP-5 „любими“ бъга 2. Поради объркване на базите данни, системата за трафик-нарушения в Париж вписва пощенския код вместо кода на нарушението. В резултат вместо глоба за превишена скорост или неправилно престрояване, гражданите получават такива за тежки престъпления като убийство, грабеж или
  • 17. 17 TOP-5 „любими“ бъга 1. Advanced Field Artillery Tactical Data System По време на военно учение във Fort Drum, двама войници пропускат да въведат разстояние до целта в артилерийската система. Вместо съобщение за грешка, системата приема 0 за стойност по подразбиране и ги взривява.
  • 18. 18 Автомобили, магистрали, влакове, самолети, летища, атомни електроцентрали и електроуреди – днес всички те се управляват от софтуер! Неадекватното тестване може да струва пари, имидж и дори човешки животи!!! Помислете…
  • 19. 19 Ето затова са нужни QA инженерите!
  • 20. 20 МС „СУ Св. Климент Охридски“
  • 21. 21 Quality Assurance (Осигуряване на качеството) e процес, включващ всички действия в жизнения цикъл на даден софтуерен продукт, концентрирани върху планирането, подготовката и развитието на продукта и неговата работа, с три основни цели: 1. Да се определи дали изискванията са удовлетворени; 2. Да се потвърди, че продуктът работи по предназначение; 3. Да се открият грешки (a.k.a. бъгове, дефекти, проблеми). Какво е QA?
  • 23. 23 Такъв, за който са удовлетворени всички функционални и нефункционални изисквания. Какво е качествен софтуер?
  • 24. 24 Пример: Windows Calculator 2+2 трябва да дава 4 Софтуерът трябва да е ФУНКЦИОНАЛЕН!
  • 25. 25 2+2 трябва ВИНАГИ да дава 4… (представете си, ако това се случваше само в 62% от случаите) Софтуерът трябва да е НАДЕЖДЕН!
  • 26. 26 Всеки софтуер трябва да е удобен за ползване… Представете си ей такава клавиатура: Софтуерът трябва да е ПОЛЗВАЕМ!
  • 27. 27 Всеки софтуер трябва да работи ефективно спрямо ситуацията и ресурсите. Представете си при „2+2“ да се случва това: Софтуерът трябва да е ЕФЕКТИВЕН!
  • 28. 28 Промени и корекции трябва да се извършват лесно. Софтуерът трябва да може ДА СЕ ПОДДЪРЖА! Нова функционалност
  • 29. 29 Софтуерът трябва да работи на различни среди и платформи, както софтуерни, така и хардуерни… Софтуерът трябва да е ПРЕНОСИМ!
  • 30. 30 QA инженерът трябва да провери всичко това!
  • 31. 31 МС „Жолио-Кюри“ (слезте тук за СофтУни)
  • 33. 33 Software Developer знае една технология почти съвършено (напр. Java), но рядко има понятие от хардуер, мрежи, операционни системи, системни процеси, стандарти, маркетингово позициониране и конкурентни пазари, UI/UX, load balancing и др. Един добър Quality Assurance Engineer знае по малко за всички тези неща, макар рядко да има понятие от тях в дълбочина… QA vs. Developer
  • 34. 34 МС „Г. М. Димитров“
  • 35. 35 Как се тества? Изберете картинка (от 1 до 9)
  • 36. 36 Резултат 1. Чувствителен и разсъдлив 2. Независим и необикновен 3. Динамичен и отворен 4. Хармоничен и здраво стъпил на земята 5. Професионалист и самоуверен 6. Дискретен и миролюбив 7. Весел и игрив 8. Романтичен и мечтател 9. Аналитичен и надежден
  • 37. 37 Схемата е една и съща! SUT (System Under Test) Входни данни Изходни данни Резултат Очакван резултат QA Failed
  • 40. 40 Тестов оракул SUT (System Under Test) Входни данни Изходни данни Резултат Очакван резултатTest Oracle Спецификации, договори, подобни продукти, стари версии на същия продукт, клиентски очаквания, стандарти, закони и др.
  • 41. 41 Black Box Testing Не знаем как работи системата Входни данни Изходни данни
  • 42. 42 White (Glass) Box Testing Знаем точно как работи системата Входни данни Изходни данни
  • 43. 43 Предимство на White Box Testing Знаейки как работи една система, можем да покрием максимална функционалност с минимален брой тестове.
  • 45. Test Plan 45 Тестов план, тестови случаи и др. 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. 46 1. Натиснете Start бутона в долния ляв ъгъл. 2. Намерете Calculator и щракнете с левия бутон на мишката. (Уверете се, че калкулаторът се е появил на екрана.) 3. Въведете: 2+2 4. Натиснете ENTER Очакван резултат: На екрана се изписва „4“. Няма друга промяна в системата, няма съобщения за грешки. Примерен тестов случай (test case)
  • 48. 48 Видове тестване Тестване Функционално Тестване за приемане от крайния потребител Тестване на интеграцията на системите Тестване на системата Тестване на интеграцията на компонентите Тестване на компонента Нефункционално
  • 49. 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)
  • 51. 51 Нефункционално тестване Тестване Функционално Нефункционално Performance Testing Load Testing Stress Testing Endurance Testing Volume Testing Scalability Testing Usability Testing … и др.
  • 52. 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. 53 Performance vs. Load vs. Stress Testing
  • 54. 54 Performance vs. Load vs. Stress Testing Капацитет: 40 едновременни клиента Stress Testing Load Testing Performance Testing Reliability: 95% (при 5% върнати грешки) Scalability: При 20+ потребители, се включва load balancer
  • 57. 57  Penetration Testing  SQL Injection  OS Injection  Cross-Site Scripting (XSS)  Cross-Site Request Forgery (XSRF)  Other  Vulnerability Scanning  Security Audits Security Testing
  • 58. 58  Тестване на инсталацията (Installation Testing)  Инсталира ли се продуктът?  Правилно ли се ъпгрейдва от всяка до всяка версия?  Тестване на документацията (Documentation Testing)  Всичко ли е документирано?  Вярна и точна ли е?  Тестване на съвместимостта (Compatibility Testing)  Различни операционни системи, платформи и др.  Тестване на възстановяването (Recoverability Testing)  Ако спре токът, нетът, няма дисково място и тем подобни  И много други… Други
  • 59. 59 МС „Интер Експо Център – Цариградско шосе“
  • 61. 61 Когато открием бъг, трябва да го опишем:  Заглавие – кратко, ясно и с един поглед да се разбира  Подробно описание – стъпки за репродуциране, очакван и реален резултат  Приоритет и потенциална опасност – колко спешно трябва да се оправи и какви щети може да нанесе  Screenshots, логове, дъмпове и друга важна информация Bug Тracking
  • 66. 66 Regression Testing е повтарящо се тестване на текущата функционалност, за да се уверим, че оправяйки даден бъг или добавяйки нова функционалност не сме увредили вече съществуващата. Може да бъде ръчно и автоматично. Регресионно тестване и автоматизация
  • 67. 67 Инструменти за автоматизирано тестване  Администрация и управление на тестовете (напр. JIRA)  Генератори на тестови данни (напр. SQL Data Generator)  Тест драйвери и симулатори  Тест роботи  Capture and Replay (Selenium)  Performance Testing (JMeter)  Web Testing (gtmetrics.com)  Debuggers (Eclipse)  Static Analyzers (SonarQube)
  • 68. 68 Selenium package 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
  • 70. 70 Причина No. 3: Повече бира TOP 3 причини да станете QA инженер https://www.facebook.com/groups/qabulgaria/
  • 71. 71 TOP 3 причини да станете QA инженер Причина No. 2: Повече колежки (32%)
  • 72. 72 Причина No. 1: Най-щастливите IT служители са QA The Happiest Jobs in America (Source: Career Bliss) 1. Real estate agent 2. Senior QA engineer 3. 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 инженер
  • 74. QA Intern Junior QA Regular QA Senior QA QA Lead QA Manager QA Director 74 Вертикално: Възможности за кариерно развитие Automation QA Senior Automation QA QA Automation Lead QA Architect Non- Functional QA Senior Non- Functional QA Non-Functional QA Lead
  • 75. 75 Хоризонтално: Възможности за кариерно развитие QA Specialist Software Developer Technical Documentation Delivery Specialist Product / Project ManagerProcess Engineer / Quality Auditor Build Engineer / Operations Specialist Business Analyst Support
  • 78. ? Coffee is served on board! Peter Sabev psabev@gmail.com linkedin.com/in/petersabev facebook.com/peter.sabev @BORIME4KA Thanks for your attention!
  • 79. 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.
  • 80. 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