53
ОСНОВИ НА ОСНОВИ НА СОФТУЕРНОТО ТЕСТВАНЕ

Курс качество на софтуера - част 1

Embed Size (px)

DESCRIPTION

Курс "Качество на софтуера" в ПУ "Паисий Хилендарски" 2008

Citation preview

Page 1: Курс качество на софтуера - част 1

ОСНОВИ НАОСНОВИ НА

СОФТУЕРНОТО ТЕСТВАНЕ

Page 2: Курс качество на софтуера - част 1

КАКВО СЕ СЪДЪРЖА КУРСА ?

концепцията на софтуерните тестове – термини, основни принципи и техники на провеждане на софтуерни тестове

основни техники при провеждането на whitebox и blackbox тестовете

документи заети в процеса на софтуерното тества и документи заети в процеса на софтуерното тества и осигуряване на качество на софтуера

автоматизирани тестове за валидиране на софтуера

мениджмънт системи

тестове за ползваемост и UI тестове

стандарти

финален тест

Page 3: Курс качество на софтуера - част 1

ОРГАНИЗАЦИИ

ISTQB

www.istqb.org

GASQ (Global Association for Software Quality

www.gasq.org

iSQI (Internation Software Quality Institute)

www.isqi.org

IEEE Institute of Electrical and Electronic Engineers

www.ieee.org

Page 4: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Защо тестването става все по-важно ?

- Y2K проблем

- EMU (икономически и паричен съюз)- EMU (икономически и паричен съюз)

- eCommerce

- Увеличаване на потребители

- Повишаване на сложността

Page 5: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Защо се срещат грешки ?

- Няма перфектни неща

- По-голямото напрежение в работата ни - По-голямото напрежение в работата ни кара да правим повече грешки

- Ограничени бюджет и време

- Лоши практики

Page 6: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Защо се срещат грешки ?

- Лоша комуникация

- Липса на точни изисквания

- Промяна на изискванията. Липса на документиране

- Незавършени спецификации

Page 7: Курс качество на софтуера - част 1

РАЗМЕР НА ГРЕШКИТЕ

Една грешка = милиони

Проекта тръгва в грешна посока

Екстремни условия = човешки живот

Критични системи полежат на задълбочени тестове

Page 8: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Например:- Малко градче в Илинойс, САЩ, получава сметка за ток в

размер на 7мил. Долара през Март 1999. Това е повече от 700 пъти от нормалното. Проблема не се решава до другата проблема и фирмата се принуждава да я плати заради Y2K проблема и проблем в софтуера.заради Y2K проблема и проблем в софтуера.

- Проблем в банков софтуер, кара системата за изтегли от сметката на 823 клиента сума в размер на близо 930мил. Долара. Най-големият банков проблем в историята.

Page 9: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Защо тестове ?- Откриване на грешки

намаляване на живите грешки

повишаване на качеството

повишаване на сигурността

редуциране на бъдещи разходи

клиентски изисквания отговарят на реалните функционалности

повишаване на репутацията и доказване на фирмата

- Доставя мерки за качество

Page 10: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Колко тестове са достатъчни ?

- Как да разберем кога да спрем ?

- Ако спрем прекалено рано с тестовете рискуваме живота на систематарискуваме живота на системата

- Прекалено тестове ще отложат пускането на продукта на пазара. Губим пари и представяне.

Page 11: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Ако не можем да тестваме всичко, какво да правим ?

- Управление и редуциране на риска

- Изследване и анализ на риска в - Изследване и анализ на риска в приложението и ключови моменти

- Приоритизирайте тестовете

- Разбиране на риска от бизнес гледна точка - функционалност

Page 12: Курс качество на софтуера - част 1

ЗАЩО Е НЕОБХОДИМО ТЕСТВАНЕ

Не трябва да спираме да тестваме продукта, дори да е пуснат на пазара

Гаранция за откриване на “скрити” дефекти и грешкигрешки

Page 13: Курс качество на софтуера - част 1

ТЕСТВАНЕ И КАЧЕСТВО

Целта е да намерим най-много дефекти. Ползата е:

- Намаляване на броя на грешките преди официалното стартиране на проектаофициалното стартиране на проекта

- Повишаване на качеството

- Повишаване на сигурността

Page 14: Курс качество на софтуера - част 1

КАКВО ТРЯБВА ДА ИЗМЕРВАМЕ

Коректност

Надежност

Ползваемост

Издръжливост

Използваемост

Еквивалентност на изискванията

Page 15: Курс качество на софтуера - част 1

ОБОБЩЕНИЕ

Целта на тестовете е да открие дефекти- Грешките могат да бъдат отстранени

- По-добрият софтуер е по-надежден, по-малка вероятност от грешки

Тестването е свързано с връзката между - Тестването е свързано с връзката между софтуера и изискванията

- Тестовете ни дават възможност да измерваме качеството на софтуера

Page 16: Курс качество на софтуера - част 1

КАКВО СА СОФТУЕРНИТЕ ТЕСТОВЕ

Няколко определения:

- “процес на изпълнение на програмата, като се набляга на нейното качество”

- “процес на изпълнение на програмта, с цел намиране на грешки”намиране на грешки”

- “процес на изпълнение на програта с цел намиране на грешки и потвърждаване на функционалните и нефункционални спецификации”

Page 17: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

ISTQB определение

“Процес на последователност от всички действия в жизнения цикъл на продукта, включващо статични и динамични действия, концентрирани статични и динамични действия, концентрирани върху планирането, подготовката и развитието на софтуерния продукт и свързан с работата на самия продукт”

Page 18: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Грешка

“Човешко действие, което предизвиква некоректен резултат”

Page 19: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Дефект = Дефект= Бъг = Проблем

“Недостатък в компонент или в системата, която предизвиква некоректно поведение на предизвиква некоректно поведение на

компонента или системата”

Page 20: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Неуспех

“Реално отклонение на компнент или системата от очакваните резултати, услуги или резултати”очакваните резултати, услуги или резултати”

Page 21: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAАномалия

“Всяко условие, което се отклонява от очакванията, които се базират на

функционалните изисквания, документацията, функционалните изисквания, документацията, потребителските изисквания, стандартите”

Page 22: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAАномалия

“Всяко условие, което се отклонява от очакванията, които се базират на

функционалните изисквания, документацията, функционалните изисквания, документацията, потребителските изисквания, стандартите”

Page 23: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Недостиг

“Липса на нужното качество или елемент или липса на изпълнение на очаквани резултати”липса на изпълнение на очаквани резултати”

Page 24: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Маскиране на дефекта

“Явление при което даден дефект предизвиква друг дефект”друг дефект”

Page 25: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAТест

“Набор от един или няколко тест сценария”

Тест сценарии

“Набор от входящи стойности, изпълнение на предусловия, очаквани резултати и изпълнение на предусловията, изпълнение на определени

тест условия, чиято цел е да потвърдят и сравнят състоянието на системата с описаните в

изискванията”

Page 26: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Маскиране на дефекта

“Явление при което даден дефект предизвиква друг дефект”друг дефект”

Page 27: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAНадежност

“Възможност на софтуерния продукт да функционира според зададените изисквания под определени условия и време, или за определени определени условия и време, или за определени

специфични дейности/операции”

Page 28: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAПолзваемост

“Способност на софтуерния продукт да бъде разбиран, научаван, използван и атрактивен за

потребителите при определени условия”потребителите при определени условия”

Page 29: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAПроизводителност

“Способността на софтуерните продукти да осигурявя подходящо поведение, свързано с

размера на ресурсите използвани при размера на ресурсите използвани при определени условия”

Page 30: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAПоддръжка

“Свободата на софтуерния продукт да бъде модифициран и да се отстраняват лесно

дефектите, да се изменя според нови дефектите, да се изменя според нови изисквания или при смяна на средата”

Page 31: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Преносимост

“Способността на софтуерния продукт да бъде пренасян от една хардуерна или софтуерна пренасян от една хардуерна или софтуерна

среда на друга”

Page 32: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQA

Тестването не създава КАЧЕСТВО на софтуера, а само определя качеството на

разработвания продуктразработвания продукт

Page 33: Курс качество на софтуера - част 1

ОСНОВНИ ПОНЯТИЯ В SQAКачество на софтуера (QA)

“Всички планирани действия, които се прилагат, за да се осигури качество на продукта”

Качествен контрол (QC)Качествен контрол (QC)

“Управление на процеса при създаване на софтуер, с цел да се осигури, че QA

процедурите и стандартите ще бъдат спазени”

Page 34: Курс качество на софтуера - част 1

ОСНОВИ НА ТЕСТ ПРОЦЕСА

Тест мениджмънт / Управление на процеса

ПланСпецифи

кацияИзпълне

ние Запис СправкПлан кация ние Запис Справка

Допълнително управление

Управление на тест средата

Page 35: Курс качество на софтуера - част 1

ТЕСТ ПРОЦЕС

Има 5 основни стъпки:

- Тест планиране и контрол

- Тест анализ и дизайн

- Тест изпълнение

- Оценка на поставените критерии и докладване

- Прекратяване на тестовете

Page 36: Курс качество на софтуера - част 1

ТЕСТ ПЛАНИРАНЕ И КОНТРОЛ

Тест плана ни дава насоки как да изградим и изпълним тест стратегията

Последователност на тестовете

Какво трябва да се тества, как да се тества, какви са нужните и др.какви са нужните и др.

Видове тестове – функционални, нефункционални, автоматизирани

Page 37: Курс качество на софтуера - част 1

ТЕСТ ПЛАНИРАНЕ И КОНТРОЛ

Тест контрола ни дава възможност за:

- Измерване и анализ на резултатите

- Наблюдение и документиране на процеса, обхват на тестовете и критерии процеса, обхват на тестовете и критерии за качество

- Определяне на допълнителни ресурси

- График на тестовете

- Обхват на тест средата

Page 38: Курс качество на софтуера - част 1

ТЕСТ АНАЛИЗ И ДИЗАЙН

Има три основни стъпки:

- Подготовка и анализ

- Изграждане на тест сценарии

- Дефиниране на критериите за успеваемост

Page 39: Курс качество на софтуера - част 1

ПОДГОТОВКА И АНАЛИЗ

Подготовката на тестове включва:

- Анализ на приложението

- Определяне на тест условията

- Определяне на тест сценариите

- Документация

Page 40: Курс качество на софтуера - част 1

ИЗГРАЖДАНЕ НА ТС

Всеки един ТС трябва да съдържа информация за:

- Предусловие

Входящи данни- Входящи данни

- Извършвани действия

- Очаквани ресултати

Page 41: Курс качество на софтуера - част 1

ТЕСТ ДОКЛАД

Трябва да се включва:

- Версията на софтуера/продукта, който тестваме

- Спецификация, на която се базираме

- Избор на тестове

- Тест резултати

реални резултати

очаквани резултати

- Описание на намерените бъгове

Page 42: Курс качество на софтуера - част 1

КАКВО ПРАВИ ДОБРИЯТ ТЕСТЪР?

Интелектуални знания

- Поемане на незавършените факти

- Работи с незавършени задачи

- Учи се бързо на много нива

- Добри комуникативни способности

- Може да категоризира и приоритизира

- Самоподготовка

Page 43: Курс качество на софтуера - част 1

КАКВО ПРАВИ ДОБРИЯТ ТЕСТЪР?

Познания

- Как проекта работи

- Какви са нуждите на системата и бизнеса

- ИТ технологии

- Комерсиални аспекти на ИТ сферата

- Тест техники

- Най-добрите тест практики

- Да мисли в и отвъд спецификацията на системата

Page 44: Курс качество на софтуера - част 1

КАКВО ПРАВИ ДОБРИЯТ ТЕСТЪР?

Допълнителни умения

- Способност да открива грешки – планиране, подготовка и изпълнение

- Способност да разбере системата, с която работи- Способност да разбере системата, с която работи

- Способност да чете и разбира спецификацията

- Способност да отсява ключовите моменти

- Способност да работи надеждно и качествено

- Способност да се фокусира върху важните неща

Page 45: Курс качество на софтуера - част 1

ДОКЛАДВАНЕ НА ГРЕШКИ

Откритите грешки трябва да се докладват на

- разработчиците, за да могат да ги отстраняват

- Мениджърския екип, за да могат да следят прогреса

Комуницията между двете групи е жизнено важна

Page 46: Курс качество на софтуера - част 1

КОМУНИКАЦИЯ С РАЗРАБОТЧИЦИТЕ

Добрите взаимоотношения са най-важни

Програмистите, трябва да информират своевременно QA за всяка една промяна

QA трябва да информира програмисите за всеки един бъг, за да може той да бъде остраненедин бъг, за да може той да бъде остранен

Page 47: Курс качество на софтуера - част 1

КОМУНИКАЦИЯ С МЕНИДЖМЪНТА

Мениджърите трябва да следят прогреса на докладваните грешки

Най-добрия начин е да се използват следните мерки:

- Брой на планираните и подготвени тестове

- Брой на изпълнените тестове до момента

- Брой на документираните бъгове и брой на корегираните

- Колко време отнема планирането, подготовката и изпълнението на тестовете

Page 48: Курс качество на софтуера - част 1

МОДЕЛ НА РАЗРАБОТКА

Има много модели, които се използват:

- V-модел е най-често прилаганият

- Последователен модел (Waterfall)

- Повтарящ се модел

Основните действия в моделите са:

V, V&T – Валидация, Верификация и Тестване

Page 49: Курс качество на софтуера - част 1

МОДЕЛ НА РАЗРАБОТКА

Валидация

“Потвърждаване чрез изследване и осигуряване на данни/доказателства на обектитеза

коректност при изпълнение на действията от коректност при изпълнение на действията от дадената система”

Page 50: Курс качество на софтуера - част 1

МОДЕЛ НА РАЗРАБОТКА

Верификация

“Потвърждаване чрез изследване и осигуряване на данни/доказателства за изпълнени

функционални изисквания”функционални изисквания”

Page 51: Курс качество на софтуера - част 1

МОДЕЛ НА РАЗРАБОТКА

Тестване

“Процеса включва всики действия от жизнения цикъл на продукта, включително статични и

динамични, концентрирани върху планирането, подготовката и оценката на софтуерния продукт подготовката и оценката на софтуерния продукт

и свързан с работата на продукта, за да се определи дали отговарят на изискванията и

дали функционират коректно, като същевременно се намират дефекти и бъгове”

Page 52: Курс качество на софтуера - част 1

V-МОДЕЛ

V-Модел

- Най-използвания модел в софтуерните разработки

- Представя жизнения цикъл на Представя жизнения цикъл на разработката на проекта

- Показва различни етапи на разработката и тестването

- Показва връзката между различните етапи

Page 53: Курс качество на софтуера - част 1

V-MODEL

Бизнес изисквания

Тестове за приемане

Техническа спецификация

Тестове за интеграция

Системни Функционална спецификация

Системни тестове

Дизайн спецификация

Тестове за интеграция

Кодиране Unit тестове