- •Інженерія програмного забезпечення
- •Загальні вимоги до програмного забезпечення
- •Процеси життєвого циклу програмного забезпечення
- •Керування процесом проектування програмного забезпечення
- •Прототипування програмних систем.
- •Архітектурне проектування програмних систем
- •Архітектура розподілених систем
- •Проектування систем реального часу
- •Об‘єктно-орієнтоване проектування програмних систем.
- •Візуальне проектування об‘єктно-орієнтованих систем
- •Динамічні моделі об‘єктно-орієнтованих систем
- •Моделі реалізації об‘єктно-орієнтованих програмних систем
- •Проектування інтерфейсу користувача
- •Тестування програм та систем
- •Структурне тестування програмного забезпечення.
- •Методи та засоби автоматизації тестування програмного забезпення
- •Системне програмування
- •Дати оцінку основним правилам автоматичного перетворення типів.
- •Розкрити сутність адресної арифметики при роботі з вказівниками.
- •Обґрунтувати алгоритм та представити програмний код для реалізації програми, що сумує з 0 по 3 біт першого числа та з 3 по 6 біт другого числа.
- •Розкрийте поняття програмна модель мікропроцесора.
- •Проаналізувати типи даних в мові асемблер.
- •Проаналізувати особливості роботи із масивами в мові асемблер.
- •Проаналізувати структуру програми мовами програмування з родини асемблерів(синтаксис ассемблера).
- •Організувати на асемблері ехе-програму, щоб перекодувати символи строки шляхом додавання до літери строки кодів символів таблиці(Код мовою Asembler).
- •Організувати ехе-програму , щоб перекодувати символи з однієї таблиці в іншу(код мовою асемблера).
- •Організація баз даних
- •Моделі даних: ієрархічна, мережева, реляційна, об‘єктно-реляційна, нереляційна.
- •NoSql або постреляційні бази даних
- •Реляційна модель даних. Операції реляційної алгебри.
- •Нормалізація відношень при проектування реляційної моделі.
- •Поняття первинних ключів. Роль функціональних залежностей. Зовнішні та батьківські ключі.
- •Нормалізація відношень: перша, друга та третя нормальні форми
- •Визначення другої нормальної форми. Правило приведення. Повна функціональна залежність.
- •Визначення третьої нормальної форми. Правило приведення. Транзитивна залежність.
- •Семантичне моделювання та когнітивний аспект.
- •Проектування баз даних: концептуальне, логічне, фізичне
- •Модель «сутність-зв‘язок» або er-модель
- •Нормалізація даних в er-моделі
- •Case-засоби проектування баз даних.
- •Мова маніпулювання даними sql. Побудова запитів.
- •Адміністрування даних. Засоби підтримки цілісності баз даних
Методи та засоби автоматизації тестування програмного забезпення
Тестування є дуже важливою фазою в процесі розробки. Це гарантує, що всі помилки будуть випрацьовані і що продукт, програмне забезпечення або апаратне забезпечення функціонують як слід або максимально наближені до цільової продуктивності. Незважаючи на це, деякі завдання занадто трудомісткі, щоб їх можна було виконувати вручну, навіть якщо їх досить легко виконати. Тут відбувається автоматичне тестування.
Автоматизоване тестування або автоматизація тестування - це метод тестування програмного забезпечення, який використовує спеціальні програмні засоби для контролю виконання тестів, а потім порівнює фактичні результати тестування з прогнозованими або очікуваними результатами. Все це робиться автоматично, з невеликим втручанням інженера-випробувача або без його втручання. Автоматизація використовується для додавання додаткових тестувань, які можуть бути занадто важкими для виконання вручну.
Переваги автоматизованого тестування:
Підвищує точність та швидкість виявлення помилок порівняно з ручним тестуванням
Економія часу та зусиль розробників
Збільшує охоплення тестування, оскільки багато інструментів тестування можна використовувати одночасно, що дозволяє виконувати паралельне тестування та різні сценарії тестування.
Повторюваний сценарій
Недоліки автоматизованого тестування:
Вибір правильного інструменті вимагає значних зусиль, часу і планування
Потреба в експертизі в засобах тестування
Вимога певної кваліфікації для написання сценарію
Методи автоматизованого тестування:
Модульне тестування - тестування кожної атомарної функціональності додатку окремо, в штучно створеному середовищі. Саме потреба у створенні штучної робочого середовища для певного модуля, вимагає від тестувальника знань в автоматизації тестування програмного забезпечення, деяких навичок програмування. Дане середовище для деякого юніта створюється за допомогою драйверів(визначений модуль тесту, який виконує елемент, що ми тестуємо.) і заглушок(частина програми, яка симулює обмін даними із компонентом, що тестується, виконує імітацію робочої системи)
Аналіз покриття коду тестами - міра, що описує ступень протестованості програми певним набором тестів. Програма з високим покриттям коду була ретельніше протестована і має менше шансів містити помилки програмного забезпечення, ніж програма з низьким покриттям коду тестами
Аналіз стилістики коду - перевірка коду на дотримання стандартів розробки (галузевих, корпоративних, ухвалених на проекті).
Аналіз продуктивності - аналіз продуктивності ключових операцій, споживання пам'яті, витік пам'яті.
Інструменти тестування (Software Testing Tools):
генератори тестів, що надають допомогу з розроблення сценаріїв тестування;
засоби виконання тестів, що забезпечують середовище виконання тестових сценаріїв у контрольованому оточенні, яке дає змогу відстежувати поведінку тестованого об’єкта;
інструменти оцінювання тестів підтримують оцінювання результатів виконання тестів, допомагаючи визначити місце і міру відповідності поведінки об’єкта очікуванням;
засоби керування тестами надають підтримку всім аспектам процесу тестування програмного забезпечення;
інструменти аналізу продуктивності використовують для кількісного оцінювання та аналізу продуктивності ПЗ.
Цей клас інструментальних засобів можна доповнити категоріями, котрі відповідають іншим видам тестування. Так, можна виокремити інструменти функціонального тестування, засоби тестування безпеки, інструменти тестування користувацького інтерфейсу, інструменти навантажувального тестування тощо.