Software
September 20, 2020

Что значит качество?

В моих планах на год значилась тема unit-тестирования, а именно определиться с терминологией и выстроить для себя стройную модель применения тестов на практике.

Проблемы начались сразу же, с определений, а именно что такое unit и тестирование. Под юнитами могут подразумеваться функции, методы, классы, модули, бизнес-кейсы и т.д. С термином тестирование все печальнее, а если же попытаться дать определение цели тестирования, а именно Качеству, то можно погрязнуть в пучине метафизики и философии.

В тщетных попытках получить по этой теме что-нибудь внятное я наткнулся на такую вещь, как SQuaRE - Software product Quality Requirements and Evaluation - группа стандартов, посвященная качеству ПО, в которых освещены темы спецификации, построения моделей, планированию, оценке качества и чего-то там еще. Чтобы не запутаться во всей этой кипе документов есть даже целый гайд ISO/IEC 25000:2014.

Круто! - подумал я, вот то, что мне нужно. Всю работу уже сделали за меня, осталось только прочитать и разобраться. Но тут есть один нюанс - за каждый документ нужно отвалить порядка 150$ по текущему курсу, сам гайд по SQuaRE ссылается на 100500 других стандартов, общая сумма приближается к астрономической.. В связи с этим у меня возникло несколько вопросов:

  1. Кто эти люди, которые читали вышеупомянутые стандарты?
  2. Как происходит процесс сертификации?
  3. А зачем оно мне надо?

Опыта с сертификатами я не имел, но могу предположить, что есть конторы, которые проводят консультации и аудит, и в итоге сетифицируют вашу организацию по выбранному стандарту. В российской действительности возможно что ни заказчик, ни аудитор в глаза не видели оригинальный текст стандарта. Но главная проблема - со всей этой сертификацией я отклонился от первоначальной темы и зашел не туда, поэтому нужно сконцентрироваться на третьем вопросе.

Пытаясь ответить на глобальный вопрос о том, что же такое качество я углубился в тему, которая мне неинтересна, а ответ, даже если он есть, не будет иметь практической ценности, посему заканчиваю с философскими вопросами и останавливаюсь на следующем:

  1. Имея дело с субъективными понятиями необходимо применять субъективный подход - гораздо важнее чтобы внутри проекта было единое понимание той или иной сущности (unit, качество, тестирование и т.д.), чем точное, но абстрактное определение
  2. В процессе изучения темы тестирования попалась на глаза книга, которую стоит почитать: The Art of Unit Testing
  3. Качество - вещь абстрактная, а говнокод реален, корень всех зол в нем.