Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Кафедра АСУ
Лабораторна робота №4
з дисципліни: «Управління ІТ-проектами»
на тему: «Тестування програмного забезпечення»
ПЛАН ПРОЕКТУ
Introduction (Введення)
Test Structure (Структура тесту)
Введення
Структура тесту
Посилання
Мета плану тестування
Об'єкт тестування
Ідентифікація об'єктів тестування
Стратегія тестування
Підхід до тестування
Рівні тестування
Unit Testing
Integration Testing
System Testing
User Acceptance Testing
Типи тестування
Функціональне тестування
Тестування бізнес циклу
Конфігураційне тестування
Тестування продуктивності
Стрес тестування
Юзабіліті тестування
Тестування інсталяції
Вимоги до чисельності та кваліфікації персоналу
Розподіл за ролями та кваліфікації
Необхідні ресурси
Програмні засоби
References (Посилання)
http://olimp-strong.com.ua/ (основний сайт комплексу)
https://vk.com/olimpua (основна група в контакті комплексу)
Test Plan Objective (Мета плану тестування)
Сформувати зміст плану тестування для системи, що дозволить якісно провести етап тестування до системи. Розділити окремі складові тестування - окремим працівникам.
Мета документу "План тестування системи" - координація зусиль учасників проекту в частині контролю якості.
Документ призначений керівництву проекту, проектному офісу і керівництву департаменту для узгодження планів та оцінки витрат.
Документ призначений групі тестування для ознайомлення з характером майбутніх робіт, аналізу та розбиття на підзадачі.
Об'єкт тестування
Назва системи - "Спорткомплекс ОЛІМП". Містити усі потрібні функції для роботи з клієнтами і персоналом.
Система дозволяє реєструвати нових клієнтів і описувати інформацію про них і відповідні послуги, які вони використовують. Також опрацьовує інформацію з персоналом, описуючи працівників. Кожен клієнт має спеціальну картку, з допомогою якої через сканер система ідентифікує клієнта або працівника. Це дозволяє відслідковувати коли прибувають працівники на робоче місце, також відстежувати години в які найбільша кількість клієнтів, це дозволить маніпулювати цінами і можливо збільшити прибуток.
Система має можливість для звітування персоналу і підрахунку відпрацьованих годин, це дозволить визначити кінцеву місячну зарплату.
Ідентифікація об'єктів тестування
Контролю якості повинні бути підданий програмно-апаратний комплекс в цілому, а також його окремі частини.
Так зокрема, має бути проведено тестування:
Додатки в цілому, розгорнутому в промисловому середовищі
Програмно - апаратний комплекс (без встановленої програми)
Окремі компоненти програми на тестових стендах
Керівництво користувача
Керівництво адміністратора
Інші документи, що є частиною програмного продукту
Користувача дані (результат міграції)
Стратегія тестування
Поточний підхід до контролю якості передбачає такі віхи проекту:
Підсистема готова до демонстрації замовнику
Підсистема готова до промислової експлуатації
Таке розбиття передбачає якомога більше раннею поставку працюючого прототипу замовнику з метою отримання зворотного зв'язку.
Для перевірки готовності прототипу служать приймально-здавальні випробування. Критерій готовності - акт здачі прототипу підписаний приймально-здавальної комісією. Приймально-здавальні випробування описуються в окремому документі. Або як розділ шість приватного технічного завдання, в окремому документі містить програму і методику випробувань.
Для перевірки готовності до промислової експлуатації використовується повний набір запланованих тестів. Готовність визначається керівником проекту, на підставі поданих йому керівником тестування звітів про повноту тестового покриття і списку значущих розбіжностей, оформлених у вигляді дефектів в трекингової системі. Тестові специфікації описуються в окремому документі.
Test Approach
Testing Levels (Рівні тестування)
Unit Testing
Метод тестування програмного забезпечення, який полягає в окремому тестуванні кожного модуля коду програми. Модулем називають найменшу частину програми, яка може бути протестованою. У процедурному програмуванні модулем вважають окрему функцію або процедуру. Воб'єктно-орієнтованому програмуванні — інтерфейс, клас. Модульні тести, або unit-тести, розробляються в процесі розробки програмістами та, іноді, тестувальниками білої скриньки (white-box testers).
Integration Testing
Фаза тестування програмного забезпечення, під час якої окремі модулі програми комбінуються та тестуються разом, у взаємодії. Інтеграційне тестування виконується після модульного тестування та перед верифікацією та валідацією ПЗ. Якщо розглядати цей процес як систему, то на вхід їй подаються модулі, які вже пройшли модульне тестування; потім модулі групуються в більші частини, виконуються тести передбачені планом, а на виході системи — інтегрована система, що готова до системного тестування.
System Testing
Однин з рівнів тестування програмного забезпечення. Системне тестування тестує інтегровану систему для перевірки відповідності всім вимогам. Перевірка повноти та правильності документації користувача є важливою частиною системного тестування. Всі тестові комбінації повинні розроблятися тільки з використанням документації користувача.
Testing Types (Типи тестування)
Функціональне тестування
Використовується для контролю якості "Функціональних можливостей" в частині "Придатності", "правильності" і "Здібності до взаємодії".
Функціональне тестування є основним видом тестування. Проводиться вручну через інтерфейс користувача. Використання засобів автоматизації в 20ХХ року не передбачається.
При підготовці прототипу рекомендується використовувати тестування методом вільного пошуку (exploratory testing).
При підготовці системи (підсистеми) до промислової експлуатації рекомендується використовувати стандартне промислове тестування, з оцінкою повноти тестового покриття.
Тестування бізнес циклу
Використовується для контролю якості "Функціональних можливостей" в частині "Придатності", "правильності" і "Здібності до взаємодії".
У першу чергу застосовується для оцінки готовності прототипу і оцінки повноти функціональних вимог.
Підготовка до цього виду тестування проводиться в рамках команди розробки, а саме тестування проводиться в присутності замовника.
Конфігураційне тестування
Використовується для контролю якості "Мобільності" в частині "адаптованість"
Повинна бути перевірена працездатність для:
Різних видів ОС:
WinXP - обов'язково
Vista - обов'язково
Win7 - обов'язково
Різних БД:
MSSQL 2000
MSSQL 2005
Різних дозволах монітора робочого місця
1280х1024 - обов'язково
1600х900 - обов'язково
1024х768 - бажано
1680х1050 - бажано
Може проводитися як виділений вид тестування методом візуального контролю при виконанні юзкейсов класів read і list.
Рекомендований метод - об'єднання з функціональним тестуванням. У цьому випадку на кожному робочому місці тестувальника рекомендується установка своїй конфігурації.
Тестування продуктивності
Використовується для контролю якості "Ефективності".
Для первинного аналізу продуктивності серверної частини використовується ручне тестування. Для оцінки придатності системи до промислової експлуатації на реальних обсягах даних із заданим числом користувачів використовується автоматизоване тестування.
Для аналізу поведінки користувача інтерфейсу на реальних обсягах даних використовується ручне тестування.
Стрес тестування
Використовується для контролю якості "Надійності" в частині "Стабільності" і "Стійкості до помилки".
Юзабіліті тестування
Використовується для контролю якості "Практичності" в частині "Зрозуміло", "навченості", "Простоти використання".
Тестування інсталяції
Використовується для контролю якості "Мобільності" в частині "Простоти впровадження".
Проводиться вручну.
Вимоги до чисельності та кваліфікації персоналу
Примітка. Кілька людей можуть виконувати одну роль, і одна людина може виконувати кілька ролей. Так, наприклад, рекомендується, щоб адміністрування середовищ та інструментів виконувалося по черзі різними співробітниками групи тестування. Такий підхід дозволяє захиститися від високої мінливості трудомісткості в різних видах робіт в різні періоди розвитку проекту.
Розподіл за ролями та кваліфікації
Завдання розподілено між працівниками на чотири частини.
Зигмунт Тарас - test-plan.
Петергерін Віталій - test-case's.
Бута Роман - test-report.
Грубяк Іван - unit-testing.
Необхідні ресурси
У різний час, залежно від потреб, можуть існувати одночасно декілька тестових стендів.
Так для тестування:
переносимості та інсталяції - рекомендується використовувати стенд з ізоляцією на рівні мережі,
продуктивності - стенд, з характеристиками, максимально близькими до промислової середовищі
проблем замовника - повинен бути стенд класу "Образ замовника".
Програмні засоби
Управління тестуванням TrackStudio
Трекінг дефектів TrackStudio
Управління проектом JIRA
Управлыння версіями SVN
ТЕСТ-КЕЙСИ
Перелік модулів аплікації:
A
Добавити нового клієнта
B
Добавити персонал
С
Звітність про роботу персоналу
D
Переглянути послуги
Документ тест-кейсів:
Номер
Назва тесту
Необхідна дія
Очікуваний результат
Здано / Провалено
A1
Додати клієнта
Нажати на кнопку «додати клієнта»
Відображення вікна для заповнення інформації про користувача
Здано
А2
Завантажити фотографію клієнта
Вибрати пункт «додати» навпроти поля «фотографія»
Відкриваєтсья провідник, для завантаження фотографії з комп’ютера
Здано
А3
Згенерувати унікальний ID
Натиснути на кнопку «згенерувати ID» навпроти поля ID
В полі ID відображається згенерований код клієнта
Здано
А4
Заповнити поля, які не вимагають допомоги програми
Заповнити всі поля введенням даних з клавіатури
Відображення навпроти кожного поля введених з клавіатури даних
Здано
А5
Підтвердження додавання
Натиснути кнопку «зберегти дані»
Відображення повідомлення про успішне додавання клієнта в базу даних
Провалено
В1
Додати працівника персоналу
Натиснути кнопку «додати персонал», та вибрати категорію персоналу, яку необхідно додати (тренер, працівник ресепшину, прибиральник)
Відображення вікна для заповнення інформації про працівника персоналу
Здано
В2
Завантажити фотографію працівника персоналу
Вибрати пункт «додати» навпроти поля «фотографія»
Відкриваєтсья провідник, для завантаження фотографії з комп’ютера
Провалено
В3
Згенерувати унікальний ID
Натиснути на кнопку «згенерувати ID» навпроти поля ID
В полі ID відображається згенерований код працівника персоналу
Здано
В4
Заповнити поля, які не вимагають допомоги програми
Заповнити всі поля введенням даних з клавіатури
Відображення навпроти кожного поля введених з клавіатури даних
Провалено
В5
Підтвердження додавання
Натиснути кнопку «зберегти дані»
Відображення повідомлення про успішне додавання працівника персоналу в базу даних
Здано
С1
Звітність персоналу
Натиснути кнопку «Звітність персоналу»
Відображення вікна для заповнення звітності
Провалено
С2
Ввід ID працівника персоналу
Ввести з клавіатури персональне ID працівника, звітність щодо якого записується. Та в окремому полі позначити прийшов працівник на робоче місце, чи залишає його
На екран виводиться введене ID, та додаткова позначка
Здано
С3
Зберегти результат
Натиснути кнопку «Зберегти»
На екран виводиться повідомлення, що результат збережений, а звытнысть про роботу працівника персоналу записуэться в базу даних
Здано
D1
Переглянути послуги
Натиснути кнопку «Переглянути послуги»
Відображення вікна з переліком і описом послуг спорткомлексу
Провалено
БАГ-РЕПОРТИ
Summary
Підтвердження додавання
Bug ID
1.001
Built Number
Ver.1.001
Severity
A5
Priority
1
Assigned to
Buta Roman
Reported By
Petergerin Vitaliy
Reported On
20.03.2015
Description
Не додає в базу даних
Steps To Reproduce
Натискаєм кнопку "Додати клієнта"
Заповнюємо необхідні поля
"Зберегти дані"
Expected result
Відображення повідомлення про успішне додавання клієнта в базу даних
Summary
Завантажити фотографію працівника персоналу
Bug ID
1.002
Built Number
Ver.1.001
Severity
B2
Priority
3
Assigned to
Buta Roman
Reported By
Petergerin Vitaliy
Reported On
20.03.2015
Description
Не відкривається провідник
Steps To Reproduce
Натискаєм кнопку "Додати клієнта"
«Додати» навпроти поля фотографія
Expected result
Відкриваєтсья провідник, для завантаження фотографії з комп’ютера
Summary
Заповнити поля, які не вимагають допомоги програми
Bug ID
1.003
Built Number
Ver.1.001
Severity
B4
Priority
3
Assigned to
Buta Roman
Reported By
Petergerin Vitaliy
Reported On
25.03.2015
Description
Не вводяться дані
Steps To Reproduce
Натискаєм кнопку "Додати клієнта"
Заповнюэмо необхідні поля
Expected result
Відображення навпроти кожного поля введених з клавіатури даних
Summary
Звітність персоналу
Bug ID
1.004
Built Number
Ver.1.001
Severity
С1
Priority
1
Assigned to
Buta Roman
Reported By
Petergerin Vitaliy
Reported On
25.03.2015
Description
При натисканні кнопки «Звітність персоналу» некоректно відображається вікно
Steps To Reproduce
Натиснути кнопку «Звітність персоналу»
Expected result
Відображення вікна для заповнення звітності
Summary
Переглянути послуги
Bug ID
1.005
Built Number
Ver.1.001
Severity
D1
Priority
1
Assigned to
Buta Roman
Reported By
Petergerin Vitaliy
Reported On
25.03.2015
Description
Не працює кнопка «Переглянути послуги»
Steps To Reproduce
Натиснути кнопку «Переглянути послуги»
Expected result
Відображення вікна з переліком і описом послуг спорткомлексу
МОДУЛЬНЕ ТЕСТУВАННЯ
Модульне тестування, або юніт-тестування (англ. unit testing) – процес в програмуванні, що дозволяє перевірити на коректність окремі модулі вихідного коду програми.
Ідея полягає в тому, щоб писати тести для кожної нетривіальної функції або методу. Це дозволяє достатньо швидко перевірити чи не призвела чергова зміна коду до регресії, тобто до появлення помилок у відтестованих місцях програми, а також полегшує виявлення та усунення таких помилок.
Для більшості мов програмування високого рівня існують інструменти і бібліотеки модульного тестування. Деякі з них:
Для Java : JUnit, JavaTESK, Spock;
Для С: CUnit, cfix, Unity;
Для Objective-C: OCUnit;
Для .NET: Nunit, XUnit, MbUnit;
Для PHP: SimpleTest, PHPUnit;
Для ActionScript: FlexUnit, AsUnit;
Для JavaScript: Chai, Sinon.JS, JsUnit, QUnit.
Висновок: на лабораторні