Стандарт якості даних ПЗ — детально розбираємо ISO 25012
Усі статті, обговорення, новини про тестування — в одному місці. Підписуйтеся на DOU | QA!
Привіт друзі. Я — Олексій Остапов, автор блогу QA Mania і один з ведучих подкасту «Питання Якості»!
Деякий час тому я прочитав у Test Engineering Notes невеликий пост про стандарт якості даних ISO 25012. Як справжній душніла™️, що обожнює різні стандарти, я не міг пройти повз, і вирішив детально його розібрати, тим паче він є сусідом нашого улюбленого стандарту якості ПЗ — ISO 25010.
Бо гарні дані — основа для гарних тестів. А цей стандарт — один з тих випадків, коли навіть не думаєш, що таке є 😀
Чому знати про стандарти — корисно? Вони можуть стати точкою відліку для вашої роботи! Треба комплексне тестування ПЗ? Згадуєте ISO 25010 — і пішли за списком:
✅ функціональність — тестуємо, що програма робить;
✅ ефективність — як швидко програма робить те, що робить;
✅ надійність — як програма обробляє помилки;
і т.д.
Якщо у вас є потреба протестувати якість даних і ви не хочете нічого пропустити — читайте стандарт.
Якщо вам треба «залізні» докази, що ваші дані якісні — посилайтесь на стандарт.
Якщо вам треба довести, що надані/ згенеровані дані не якісні — ну, ви зрозуміли ;)
Це і є експертний підхід!
Визначення
Якість даних — міра відповідності даних визначеним вимогам (майже співзвучно визначенню якості ПЗ). Якість даних складається з 15 характеристик, розділених на 3 категорії:
Власна якість даних
Власна якість даних (Inherent Data Quality) — ступінь відповідності даних явним і неявним потребам.
Ця категорія містить 5 характеристик:
1. Точність (Accuracy) — міра відповідності атрибутів даних справжньому значенню передбачуваного концепцією в конкретному контексті використання.
Має 2 підатрибути:
✅ Синтаксична точність (Syntactic Accuracy) — міра відповідності даних правилам, визначеним у домені, який вважається синтаксично правильним (мають правильну форму).
✅ Семантична точність (Semantic Accuracy) — міра відповідності даних правилам, визначеним у домені, який вважається семантично правильним (мають правильний зміст).
Приклад на зображенні. Є набір даних: товари для інтернет-магазину, який продає різні чашки. Два записи містять дані низької якості:
➡️ № 5 Горнятко: проблема з синтаксисом в описі товару.
➡️ № 8 Годинник: проблема зі змістом (самою суттю) — зайвий товар в усьому наборі даних.
2. Повнота (Сompleteness) — міра відповідності даних, пов’язаних з конкретною сутністю, до еталонної. Дані мають мати значення для всіх очікуваних атрибутів і пов’язаних екземплярів в конкретному контексті використання.
Приклад: товари для інтернет-магазину, який продає різні чашки.
➡️ № 2 Стакан: не містить поля ціна, тож дані є не повними.
➡️ № 3 Келих: не містить поля джерело, тож дані є не повними.
➡️ Для жодного запису не має даних в атрибуті Misc. Або ж всі дані — не повні, або це поле тут зайве і має бути видалене.
3. Узгодженість (Сonsistency) — міра відповідності даних іншим даним в конкретному контексті використання.
Приклад на зображенні. Є набір даних: товари для інтернет-магазину, що продає різні чашки.
➡️ Опис товару «горнятко» написано англійською мовою, тож попри те, що дані є, вони синтаксично і семантично правильні, вони не мають бути в цьому наборі.
4. Достовірність (Credibility) — міра відповідності даних таким, що вважаються правдивими в конкретному контексті використання. Достовірність включає концепцію автентичності (правдивість походження, атрибуції, зобов’язань)
Приклад на зображенні. Є набір даних: товари для інтернет-магазину, що продає різні чашки.
➡️ Концепція магазину передбачає, що назва і опис товару відповідають дійсності. Саме тому запис № 8 викликає сумніви. Вібраніум — вигаданий метал, а Тор і Мйольнір — персонажі скандинавської мітології і коміксів Марвел.
5. Актуальність (Currentness) — міра відповідності даних віку в конкретному контексті використання.
Приклад на зображенні. Є набір даних: товари для інтернет-магазину, що продає різні чашки.
➡️ Товари № 6 та № 7 були доступні для продажу у 2018 та 2019 роках відповідно. Тобто зараз втратили свою актуальність.
❗️ Тут варто зазначити, що визначати актуальність даних потрібно дуже обережно, бо деякі старі дані можуть зберігатись не просто так, а для забезпечення зворотної сумісності чи для історії.
Якість даних, залежна від системи
➡️ Якість даних, залежна від системи (System-Dependent Data Quality) — ступінь досягнення та збереження даних в конкретній комп’ютерній системі.
Ця категорія містить всього 3 атрибути:
1. Доступність (Availability) — міра, в якій дані можуть бути отримані авторизованими користувачами чи ПЗ.
Наприклад: кожен користувач, що реєструється в системі, має мати доступ до всіх своїх даних. При цьому система присвоює кожному користувачу прихований ID. Саме цей ID потенційно зменшує якість всіх даних, бо не все доступно користувачу.
2. Портативність (Portability) — міра, в якій дані можуть бути перенесені в іншу систему без втрати якості.
Наприклад: типова проблема багатьох інженерів — налаштувати міграцію даних. Гарні системи одразу проєктуються таким чином, щоб мати механізм експорту: в json, csv, xls тощо.
3. Відновлюваність (Recoverability) — міра, в якій дані можуть бути збережені для подальшої роботи у випадку помилок.
Наприклад: є бекап — чудово, нема бекапа — бігом робити! 😁
Змішана якість даних
Змішана якість даних (Inherent and System-Dependent Data Quality) — ступінь відповідності даних і потребам, і конкретному ПЗ.
Ця категорія містить 7 атрибутів:
1. Доступність (Accessibility) — міра, в якій дані можуть бути доступними в конкретному контексті використання; наприклад, людям з обмеженими можливостями.
Наприклад: до кожної картинки на вашому сайті є текстовий опис, який може бути озвучений програмою для людей, що погано бачать.
2. Відповідність (Compliance) — міра відповідності атрибутів даних стандартам, домовленостям і правилам.
Наприклад: номером кредитної картки є
3. Конфіденційність (Confidentiality) — міра, в якій дані мають атрибути, що забезпечують доступ до даних лише авторизованим користувачам.
Наприклад: дані зберігаються в зашифрованому вигляді і доступні лише тим, що має пароль для розшифрування.
4. Ефективність (Efficiency) — міра, в якій дані зберігаються у тому виді, в якому їх обробка займає оптимальну кількість часу.
Наприклад (утрирувано): числа можна зберігати у вигляді цифр: 1, 2, 15, 27, а можна у вигляді слів: один, два, п’ятнадцять, двадцять сім. Дані ті ж, але у вигляді слів їх обробляти складніше.
5. Влучність (Precision) — тут буде складно не переплутати з Точністю (Accuracy). Міра відповідності можливості чітко їх розрізнити і зрозуміти їхнє призначення.
Наприклад: у вашому інтернет-магазині атрибут товару — «ціна», має назву не «ціна», а абстрактно «гроші». Майже те саме, але погіршує розуміння.
6. Відстежуваність (Traceability) — міра відповідності можливості відстежити доступ до даних і зміни даних.
Наприклад: Git — гарний приклад системи, що містить дані та повну історію їх змін, тобто дані в git — якісні з точки зору відстежуваності.
7. Зрозумілість (Understandability) — міра, в якій дані можуть бути прочитані та інтерпретовані користувачами, написані відповідними мовами і символами.
Типовий приклад: дані, збережені в кодуванні UTF-8 — якісніші, ніж дані, збережені в національному кодуванні типу CP-1251.
Висновки
Якщо ви знали, що з вашими тестовими даними щось не так, але не мали достатньо знань та досвіду, щоб визначити — що саме, то стандарт — чудова відправна точка, щоб їх перевірити! Напишіть, чи тестуєте ви дані, чи маєте готові чеклісти та чи робите це інтуїтивно.
6 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів