- •I. Введення в розробку програмного забезпечення
- •1. Складність інформаційних систем
- •2. Розробка програмного забезпечення
- •4.Концептуальне моделювання
- •2. Модель водоспаду із зворотнім зв'язком
- •7.Модель спіралі
- •III. Етапи розробки програмного забезпечення
- •1. Стратегічний етап
- •2.2. Нефункціональні вимоги
- •4. Етап проектування
- •5. Етап реалізації
- •6. Етап тестування
- •7. Етап установки
- •8. Етап підтримки
- •IV. Стратегічний етап
- •1. Дії на стратегічному етапі
- •2. Співпраця з клієнтом
- •3. Область дії і контекст проекту
- •4. Стратегічні рішення
- •5. Оцінка різних варіантів рішеннь
- •6. Оцінка вартості рішень
- •7. Чинники успіху
- •8. Результати стратегічного етапу
- •9. Короткий звіт
- •V. Розпізнавання вимог і документація
- •1. Складнощі у формулюванні вимог
- •2. Методи ідентифікації вимог
- •3. Методи опису вимог
- •4. Типи вимог
- •5. Перевірка вимог
- •6. Документ з вимогами
- •7. Чинники успіху
- •8. Короткий звіт
- •VI. Розробка моделі
- •1. Потреба в розробці моделі
- •2. Аналітична модель
- •3. Дії на етапі аналізу
- •4. Функціональна декомпозиція
- •5. Методологія, що використовується в створенні аналітичної моделі
- •6. Документація вимог
- •7. Аналіз чинників успіху
- •8. Короткий звіт
- •VII. Етап проектування
- •1. Цілі проектування
- •Малюнок 7.2.1. Етап проектування.
- •2. Специфікація результатів аналізу
- •3. Дизайн інтерфейсу
- •4. Структуровані схеми/діаграми
- •5. Складова організації даних
- •6. Оптимізація проекту
- •7. Фізична структура системи
- •8. Правильність і якість проекту
- •9. Нефункціональні вимоги на етапі проектування
- •10. Результати етапу проектування
- •11. Детальний документ проекту
- •2. Стандарти, правила і порядок здійснення дій проекту:
- •12. Короткий звіт
- •VIII. Розробка інтернет-програм
- •1. Специфікація інтернет-програми
- •2. Методи розробки інтернет-програм
- •3. Об'єктно-орієнтована гіперсередовищна модель розробки (oohdm)
- •4. Метод розробки веб-сторінок (wsdm)
- •5. Мова веб-моделювання (WebMl)
- •6. Короткий звіт
- •IX. Бдб і бдс системи
- •1. Електронний бізнес
- •2. Інтернет-бізнес і електронний ринок.
- •3. Інтернет-магазин
- •4. Модель електронного бізнесу
- •1.Модель брокера
- •2.Модель, яка задовольняє індивідуальним потребам
- •3.Модель контактів
- •5. Платежі
- •6. Безпека
- •8. Моделювання систем бдб і бдс
- •9. Багатошарова архітектура програм
- •9. Cервіс-орієнтована архітектура (соа)
- •10. Короткий звіт
- •X. Реалізація
- •1. Характеристики етапу реалізації
- •2. Надійність програмного забезпечення
- •3. Похибка
- •4. Транзакції
- •5. Середовище реалізації
- •6. Чинники успіху і результати етапу реалізації
- •7. Короткий звіт
- •XI. Тестування
- •1. Етап тестування
- •2. Перевірка
- •Малюнок 11.3.1. Модель V-тестування.
- •3. Перегляди
- •4. Аудит
- •5. Інспекції
- •6. Види тестів
- •7. Процес тестування
- •8. Тестування надійності
- •9. Типи тестів на знаходження помилок
- •10. Програми-інструменти
- •11. Статичні тести
- •12. Підрахунок кількості помилок
- •13. Чинники успіху, успіх тестування
- •14. Короткий звіт
- •XII. Оцінка програмного забезпечення
- •1. Простановка розмірів проекту
- •2. Оцінка складності в проектах
- •3. Ефекти масштабування
- •4. Оцінка вартості програмного забезпечення
- •5. Конструктивна вартісна модель (cocomo)
- •6. Балова функціональна оцінка
- •7. Метод випадкового використання
- •8. Короткий звіт
- •XIII. Управління конфігурацією пз і версіями
- •1. Управління конфігурацією пз
- •2. Елементи конфігурації пз
- •3. Угода позначень
- •4. Зберігання елементів конфігурації
- •5. Перегляди
- •7. План управління конфігурації пз
- •I Вступ
- •II Управління
- •III Визначення конфігурації
- •IV Управління конфігурацією
- •V Реєстрація статусу конфігурації
- •4. Модель якості iso-9126
- •5. Управління якістю
- •6. Стандарти якості
- •7. Незрілість і зрілість виробництва
- •8. План гарантії якості пз (sqap)
- •9. Короткий звіт
- •XV. Управління проектом програмного забезпечення
- •1. Завдання управління проектом
- •2. Працівники виробництва програмного забезпечення
- •3. Характеристика хорошого розробника програмного забезпечення
- •4. Робота в команді
- •5. Управління підприємством по виробництву програмного забезпечення
- •6. Розвиток компанії по розробці програмного забезпечення
- •7. Документація проекту
- •8. Визначення продуктивності
- •9. Складання графіків проекту
- •10. Завдання управління проектом
- •11. Інтерфейс проекту
- •12. Планування проекту
- •13. Управління ризиком
- •14. Вимірювання процесів і продуктів
- •15. Короткий звіт
6. Види тестів
До тестування відносяться два поняття: помилка і невдача.
Помилка - це неправильна будова програми, яка може призвести до помилок в ході її виконання.
Невдача - неправильне функціонування системи під час її роботи.
Помилка може призвести до багатьох невдач. Одна і та ж невдача може відбуватися з різних причин.
Тестування - це процес визначення і усунення помилок, заснований на неправильних виконаннях і інших тестах.
Тести ПЗ можуть класифікуватися з точки зору головної мети або техніки тестування.
Класифікація з точки зору техніки тестування.
Існують наступні тести:
статичні тести, засновані тільки на аналізі коду. Вони здійснюються програмістами.
динамічні тести, які складаються з виконання різних частин коду і порівняння їх результатів з правильними.
Статистичні тести
Статистичні тести циклічні і проводяться відповідно до строго визначеного плану:
генерування випадкових вхідних даних, які відповідають обраним правилам
отримання результатів правильно працюючої системи, що має ті ж дані
запуск системи і порівняння її результатів з вже отриманими.
Статистичні тести легко виконувати автономно. Якщо вірні початкові обмеження і визначена початкова продуктивність системи, тестування може виконуватися автономно.
Недолік - ненадійність. Причина часто полягає в неправильних обмеженнях даних - вони можуть не відповідати реальним.
Заходи надійності, засновані на статистиці помилок:
Вірогідність невдачі транзакції
Частота невдачі - кількість помилок за проміжок часу. Застосовується до систем без транзакцій
Середній час між виконаннями
Доступність - вірогідність того, що система у будь-який момент часу буде доступна користувачеві. Обчислюється відношенням часу, впродовж якого система була доступна, до часу тестування.
Знаходження помилок
Динамічні тести знаходження помилок можна класифікувати таким чином:
Функціональні тести - отримання знань про вимоги тестованих функцій. Система розглядається як чорний ящик, який виконує функції невідомим чином.
Структурне тестування - отримання знань про методи реалізації тестованих функцій.
Тестування ступеня ухвалення
Система, що розробляється для конкретного користувача, доставляється йому для тестування ступеня ухвалення. Такі тести називаються альфа-тестами. У разі комерційного ПЗ деякі копії доставляються вибраним користувачам для тестування. Такі тести називаються бета-тестами.
7. Процес тестування
Різні частини тестуються на різних етапах розробки. Типовий тестований елемент показаний в таблиці 11.8.1.
Тестований елемент |
Опис тестування |
Продуктивність |
Тестується продуктивність програми і її функцій. |
Інтерфейс |
Тестуються інтерфейси на відповідність вимогам. |
Властивості організації |
Тестується: логістика, організація, зручність використання, складність вхідних інструкцій, вивід на екран, якість повідомлень, якість повідомлень про помилки, рівень якості допоміжних файлів. |
Використання ресурсів |
Тестуються використання одиниць пам'яті: пам'ять, диски. |
Безпека |
Тестується гнучкість інструкцій, конфіденційність, приватність, цілісність, доступність. Тестуються паролі, доступ до файлів, захищеність від атак ззовні. |
Переносимість |
Тестується можливість роботи у інших середовищах, режимах встановлення, з іншими бібліотеками, режимами графіки (в різних версіях Windows та Unix). |
Надійність |
Вимірюється середній час між помилками. |
Підтримування |
Вимірюється середній час відновлення програми від помилок, тобто проміжок часу, починаючи з виникнення помилки і закінчуючи відновленим станом програми. |
Безпечність ПЗ |
Оптимізація наслідків збою, наприклад, втрати електроенергії. |
Можливість модифікації |
Властивоті роботи ПЗ вимірюються шляхом змін припущень та умов. |
Навантаження на ПЗ |
Тестується робота програми в екстримальних умовах, тобто з максимальною кількістю користувачів, великими файлами, скриптами, базами даних. Тривалість тестування не є важливою. Найважливіше - можливість справлятися з екстримальними умовами роботи. |
Масштабованість програми |
Відповідність вимогам (серед інших - вимогам часу) зі збільшенням навантаження. |
Повнота вимог |
Тестуються формулювання вимог |
Прийнятність програми |
Тестування ступеню задоволення кінцевого користувача |
Якість документації |
Тестування якості документації. |
Таблиця 11.8.1. Типові тестовані елементи.
Статистичне тестування елементів
Статистичне тестування засноване на випадкових даних. Правильна робота програми тестується, базуючись на даних, і результати порівнюються з правильними. Тестування відбувається циклічно.
Статистичне тестування вимагає отримання даних, які відображають реальні приклади. Але їх важко отримати, тому результати можуть бути невірні.
Вважається, що програма тестується в типових і виняткових ситуаціях.
Перевага статистичного тестування полягає в можливості його автономної роботи, що дає змогу провести багатократне тестування. Хоча ця методика не дуже ефективна.
Тестування методом прозорого ящика
Тестується внутрішня логіка. Вхідні тестові дані свідомо вибираються, програма трасується.
Зазвичай програмісти самі пишуть якийсь код тестування в програмі. Відладчики дозволяють програмістові спостерігати за програмою крок за кроком.
Дані і програми тестування повинні бути приготовані заздалегідь. Вони повинні бути спроектовані таким чином, щоб кожна програмна функція перевірялася хоч би один раз.
Недоліком є неможливість визначити недостачу функції.
Тестування методом чорного ящика
Робота програми перевіряється по припущенню того, що невідомі ніякі внутрішні деталі і по вхідних даних потрібно визначити програму. Професіонал повинен розкласти дані на класи еквівалентності, які повинні викликати схожі помилки. Мета полягає в тому, щоб уникнути вибуху тестових даних. Клас еквівалентності також може визначати результат. Наприклад, якщо вводиться вік працівника, він визначає правильний клас еквівалентності для даних, що вводяться. Для безлічі даних, що вводяться, потрібні систематичні методи їх визначення і розкладання.