QA/QC/Testing
Last updated
Last updated
Забезпечення Якості - це сукупність запланованих та систематичних процесів та дій підтримки, необхідних для забезпечення належного рівня впевненості у тому, що процес чи робочий продукт задовольняє встановлені технічні вимоги або вимоги до якості. Досягається це поєднанням методів, стандартів, інструментів та навичок, визнаних як відповідна практика. Процес забезпечення якості використовує результати тестування та іншу інформацію для аналізу, оцінки та інформування про будь-яку проблему (включаючи будь-який ризик) у проектуванні, плануванні або виконанні процесів програмної інженерії. (ГОСТ 56920)
Контроль якості (Quality Control): Робочі методи та активності, націлені на виконання вимог до якості, що є частиною управління якістю. (ІSO 8402)
Тестування (testing): Процес, що містить у собі всі активності життєвого циклу, як динамічні, так і статичні, що стосуються планування, підготовки та оцінки програмного продукту та пов'язаних з цим результатів робіт з метою визначити, що вони відповідають описаним вимогам, показати, що вони підходять для заявлених цілей та визначення дефектів. (ISTQB)
Тестування: Набір операцій, що проводяться для забезпечення виявлення та/або оцінки властивостей одного або більше елементів тестування. Примітка - Дії тестування можуть включати планування, підготовку, виконання, створення звітів і менеджмент, оскільки всі вони спрямовані на тестування. (ГОСТ 56920)
Забезпечення якості (QA – Quality Assurance) – це частина Quality Management – сукупність заходів, що охоплюють всі технологічні етапи розробки, випуску та підтримки ПЗ, що вживаються на різних стадіях життєвого циклу ПЗ, для забезпечення необхідного рівня якості продукту, що випускається. QA забезпечує створення правильних процесів отримання в результаті якісного продукту.
Це також означає створення процесів контролю якості (QC - Quality Control) , які, у свою чергу, гарантують, що процеси, встановлені QA, дотримуються. Тобто QC – це частина QA – процес встановлення стандартів та перевірки, що ПЗ зроблено правильно. Мета контролю якості - перевірити, чи дотримувалася запропонована модель. Це може бути досягнуто шляхом проведення аудитів та визначення того, чи слідувала команда певної моделі для досягнення якості.
Активності QA відбуваються протягом усього SDLC: на етапі побудови, аналізу та поліпшення процесів, формування релізних політик, ризик менеджменту та інших how-to's.
QC підключаються на етапі складання критеріїв якості, -ів, метрик та способів оцінки.
Тестувальник вступає вже після етапу розробки (з shift left на етапі отримання тз та перетворення його на специфікацію).
Іншими словами, QA займається не перевіркою постфактум вже готового ПЗ на відповідність вимогам і наявність дефектів, а намагається запобігти появі цих дефектів, будучи таким собі «інфлюєнсером», фахівцем, що впливає на процеси розробки та покращує їх якість для забезпечення якості підсумкового продукту. QA – не посада, а набір активностей за аналогією з DevOps. Десь це може бути окрема людина, десь цим займається вся команда.
Тестування програмного забезпечення спрямоване на надання інформації про програмний продукт та знаходження максимально можливої кількості дефектів на ранніх етапах процесу розробки при заданих обмеженнях вартості та графіка розробки.
Основними цілями тестування як частини QC є:
надання інформації про якість елемента тестування та будь-які залишкові ризики щодо того, наскільки елемент тестування був перевірений;
виявлення дефектів в елементі тестування до передачі в експлуатацію;
пом'якшення ризиків отримання продукту низької якості заінтересованими сторонами.
Вищезгадана інформація може використовуватися з кількома цілями, включаючи:
покращення елемента тестування шляхом усунення дефектів;
покращення управлінських рішень, надаючи як основу для рішень інформацію про якість та ризики;
покращення процесів в організації, особливо виділяючи процеси, які дозволяють дефектам виникати та/або залишатися прихованими там, де вони можуть бути виявлені.
Як зрозуміти, що тестувальник добре зробив свою роботу?
Існує думка, що основне завдання тестувальників - зламати продукт, насправді той уже приходить на тестування з дефектами, одне із завдань тестувальника якраз їх виявити.
Зрозуміти, що тестувальник виконав свою роботу добре можна за фактом виконання наступних завдань:
продукт перевірено на відповідність вимогам;
зведено до мінімуму кількість дефектів, які виявить кінцевий користувач;
надано звітність щодо актуальної якості продукту та будь-яких залишкових ризиків заінтересованим особам.
QA у СНД та на заході
У нас поняття QA/QC/Testing часто не поділяються (особливо рекрутерами), тому й відбувається плутанина, тому ж ми бачимо купу вакансій з назвою Junior QA, що саме по собі – оксюморон. У QA можна розвиватися тільки вже досвідченим фахівцем.
Quality Assistance та Quality Engineering
На заході, як завжди, термінології та варіацій більше. Крім звичних QA/QC/Testing можна зустріти дещо інше Бачення картини. Акцент робиться на тому, що якість забезпечує розробка (що розумно), а тестувальник своїми навичками у цьому допомагає, тобто асистує (Assistance). У сукупності з менеджерськими завданнями щодо покращення процесів та іншого в сумі виходить вже Quality Assurance. В інших джерелах Quality Assistance передбачає розвиток розробників навичок тестування.
Джерела:
Дод. матеріал:
QA
Testing
При цьому в інших джерелах можна зустріти іншу назву для того, що ми маємо на увазі під QA - QE. - це більше, ніж просто тестувальники чи автоматизатори, вони розширюють можливості команд, привносячи якісне мислення у всі аспекти програмного забезпечення. Вони є експертами в галузі забезпечення якості, автоматизації тестування, аналізу ризиків, гнучких процесів, CI/CD та іншого, що може вплинути на якість продукту. Вони співпрацюють з усіма іншими ролями, щоб забезпечити якість з першого дня, з першої історії, до того, як буде написано перший рядок коду. Деякі компанії називають цю роль SDET (інженер-розробник програмного забезпечення в тестуванні), але кожна компанія визначає ролі по-своєму, тому те, що робить SDET або QE в одній компанії може не зовсім збігатися з іншою.