В очень маленькой команде, где тестирование черного ящика и белого ящика выполняется одним и тем же человеком, что тестер должен сделать в первую очередь?
В очень маленькой команде, где тестирование черного ящика и белого ящика выполняется одним и тем же человеком, что тестер должен сделать в первую очередь?
Ответы:
Что бы ни было наиболее правильным.
Серьезно, тестирование белого ящика (т.е. тестирование внутренних частей кода) в идеале должно проводиться с помощью модульных тестов разработчиком, написавшим код. Модульные тесты будут создаваться со временем, и это будет частью процесса сборки, поэтому мы не будем тратить время плохого тестировщика на код, который, как мы знаем, работает не так, как должен. Модульное тестирование становится тем важнее, чем меньше ваша команда - особенно потому, что у вас нет армии тестеров, чтобы избавиться от проблем.
Тестирование «черного ящика» (т. Е. Тестирование через интерфейс пользователя / системы) обычно является тем, что делает большинство тестеров.
Все тестирование должно быть приоритетом того, насколько важна функция для готового продукта. Если миссия состоит в том, чтобы предоставить инструмент для выполнения X, а продукт не делает X, это большая проблема.
Тестирование черного ящика для проверки возможностей. Тестирование белого ящика при необходимости, если что-то сломано. Если все тесты черного ящика пройдены и покрытие хорошее, тестирование белого ящика не требуется.
Черный ящик.
Компоненты белого ящика обычно зависят от компонентов черного ящика, поэтому я хотел бы сначала проверить черный ящик, а затем перейти к белому.
Сначала вы делаете белое тестирование, думая как программист / разработчик, чтобы убедиться, что все будет работать нормально. Затем вы проводите тестирование черного ящика, обычно пытаясь думать, что вы конечный пользователь, не думая о внутренней структуре программы. Иногда вам нужно думать как программист / разработчик, даже если вы проводите черное тестирование, потому что вы можете тестировать внутренний модуль, написанный другим человеком, и у вас нет доступа к коду.
Если вы хотите иметь хороший цикл тестирования, у вас должны быть разные люди, выполняющие оба :
Разработчик, сосредоточенный главным образом на тестировании «белого ящика», знает, что изменилось в коде в последнее время, какие области являются более сложными (и, следовательно, могут сломаться) и т. Д., И может соответствующим образом сосредоточить усилия на этих областях, которые могут привести к появлению новых дефектов.
С другой стороны, тестер QA, ориентированный на тестирование «черного ящика», может легче подходить к тестированию, чем конечный пользователь. Без каких-либо внутренних знаний о коде, они могут принять новый подход и не будут предвзяты из-за знания о том, как реализуются различные части решения. Они будут обнаруживать ошибки, которые разработчик мог упустить из виду, или регрессии от изменений кода, которые случайно нарушили другие области приложения.
Чтобы ответить на ваш вопрос, сначала нужно провести тестирование белого ящика. Но вам действительно нужно, чтобы другой человек проводил тестирование черного ящика, если вы хотите, чтобы он был эффективным.
Мне нравится начинать с тестирования черного ящика, затем использовать информацию о покрытии кода или отладчик, чтобы выяснить, что я делаю, и проанализировать, что происходит.
Но настоящий ответ - это зависит . Я, скорее всего, углублюсь в код раньше (или даже сначала), если буду выполнять тестирование API, но гораздо позже, если моя цель - рассмотреть некоторые крупные сквозные сценарии.
Я бы сказал, сначала « черный ящик» , просто потому, что, как сторонник TDD, тесты пишутся до того, как код (или блок) все равно существует :)
Тестирование белого ящика (насколько я понимаю) более полезно при отладочном мышлении.
Тестирование черного ящика, потому что вы пишете тесты до того, как код существует. Тестер должен разрабатывать автоматические тесты, требующие много времени, параллельно с написанием кода разработчиком, чтобы быть эффективным в небольшой команде.
Если код уже написан, я бы посоветовал вам потратить некоторое время на наброски тестового покрытия с точки зрения «черного ящика», чтобы убедиться, что у вас есть время для мозгового штурма, прежде чем загромождать мозг реальным кодом. Тем не менее, вы можете переключиться на «белый ящик» и посмотреть на код, прежде чем вы слишком далеко зайдете в реальное тестирование, чтобы почувствовать опасные области и расставить приоритеты для тех тестов, которые вы мозговым штурмом ранее (и дополнить их новыми тестами, придуманными глядя на части кода, которые кажутся сложными или сомнительными).
Ни. Я стараюсь писать хорошие тесты, используя мой Right BICEP , имея в виду ПРАВИЛЬНЫЕ граничные условия, независимо от того, в каком порядке они приходят на ум. Это оба аббревиатуры, предложенные в Прагматическом модульном тестировании .
Моя цель - сосредоточиться на написании хороших тестов, а не на том, какой цвет писать первым.
Сначала сделайте это тестирование белого ящика .
Второй - тестирование черного ящика.
> Тестирование черного ящика
I. Тестер должен проверить работоспособность приложения, например, текстовое поле, переключатель, список, командную кнопку и т. Д.,
II. Тестер должен проверить не функционал приложения, такой как логотип, изображение, орфография, и т. Д.,
III. Тестер должен проверить весь поток приложения.
Примечание: для проверки положительных и отрицательных условий.