QA инженерите се занимават с осигуряване на качеството на софтуера, тестване и цялостно управление на процеса на разработка. Освен да търсят бъгове, да ги описват и да ги проследяват до отстраняването им, QA инженерите се занимават и с програмиране на автоматизирани инструменти за тестване, които осигуряват повторяемост на тестовете и осигуряват качество в дългосрочен план. В лекцията ще поговорим за всичко това с много примери от реалния живот на един QA инженер.
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
Автомобили, магистрали, влакове, самолети, летища,
атомни електроцентрали и електроуреди – днес всички те се
управляват от софтуер!
Неадекватното тестване може да струва пари, имидж и дори
човешки животи!!!
Помислете…
21. 21
Quality Assurance (Осигуряване на качеството) e процес,
включващ всички действия в жизнения цикъл на даден
софтуерен продукт, концентрирани върху планирането,
подготовката и развитието на продукта и неговата работа, с
три основни цели:
1. Да се определи дали изискванията са удовлетворени;
2. Да се потвърди, че продуктът работи по предназначение;
3. Да се открият грешки (a.k.a. бъгове, дефекти, проблеми).
Какво е QA?
25. 25
2+2 трябва ВИНАГИ да дава 4…
(представете си, ако това се случваше само в 62% от случаите)
Софтуерът трябва да е НАДЕЖДЕН!
26. 26
Всеки софтуер трябва да е удобен за ползване…
Представете си ей такава клавиатура:
Софтуерът трябва да е ПОЛЗВАЕМ!
27. 27
Всеки софтуер трябва да работи ефективно спрямо ситуацията
и ресурсите. Представете си при „2+2“ да се случва това:
Софтуерът трябва да е ЕФЕКТИВЕН!
28. 28
Промени и корекции трябва да се извършват лесно.
Софтуерът трябва да може ДА СЕ ПОДДЪРЖА!
Нова
функционалност
29. 29
Софтуерът трябва да работи на различни среди и платформи,
както софтуерни, така и хардуерни…
Софтуерът трябва да е ПРЕНОСИМ!
33. 33
Software Developer знае една технология почти съвършено
(напр. Java), но рядко има понятие от хардуер, мрежи,
операционни системи, системни процеси, стандарти,
маркетингово позициониране и конкурентни пазари,
UI/UX, load balancing и др.
Един добър Quality Assurance Engineer знае по малко за
всички тези неща, макар рядко да има понятие от тях в
дълбочина…
QA vs. Developer
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
Спецификации, договори, подобни продукти,
стари версии на същия продукт, клиентски
очаквания, стандарти, закони и др.
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)
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
58. 58
Тестване на инсталацията (Installation Testing)
Инсталира ли се продуктът?
Правилно ли се ъпгрейдва от всяка до всяка версия?
Тестване на документацията (Documentation Testing)
Всичко ли е документирано?
Вярна и точна ли е?
Тестване на съвместимостта (Compatibility Testing)
Различни операционни системи, платформи и др.
Тестване на възстановяването (Recoverability Testing)
Ако спре токът, нетът, няма дисково място и тем подобни
И много други…
Други
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 инженер
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