
4 Курс / Тестування / 01
.docЛекція 1
Тема: Тестування - спосіб забезпечення якості
Мета: ознайомити студентів з призначенням даного курсу та розглянути призначення тестування як такого. Визначити місце, яке займає тестування програмного продукту на даний момент та дати наближення щодо очікуваного місця даного етапу в розробці якісного програмного забезпечення
ПЛАН
Кожен програмний продукт, не залежно від масштабності та сфери використання має певних набір характеристик. І не лише функціональних. Найпершою з них можна вважати якість додатку.
Якість програмного продукту характеризується набором властивостей, що визначають, наскільки продукт є "гарним" з погляду зацікавлених сторін, таких як замовник продукту, спонсор, кінцевий користувач, розробники й тестувальники продукту, інженери підтримки, співробітники відділів маркетингу, навчання й продажів.
Кожний з учасників може мати різне уявлення про продукт і про те, наскільки він гарний або поганий, тобто про те, наскільки висока якість продукту. Таким чином, постановка завдання забезпечення якості продукту виливається в завдання визначення зацікавлених осіб, їхніх критеріїв якості й потім знаходження оптимального рішення, що задовольняє цим критеріям.
Тестування є одним з найбільш устояних способів забезпечення якості розробки програмного забезпечення й входить у набір ефективних засобів сучасної системи забезпечення якості програмного продукту.
З технічної точки зору тестування полягає у виконанні додатка на деякій безлічі вихідних даних і звірці одержуваних результатів із заздалегідь відомими (еталонними) з метою встановити відповідність різних властивостей і характеристик додатка замовленим властивостям. Як одна з основних фаз процесу розробки програмного продукту (Дизайн додатка - Розробка коду - Тестування ), тестування характеризується досить великим внеском у сумарну трудомісткість розробки продукту.
Широко відома оцінка розподілу трудомісткості між фазами створення програмного продукту: 40%-20%-40% (Рис. 1.1), із чого можна зробити висновок, що найбільший ефект у зниженні трудомісткості може бути отриманий насамперед на фазах Design й Testing. Тому основні вкладення в автоматизацію або генерацію коду варто здійснювати, насамперед, на цих фазах. Хоча в сучасному індустріальному програмуванні автоматизація тестування є широко розповсюдженою практикою, у той же час технологія верифікації вимог і специфікацій поки робить тільки свої перші кроки. Завданням найближчого майбутнього є рух убік такого розподілу трудомісткості (60%-20%-20% (Рис. 1.2)), щоб сумарна ціна виявлення більшості дефектів прямувала до мінімуму за рахунок виявлення переважного числа на найбільш ранніх фазах розробки програмного продукту.
Рис. 1.1. Оцінка трудомісткості виявлення й виправлення помилок при створенні програмного продукту
Рис. 1.2. Аналогічна оцінка при автоматизації дизайну
Даний курс присвячений обговоренню способів рішення завдання контролю якості розробки програмного забезпечення з позицій тестування. У цій області поряд з рішенням наукових і технічних проблем немаловажна роль належить проблемі підготовки кадрів, здатних вирішувати завдання тестування й автоматизації тестування в умовах виробництва програмного продукту. Завданням курсу, що реалізується через лекційний матеріал і практикум, є підготовка тестувальників програмного проекту. Це тим більше важливо, що в існуючих вузівських програмах підготовки професійних програмістів не передбачений достатній для рішення даного завдання обсяг лекційного матеріалу й практикумів. Тому пропонований посібник варто розглядати як додатковий підручник для майбутніх тестувальників програмних проектів.
Контрольні питання
-
Що визначає якість програмного продукту?
-
Хто саме визначає, чи є дана розробка якісною?
-
До чого можна звести тестування з технічної точки зору?
-
На які етапи можна розділити розробку програмного продукту?
-
Як розподіляється час розробки додатку?
-
Яким чином можна перерозподілити час? За рахунок чого можливий такий перерозподіл?