1.Тестування програмного забезпечення
Тестування програмного забезпечення (англ. software testing) — це процес
технічного
дослідження, призначений для
виявлення інформації про якість продукту відносно контексту, в якому його мають використовувати. Техніка
тестування також включає як процес пошуку помилок або інших дефектів, так і випробування програмних
складових із
метою оцінки.
Тестування програмного забезпечення — процес перевірки відповідності заявлених до продукту вимог і
реально
реалізованої функціональності, який здійснюють шляхом спостереження за його роботою в штучно створених
ситуаціях
і на обмеженому наборі тестів, обраних певним чином.
Можуть оцінювати:
- відповідність вимогам, якими керувалися проєктувальники та розробники,
- правильність відповіді для всіх можливих вхідних даних,
- виконання функцій за прийнятний час,
- практичність,
- сумісність із програмним забезпеченням та операційними системами,
- відповідність задачам замовника.
Тестування ПЗ може надавати об'єктивну, незалежну інформацію про якість ПЗ, ризики відмови, як для користувачів, так і для замовників.[1]
Тестування можна проводити, як тільки створено виконуваний код (навіть частково завершений). Процес розробки зазвичай передбачає, коли та як буде відбуватися тестування. Наприклад, при поетапному процесі більшість тестів відбувається після визначення системних вимог і тоді вони реалізуються в тестових програмах. На противагу цьому, відповідно до вимог гнучкої розробки ПЗ, програмування і тестування часто відбувається одночасно.
2. Якість програмного забезпечення
Якість програмного забезпечення — характеристика програмного забезпечення, ступінь відповідності ПЗ до вимог. При цьому вимоги можуть трактуватись по-різному, що породжує декілька незалежних визначень терміну. Якість ПЗ – набір властивостей продукту (сервісу або програм), що характеризують його здатність задовольнити встановлені або передбачувані потреби замовника. Поняття якості має різні інтерпретації залежно від конкретної програмної системи і вимог до неї.
3. Характеристики якості програмного забезпечення
Якість - дуже відносне поняття. Наш продукт може не містити багів, але при цьому не приносити прибуток (хоча мав би), або не бути популярним і не витримувати конкуренції. З одного боку ми можемо сказати що якість - це задоволення кінцевих користувачів від користування нашим продуктом. З іншого - у нас є декілька характеристик того, що ми називаємо якістю.
6 характеристик якості програмного забезпечення (Software Quality Characteristics) (відповідно до ISO9126):
Визначення цих характеристик і атрибутів за стандартом ISO 9126:2001 (на сьогоднішній день вже існує оновлений стандарт ISO/IEC 25010 ): Функціональність (functionality). Здатність ПЗ в певних умовах вирішувати задачі, потрібні користувачам. Визначає, що саме робить ПЗ, які задачі воно вирішує. Функціональна придатність (suitability). Здатність вирішувати потрібний набір задач. Точність (accuracy). Здатність видавати потрібні результати. Здатність до взаємодії (interoperability). Здатність взаємодіяти з потрібним набором інших систем. Відповідність стандартам і правилам (compliance). Відповідність ПЗ наявним індустріальним стандартам, нормативним і законодавчим актам, іншим регулюючим нормам.
Захищеність (security):
Здатність запобігати неавторизованому, тобто без вказівки особи, що намагається його здійснити, і недозволеному доступу до даних і програм. Надійність (reliability). Здатність ПЗ підтримувати визначену працездатність у заданих умовах. Зрілість, завершеність (maturity). Величина, зворотна частоті відмов ПЗ. Звичайно виміряється середнім часом роботи без збоїв і величиною, зворотною імовірності виникнення відмови за даний період часу. Стійкість до відмов (fault tolerance). Здатність підтримувати заданий рівень працездатності при відмовах і порушеннях правил взаємодії з середовищем. Здатність до відновлення (recoverability). Здатність відновлювати визначений рівень працездатності та цілісність даних після відмови, необхідні для цього час і ресурси. Відповідність стандартам надійності (reliability compliance). Цей атрибут доданий в 2001 році.
Зручність використання (usability) або практичність:
Здатність ПЗ бути зручним у навчанні та використанні, а також привабливим для користувачів. Зрозумілість (understandability). Показник, зворотний до зусиль, які затрачаються користувачами на сприйняття основних понять ПЗ та усвідомлення їх застосовності для розв'язання своїх задач. Зручність навчання (learnability). Показник, зворотний зусиллям, затрачуваним користувачами на навчання роботі з ПЗ. Зручність роботи (operability). Показник, зворотний зусиллям, що вживається користувачами для розв'язання своїх задач за допомогою ПЗ. Привабливість (attractiveness). Здатність ПЗ бути привабливим для користувачів. Цей атрибут доданий в 2001 році. Відповідність стандартам зручності використання (usability compliance). Цей атрибут доданий в 2001 році.
Продуктивність (efficiency) або ефективність:
Здатність ПЗ при заданих умовах забезпечувати необхідну працездатність стосовно виділюваного для цього ресурсам. Можна визначити її і як відношення одержуваних за допомогою ПЗ результатів до затрачуваних на це ресурсів усіх типів. Часова ефективність (time behaviour). Здатність ПЗ видавати очікувані результати, а також забезпечувати передачу необхідного об'єму даних за відведений час.
Ефективність використання ресурсів (resource utilisation):
Здатність вирішувати потрібні задачі з використанням певних об'ємів ресурсів певних видів. Маються на увазі такі ресурси, як оперативна й довгострокова пам'ять, мережні з'єднання, пристрої вводу та виводу та ін. Відповідність стандартам продуктивності (efficiency compliance). Цей атрибут доданий в 2001 році.
Зручність супроводу (maintainability):
Зручність проведення всіх видів діяльності, пов'язаних із супроводом програм. Аналізованість (analyzability) або зручність проведення аналізу. Зручність проведення аналізу помилок, дефектів і недоліків, а також зручність аналізу необхідності змін і їх можливих наслідків. Зручність внесення змін (changeability). Показник, зворотний трудозатратам на виконання необхідних змін. Стабільність (stability). Показник, зворотний ризику виникнення несподіваних ефектів при внесенні необхідних змін. Зручність перевірки (testability). Показник, зворотний трудозатратам на проведення тестування і інших видів перевірки того, що внесені зміни привели до потрібних результатів. Відповідність стандартам зручності супроводу (maintainability compliance). Цей атрибут доданий в 2001 році.
Переносимість (portability):
Здатність ПЗ зберігати працездатність при перенесенні з одного оточення в інше, включаючи організаційні, апаратні й програмні аспекти оточення. Адаптованість (adaptability). Здатність ПЗ пристосовуватися різним оточенням без проведення для цього дій, крім заздалегідь передбачених. Зручність установки (installability). Здатність ПЗ бути встановленим або розгорнутим у певному оточенні. Здатність до співіснування (coexistence). Здатність ПЗ співіснувати з іншими програмами у загальному оточенні, ділячи з ними ресурси. Зручність заміни (replaceability) іншого ПЗ даним. Можливість застосування даного ПЗ замість інших програмних систем для вирішення тих же задач у певному оточенні. Відповідність стандартам переносимості (portability compliance). Цей атрибут доданий в 2001 році.
4. Цілі тестування програмного забезпечення
Дослідити на ранньому етапі нереалізовані ризики; Скоротити цикл зворотного зв’язку; Зменшити витрати на підтримку; Вдосконалити якість продукту; Зробити залежності явними; Зробити легшим життя команди.
5. Які задачі у тестувальника на проєкті
Тестувальники програмного забезпечення: Допомагають переглянути/проаналізувати вимоги Допомагають розробникам зрозуміти крайні випадки (так звані едж кейси) Допомагають розробникам випустити функціональність "без помилок" Допомагають менеджерам приймати рішення (чи готові ми до релізу?) Пишуть документацію.
STLC - життєвий цикл тестування програмного забезпечення
Ми визначаємо життєвий цикл тестування програмного забезпечення (STLC) як серію заходів, які ми виконуємо для: тестування програмного забезпечення виконуватися. Таким чином, життєвий цикл тестування програмного забезпечення відноситься до процесу тестування з конкретними кроками. Однак ми повинні виконувати ці кроки в певному порядку, щоб гарантувати, що програмне забезпечення відповідає цілям якості. Тому в процесі STLC ми виконуємо кожну діяльність планомірно та систематично. Кожен етап також має свої власні цілі та результати. Фази STLC різні для кожної організації, але основа залишається незмінною.
Нижче наведені етапи STLC:
Аналіз вимог. Фаза планування. Розробка тестового кейсу. Налаштуйте тестове середовище. Фаза впровадження. Закриття тестового циклу STLC. Кожен із цих етапів має чіткий критерій входу та виходу, пов’язані з ним дії та результати.