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

  • View
    461

  • Download
    11

  • Category

    Software

Preview:

Citation preview

Професия 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??

??

?

?

??

?

?

Coffee is served on board!

Peter Sabevpsabev@gmail.comlinkedin.com/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

Recommended