К счастью, большинство тестировщиков понимают, что понятие «полное отсутствие дефектов» на самом деле является заблуждением. Однако, представление о том, что некий программный продукт не имеет дефектов, все еще сохраняется в ИТ-отрасли в целом. И от этого представления очень важно избавиться. Приведем несколько кратких тезисов, которые могут вам в этом помочь.

Философская проблема отсутствия дефектов

С философской точки зрения, сама идея отсутствия дефектов – это утверждение о полном знании продукта, ведущее к идеальной предсказуемости.

Звучит довольно нелепо, не так ли? Люди, придерживающиеся такой точки зрения, подобны средневековым ученым с их искаженным взглядом на науку, согласно которому она стремится к завершенности и совершенству.

Проблема формулировки отсутствия дефектов

Когда тестировщики слышат слово «дефект», они часто приравнивают его к «багу» в контексте программного обеспечения. И это абсолютно нормально. Но на самом деле эти понятия могут различаться в зависимости от отрасли. Например, в некоторых отраслях есть четкое различие между «ошибкой», «дефектом» и «сбоем». Однако у всех этих понятий есть нечто общее, что практически не зависит от сферы применения.

Давайте сформулируем понятие «дефект» так же, как мы формулируем понятие «баг». Большинство современных тестировщиков скажут, что «баг» – это все, что угрожает ценности продукта. Некоторые из таких угроз могут быть объективными: например, приложение дает сбой, или блендер загорается, или автопилот автомобиля не различает дорожную разметку. Другие будут субъективны: некрасиво, непонятно, слишком медленно.

Исходя из этого, полное отсутствие дефектов недостижимо, потому что потенциальная угроза ценности продукта может существовать всегда.

Качество может быть динамичным восприятием ценности продукта и меняться с течением времени, и как в таком случае вообще можно утверждать, что в приложении полностью отсутствуют дефекты?

Проблема доказательства отсутствия дефектов

Даже если некий продукт действительно не имел бы ни одного дефекта, это было бы невозможно доказать.

Что касается объективных угроз ценности, то здесь возможно лишь снизить их количество и вероятность, чтобы они случались реже. Возможно, некий дефект будет настолько редок, что вероятность его возникновения будет практически нулевая. Таким образом, конкретно этот дефект может быть устранен. Что конечно же не говорит о других возможных дефектах. И, опять же, здесь речь шла только об объективных дефектах.

Более того, вполне возможно, что объективный дефект, возникающий у одного пользователя, не будет проявляться у других. Например, у некоторых моделей автомобилей могла возникать проблема с заклиниванием тормозной системы, а у других - нет, но и даже у проблемных моделей тормоза могли отказать только при определенных условиях. Можно ли в таком случае говорить, что в вашем автомобиле такой проблемы нет только потому, что у вас она ни разу не случалась? Нет, потому что она наверняка случалась с другими автомобилями, даже если вы могли и не знать об этом.

И, наконец, как добиться полного отсутствия дефектов, когда дефект может быть субъективным, как указывалось выше? Для одного человека некая функция может показаться отличным решением, другой же будет о ней противоположного мнения. То, что нравится многим, может одновременно не нравиться большому количеству других людей.

Попробуйте практически доказать теорию полного отсутствия дефектов. Если сделать это невозможно, то зачем о ней говорить? Насколько это вообще реально? А если это нереально, то зачем заявлять о полном отсутствии дефектов?

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

Так что, в конечном счете, утверждение о полном отсутствии дефектов – это скорее некий теоретический стандарт, которого кто-то придерживается и который кто-то готов принимать в качестве доказательства.

Проблема заявления о полном отсутствии дефектов

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

Возвращаясь к философской точке зрения и связывая ее с юридической точкой зрения, доказать полное отсутствие дефектов не представляется возможным. Нельзя доказать отрицательный факт. Можно попытаться доказать определенный уровень устойчивости к дефектам или отсутствие конкретных типов дефектов (то есть использовать формальные проверки качества, выполняемые в различных отраслях), и затем использовать это в качестве свидетельства того, что для поиска и устранения дефектов прилагались все возможные усилия.

Но ни одна формальная процедура проверки качества в мире не имеет значения, если она все еще может пропускать определенные дефекты. Например, не так давно обнаружились проблемы с самолетами Boeing 737 Max, несмотря на очень серьезные формальные процессы проверки качества.

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

Также это может происходить при наличии в системе компонентов, являющихся по своей сути «черными ящиками». В качестве примера здесь можно привести системы машинного обучения и искусственного интеллекта, которые основательно тестируются, но при этом их алгоритмы не являются полностью предсказуемыми с точки зрения ожидаемого результата при определенных условиях.  В результате могут возникать ситуации, когда даже при тщательном тестировании искусственного интеллекта на предмет объективности уже после релиза система сразу же демонстрирует высокий уровень необъективности.[AV4] [VG5] 

Проблема идеальной цели полного отсутствия дефектов

Для некоторых оспаривание возможности полного отсутствия дефектов может прозвучать как вызов и свидетельствовать о равнодушии или пессимистичности автора. Ведь, даже если полного отсутствия дефектов невозможно достичь, то к этому все равно нужно стремиться!

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

То есть здесь речь идет о полной предсказуемости работы продукта при любых возможных условиях. Речь идет о полном отсутствии у него любых неясностей или противоречий (то есть по сути тех же дефектов), что исключает возможность неправильного использования или восприятия продукта пользователями.

Достижим ли этот идеал? Как показывает практика и история человечества – нет, по крайней мере до тех пор, пока проектированием и созданием сложных продуктов занимаются люди.

К чему действительно стоит стремиться, так это к сокращению тех дефектов, которые оказывают наибольшее негативное воздействие на человеческую жизнь или ее аспекты, такие как финансы, например. А также дефектов, приводящих к разочарованию в использовании продукта, даже если они не опасны для жизни или здоровья.

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

Необходимость в тестировании очевидна

Так что давайте пока иметь дело с реальностью. А реальность такова: дефекты будут всегда. А даже если их действительно нет, то доказать это не получится. Поэтому лучше всегда думать, что они есть.

Звучит как печальная реальность, с которой нужно смириться? Может быть да, а может и нет. В любом случае, именно поэтому миру нужны специалисты по тестированию.

Мы не только помогаем развеять иллюзии и заблуждения (как например, полное отсутствие дефектов), но и предоставляем методы и подходы для работы с последствиями этой реальности (то есть с существованием дефектов) в условиях ограниченного знания (из-за которого дефекты возникают) и недостатка интуиции (из-за которого дефекты остаются необнаруженными).

Комментарии (2)


  1. MegaMANGO
    18.10.2023 20:11
    +1

    В чём ценность статьи?


  1. shingelevich
    18.10.2023 20:11

    Отличие бага от ошибки. На тестовом стенде это баг. Когда овнер тычет пальцем в страничку на проде - это ошибка. Еще можно было упомянуть слово "артефакт" в статье.