Какво е качество
Накратко: Качеството е доколко продуктът дава на хората около него това, от което имат нужда. ISO/IEC 25010:2023 го разделя на девет характеристики: една за това какво прави системата и осем за това колко добре го прави.
Проблем
Всичко работи. Клиентите си тръгват
След пускането на новия магазин всичките 300 теста минават. Доставката се смята вярно, промо кодовете работят, отказът на поръчка е позволен само преди изпращането.
Само че страницата на количката зарежда 9 секунди на телефон. Половината клиенти я затварят, преди да видят сумата. Програмата прави всичко правилно. И пак е лоша.
Явно „правилно“ не е цялото качество. Какво е останалото?
Идеята
Качество за кого?
Един и същ магазин е „добър“ по различни причини за различни хора:
- клиентът иска да намери продукта, да плати бързо и да не му откраднат картата;
- складът иска поръчката да стигне до програмата му в правилния формат;
- счетоводството иска сумите и отстъпките да се събират до цент;
- програмистът, който ще промени прага за доставка догодина, иска да го намери на едно място.
Качеството е доколко продуктът дава на тези хора това, от което имат нужда: и казаното, и неказаното. Затова първият въпрос не е „добро ли е“, а „за кого и в какво“.
Идеята
Деветте характеристики
Стандартът ISO/IEC 25010:2023 подрежда качеството на продукта в девет характеристики. Това е модел на качеството (quality model): списък, по който да не забравиш нищо.
| Характеристика | В магазина |
|---|---|
| Функционална пригодност (functional suitability) | Доставката е безплатна от 50 €, отстъпката се вади вярно. |
| Производителност (performance efficiency) | Количката се отваря под 2 секунди при 500 клиенти едновременно. |
| Съвместимост (compatibility) | Поръчката стига до програмата на склада и до куриера в техния формат. |
| Възможност за взаимодействие (interaction capability) | Клиент с четец на екрана поръчва сам; грешката казва какво да направиш. |
| Надеждност (reliability) | Ако куриерът не отговаря, поръчката се пази и се праща по-късно. |
| Сигурност (security) | Никой не вижда чужди поръчки; промо кодът не може да се налучка. |
| Поддържаемост (maintainability) | Прагът от 50 € се сменя на едно място, а тестовете казват какво е засегнато. |
| Гъвкавост (flexibility) | Магазинът поема пет пъти повече клиенти на Черния петък и тръгва в нова държава. |
| Безопасност (safety) | Храна без описани алергени не се продава: системата я спира, вместо да я покаже. |
Българските имена са превод на курса. Английските са тези, които ще срещнеш в стандарта и на изпита.
По-точно, за любопитните
ISO/IEC 25010 дефинира качеството на продукта като степента, в която той удовлетворява заявените и подразбиращите се нужди на заинтересованите страни. Изданието от 2023 г. смени няколко неща спрямо 2011 г.:
- безопасността (safety) е нова, девета характеристика;
- използваемостта (usability) се казва възможност за взаимодействие (interaction capability) и има нови подхарактеристики, например приобщаване (inclusivity) и самоописателност (self-descriptiveness);
- преносимостта (portability) се казва гъвкавост (flexibility) и включва мащабируемост (scalability).
Всяка характеристика има подхарактеристики. Функционалната пригодност например е пълнота, коректност и уместност. Моделът на качеството при употреба (quality in use: как се чувства човекът, който ползва продукта) от 2023 г. е в отделен стандарт, ISO/IEC 25019.
Упражнение
Сортирай оплакванията
1. Оплакванията на клиентите. Всяко оплакване е истинско. Към коя характеристика е?
Идеята
Функционално и нефункционално
Първата от деветте характеристики казва какво прави системата: при количка за 50 € доставката е 0 €. Това са функционалните изисквания.
Останалите осем казват колко добре го прави: колко бързо, за кого, колко сигурно, колко време без прекъсване, колко бързо се променя. Това са нефункционалните изисквания (non-functional).
Нефункционалните се забравят най-често. Никой не ги казва, защото „се подразбират“: магазинът, разбира се, трябва да е бърз и сигурен. Докато не се окаже, че не е. В началната история всички функционални тестове минаха. Липсваше едно нефункционално изискване.
Пробвай
Какво или колко добре?
Идеята
Качеството се договаря
„Сайтът да е бърз“ не може да се провери. Колко бърз? Коя страница? При колко клиенти? На какъв телефон?
Изречението става изискване, когато получи мерило: „95 % от отварянията на количката са под 2 секунди при 500 клиенти едновременно, на мобилна мрежа“. Сега тестерът знае какво да мери, а собственикът знае какво е обещано.
Характеристиките се дърпат една друга. Вход с код по SMS прави магазина по-сигурен и по-бавен за клиента. Затова не всяка е еднакво важна, и коя колко тежи е решение на бизнеса. В магазина бързината и сигурността на плащането тежат повече от безопасността. В софтуер за болница е обратното. Това е принципът „тестването зависи от контекста“, приложен към изискванията.
Идеята
Верификация и валидиране на качеството
Двата въпроса от първия урок важат и тук.
- Верификация: изискването казва „под 2 секунди“, а измерено е 1,8 секунди. Минава.
- Валидиране: а 2 секунди ли е правилната граница? Мерено ли е там, където са клиентите: на телефон, на мобилна мрежа? Ако клиентите пак се отказват, изискването е грешно, не програмата.
Нефункционалното изискване може да има дефект като всяко друго. И го хваща същото: въпрос и конкретен пример, преди да се пише код.
Тест
Провери се
Свързани уроци
Раздел „Свързани уроци“- Нужно отпреди: Добре дошъл · Защо програмите грешат
- Продължава в: Видове изисквания · Доброто изискване · Видовете тестване · Използваемост и достъпност
- Задачи по темата: Добре дошъл