Распространенные поисковые запросы, часть 2: каким образом тестирование влияет на качество ПО? |
01.02.2021 00:00 |
Автор: Ли Хокинс (Lee Hawkins) Это вторая часть из цикла статей, в котором я отвечу на самые распространенные вопросы о тестировании согласно результатам автодополнения в поисковых системах. В этот раз я отвечу на вопрос "Как тестирование влияет на качество ПО?" (и связанный с ним вопрос, "Как связаны тестирование и качество ПО?"). Тут надо сделать отступление и прояснить, что я имею в виду под "качеством" при помощи определения от Джерри Вайнберга и Кема Кейнера: Качество – это ценность для значимого человека. Мне нравится это определение, потому что оно ставит человека во главу угла и признает субъективность качества. То, что один пользователь считает багом, другой может считать фичей! Эта внутренняя субъективность означает, что качество подлежит оценке, а не измерению, как об этом писал Джеймс Бах в статье "Оценивайте качество, а не измеряйте". Итак, как же связаны тестирование и качество? Если думать о тестировании как о поставщике информационных услуг, то влияние тестирования на качество конечного продукта сильно зависит и от качества этой информации, и от действий и решений, принятых по результатам получения этой информации. Если тестирование предоставляет информацию, которую сложно интерпретировать, или не может передать ее способом, значимым для ее потребителей – ее вряд ли воспримут всерьез и что-нибудь предпримут. Если заинтересованные лица решают ничего не делать с полученной от тестирования информацией (даже очень ценной), то тестирование не имеет существенного влияния на качество. Ясно, что преобладающая в нашей области мысль, что тестирование повышает качество, не обязательно верна – но хорошее тестирование совершенно точно может повлиять на качество. Может даже случиться так, что увеличение тест-усилий приведет к падению качества ПО. Если тестирование сконцентрировано на поиске багов, а не выявлении угроз ценности приложения, то усиление тестирования, возможно, приведет к поиску большего количества багов, но они могут и не отражать важные проблемы продукта. Большое количество найденных багов приводит к большему количеству изменений в продукте и потенциально увеличивает риски, а не снижает их (популярная нынче идея о "ПО без дефектов" прямо-таки напрашивается на эту контр-интуитивную проблему). Раньше тестировщиков рассматривали как привратников качества, но это восприятие, слава богу, осталось только в книгах. Все члены команды разработки в той или иной степени отвечают за качество, и тестировщики находятся в прекрасной позиции, позволяющей помогать коллегам развивать их тест-навыки, улучшать анализ рисков, и т. п. В этом смысле мы выступаем как помощники качества, и у некоторых компаний есть явно определенная роль "Помощника качества" – и тогда имеет смысл называть себя QA (в этом не было смысла, когда QA было синонимом "обеспечения качества"). Мне нравятся слова Джеймса Баха в его статье "Почему я тестировщик" Во-первых, мое намерение как тестировщика не заключается в том, чтобы повышать качество. Это благоприятный побочный эффект моей работы, однако я называю это побочным эффектом, так как он полностью находится за пределами нашего влияния. Тестировщики не создают качество, не обеспечивают его, не убеждаются в нем и не страхуют его. Мы не доказываем, что продукт "работает" в прямом смысле этого слова. Основная цель тестирования – то, что заставляет нас размышлять и лежит в пределах наших возможностей – это выявление правды о продукте. Лучшие из известных мне тестировщиков обожают развеивать иллюзии, действуя в интересах наших клиентов. Тестирование – это способ выявления угроз ценности ПО для нашего потребителя – и, учитывая определение качества, взаимоотношения между тестированием и качеством кажутся довольно ясными. Сложность в том, как выполнять тестирование так, чтобы в ходе поиска этих угроз на первом плане стояла ценность ПО для заказчика. Мы обратимся к этому позднее в цикле. Очень рекомендую статью Майкла Болтона "Тестировщики, хватит заниматься обеспечением качества", демонстрирующую место тестирования – и тестировщиков – в создании качественного ПО. |