Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

Software Testing

&
Quality Assurance
Що таке тестування ПЗ та як забезпечити якість?

2022 prjctr.com
What is Software Testing?

Тестування ПЗ - це розслідування з метою


донести до “стейкхолдерів” інформацію про
якість тестованого продукту чи послуги
What is Software Testing?

Тестування ПЗ - це дослідження з метою


донести до “стейкхолдерів” інформацію про
якість тестованого продукту чи послуги
Wikipedia: Дослідження

Дослі́дження, до́ сліди — (широко розуміючи)


пошук нових знань або систематичне
розслідування з метою встановлення фактів;
(вузько розуміючи) науковий метод (процес)
вивчення чого-небудь.
What is Software Testing?

Тестування ПЗ - це розслідування з метою


донести до “стейкхолдерів” інформацію про
якість тестованого продукту чи послуги

Wikipedia: Кримінальне слідство

Кримінальне розслідування - це збирання


та перевірка доказів, необхідних і
достатніх для з'ясування обставин.
What is Software Testing?

Тестування ПЗ - це розслідування з метою


донести до “стейкхолдерів” інформацію про
якість тестованого продукту чи послуги

Stakeholder

Stakeholder is any person or organization that is affected by


activities or a business, and can make decisions about it.

Надана інформація може набувати різних форм. Її вміст


може відрізнятись в залежності від того, кому конкретно
вона призначена.
What is Software Testing?

Тестування ПЗ - це розслідування з метою


донести до “стейкхолдерів” інформацію про
якість тестованого продукту чи послуги
What is Software Quality?
Одне з можливих визначень:
Explicit

Якість ПЗ відображає на скільки добре це


ПЗ відповідає і узгоджується із явними, і
неявними вимогами.
Implicit

Явні - написані чи озвучені.

Неявні - ті, про які ніхто не згадував аж поки не


стало запізно.

Вимоги формуються “стейкхолдерами”


Requirements vs Expectations

Explicit
Requirements
Customer Actual
Expectations Product
Requirements vs Expectations
Що не зрозуміли
стейкхолдери в
очікуваннях
користувачів
Explicit
Requirements
Customer Actual
Expectations Product
Requirements vs Expectations
Що не зрозуміли
розробники
Explicit
Requirements
Customer Actual
Expectations Product
Requirements vs Expectations

Explicit
Requirements
Customer Actual
Expectations Product

Що користувачі
марно очікували
Requirements vs Expectations

Explicit
Requirements
Customer Actual
Expectations Product

Програмісти зрозуміли,
а стейкхолдери - ні
Requirements vs Expectations

Explicit
Requirements
Customer Actual
Expectations Product

Ніхто не просив, але


реальність така
What is Software Quality?

“Ми є те, що ми постійно робимо.


Тому досконалість - це не єдина дія,
а повторювана звичка”
Арістотель
What is Software Testing?

Тобто треба контролювати не


тільки якість самого продукту,
а також і якість процесу розробки.

Авжеж!
What is Software Quality?

6 Software Quality Characteristics (according to ISO9126):


● Functionality - Функціональність
● Reliability - Надійність
● Usability - Легкість користування
● Efficiency - Ефективність
● Maintainability - Підтримуваність
● Portability - Переносимість
Context of Texting

The beauty is in the eye of the beholder

Краса з’являється в оці споглядача


Авжеж!
Мета Тестування

2022 prjctr.com
Software Testing Goals

● Знайти невідомі ризики:


○ Ризики мають вагу та імовірність,
тестувальники дають про них
інформацію
○ Перевіряємо важливу для
стейкхолдерів функціональність
Software Testing Goals

● Скоротити час фідбеку


○ Кожна зміна - ризик
○ Чим швидше ми його знайдемо,
тим більше часу на реагування
Software Testing Goals

● Зменшити вартість підтримки


○ Будьяке ПЗ потребує грошей, щоб
лишатись актуальним
○ Знайдені нами вади не
потраплять до юзерів
● Підвищити якість
○ Репутація важлива!
Software Testing Goals

● Зробити залежності явними


○ В сучасних системах сотні і тисячі
залежностей
○ Програмісти їх не помічають, поки
дотримуються своїх звичних
процедур
Software Testing Goals

● Полегшити життя команді


What Software Testers Do?
Software Testing includes:
● Requirements Analysis
● Test Planning
● Test Design
● Testing ..?
● Bugs Investigation
● Update Test Cases
● Bugs Submission
● QA Reports Creation
● Improvements suggestion
● …see developsense.com/blog/2014/10/testing-is/
Software Testers Do

● Сommunicate with developers


○ Знаходимо і (ввічливо)
повідомляємо про їхні помилки
○ Допомагаємо їм ставати краще

● Сommunicate with stakeholders


○ Допомога у прийнятті рішень
What QA/Testers Also Do
● Test Data:
○ Створення тестових даних
○ Опис граничних випадків та
формування наборів тестових
даних
● Test Environment:
○ Створення
○ Налаштування
○ Догляд
● Сreate automated scripts
● Automate routines
What QA/Testers Also Do

and also ... Improvements!

● Create test strategy


● Optimize flow in task tracker
● Optimize team processes
● Optimize inter-team collaboration

Improvements everywhere!
Tengible Results of
Software Testers Work
Tester’s Work Results
An Information in a form of:
● Bug Reports
● Test Cases
● Test Case Suites
● Checklists
● Automated Scripts
● QA Reports
● Improvement Reports

and thus, higher Quality of the product!


Tester’s Work Results

Чому тестувальники “дають п’


ять” коли знаходять критичний
баґ?
Tester’s Work Results

Тому що тепер вони


можуть сказати:

"Ми - корисні!"

James Bach
When to Start Testing?
What it costs to fix bugs?

In 2003 software bugs cost the US economy $59.5 billion


Коли було замало
тестування
Mars Climate Orbiter

… З аналізу даних зі станцій стеження було


встановлено, що апарат пройшов над
поверхнею Марсу на висоті всього 57 км
замість розрахункових 226 км і просто згорів в
атмосфері. Настільки велике відхилення було
викликано курйозною помилкою фахівців місії:
при розрахунках одна з груп використовувала
британські одиниці вимірювання (фунт-сила),
а інша — метричні (ньютон)

http://uk.wikipedia.org/wiki/Mars_Climate_Orbiter
Test Yourself on Software Testing

● What is Software Testing?


● What is Software Quality?
● What are characteristics of
the Software Quality?
● QA Deliverables?
Useful books
1. Perfect Software: And Other Illusions about Testing: Gerald M. Weinberg
2. Lessons Learned in Software Testing: A Context-Driven Approach. Cem Kaner,
James Bach and Bret Pettichord
3. Testing Computer Software, 2nd Edition. Cem Kaner, Jack Falk, Hung Q. Nguyen
4. Guide to Software Test Design. Lee Copeland
5. The Art of Software Testing, 3rd Edition. Glenford J. Myers, Corey Sandler, Tom
Badgett
6. Handbook of Usability Testing, 2nd Edition. Jeffrey Rubin, Dana Chisnell, Jared
Spool
Questions?

● https://medium.com/@testingnotdead
● oleksii.burdin@gmail.com

You might also like