Какие бывают
В ИТ-среде в связи с тестированием и качеством принято три обозначения:
QA — quality assurance, самый главный по качеству;QC — quality control, контролёр качества;Tester — тестировщик.
В разных компаниях эти обозначения могут сливаться или дополнительно разделяться, но в целом картинка такая.
QA — это тот, кто думает о качестве продукта в целом, причём не только о конечном коде, но и всего процесса разработки. Например:
Как понять пользовательские сценарии, в которых вероятнее всего возникнут ошибки? Как их собрать? Как систематизировать? Как ничего не упустить? (Например, как понять, какие именно предметы люди могут догадаться засунуть в микроволновку, и как защититься от идиотов, которые засунут туда динамит?)Как соединить запросы людей, требования бизнеса и реальные возможности продукта с точки зрения качества? Что если наш продукт совсем не делает то, чего пользователи могут ожидать? Например, если они будут сушить в микроволновке кошку — это чья проблема? Будем ли мы с этим что-то делать?Кто, как и в каком порядке будет исправлять ошибки? Как мы будем повторно тестировать места с ошибками?Что и как тестировать от версии к версии программы, чтобы это было достаточно быстро, но не в ущерб качеству?
Можно представить, что QA — это директор по качеству, главный человек на пути у багов. Он не менее важен, чем главный архитектор или ИТ-директор. Многие его функции могут пересекаться с функциями других ИТ-директоров.
QC — это тот, кто сфокусирован на тестировании самого продукта:
Что именно тестируем? Какие функции, кнопки, состояния, сценарии?Какие результаты тестирования нам нужны? Какие исходы правильные, а какие — ошибки?Как автоматизируем тесты? Что нужно обязательно пройти ручками?Как синхронизировать работу нескольких тестировщиков? Как распределить задачи, области, слои?
Можно представить, что это такой главный бригадир тестировщиков. Его работа — чтобы тесты шли ровно и чётко, без проблем. Разумеется, очень полезно, если он умеет непосредственно тестировать.
Тестировщик — это тот, кто тестирует продукт: проходит его ручками или пишет автоматические тесты; описывает баги; общается с разработчиком по поводу этих багов; заново тестирует исправленное.
Основные задачи тестирования
Еще несколько терминов, которые связаны с упомянутыми двумя задачами, которыми занимается тестировщик, это стимулы, реакции и оракул.
- Стимулы – это данные, которые подаются на вход программе.
- Реакции — это то, что получается на выходе.
- Оракул — это способ проверки наблюдаемого результата, совпадает он с некоторыми ожиданиями или не совпадает.
Программа представляет собой механизм по переработке информации. На вход поступает информация в каком-то одном виде, на выходе информация в некотором другом виде. При этом входов и выходов у программы может быть много, они могут быть разными, то есть у программы может быть несколько разных интерфейсов, и эти интерфейсы могут иметь разные виды:
- Пользовательский интерфейс (UI)
- Программный интерфейс (API)
- Сетевой протокол
- Файловая система
- Состояние окружения
- События
Наиболее распространенные интерфейсы это
- графический,
- текстовый,
- консольный,
- и речевой.
Через пользовательский интерфейс компьютер взаимодействует с человеком, с пользователем.
Через программный интерфейс программы взаимодействуют друг с другом (человек тут не нужен).
Ну, и можно выделить такие еще разновидности как сетевой протокол, чаще всего тоже для взаимодействия программ друг с другом, но через сеть, а не непосредственно, как это происходит через программный интерфейс.
Это файловая система, программы могут писать данные на диск и читать данные с диска.
Это состояние окружения, которое могут программы модифицировать и, соответственно, тоже читать.
Это события, в частности, таймер. То есть некоторые механизмы отслеживания времени.
Используя все эти интерфейсы, тестировщик каким-то образом создает искусственные ситуации, и проверяет в этих ситуациях как программа себя ведет. Вот это и есть тестирование.
Тестирование vs. обеспечение качества
Так в чем же различие между этими понятиями и почему тестировщиков часто называют специалистами в сфере QA?
Обеспечение качества, в сравнении с тестированием, является более широким понятием. QA помогает оценить правильность протекания технологических процессов на всех этапах разработки ПО для обеспечения его высокого качества.
Кроме тестирования, QA также включает в себя контроль качества, который отвечает за соблюдение предъявляемых к системе требований. Если представить все три термина в виде иерархии, то тестирование окажется частью QC, а QC – частью QA.
Таким образом, тестирование заключается в большей степени в проверке работоспособности программного продукта и поиске дефектов, в то время как для QA важно также обеспечить соблюдение стандартов и предотвратить появление ошибок и багов в ПО. Обобщим:
Обобщим:
- Тестировщик работает с продуктом как с результатом (т. е. он предполагает, что именно эта версия ПО попадёт в руки конечного пользователя).
- QA-инженер работает с продуктом, который находится в процессе создания (т. е. у ПО ещё нет конечной версии).
Зачастую профессии тестировщика ПО и QA-инженера воспринимаются тождественно, однако в выполняемых специалистами задачах существует ряд отличий.
Синонимы термина «тестирование»
С точки зрения того, что тестирование — это предоставление отрицательной обратной связи, всемирно известная аббревиатура QA (англ. Quality Assurance — Обеспечение качества).
«Контроль качества» — Quality Control, можно считать в широком смысле синонимом для термина «тестирование», потому что контроль качества это и есть предоставление обратной связи в самых разных ее разновидностях, на самых разных этапах программного проекта.
Итак,
тестирование — это
- проверка соответствия программы требованиям,
- осуществляемая путем наблюдения за ее работой
- в специальных, искусственно созданных ситуациях, выбранных определенным образом.
Отсюда и далее будем считать это рабочим определением «тестирования».
Общая схема тестирования примерно следующая:
- Тестировщик на входе получает программу и/или требования.
- Он с ними что-то делает, наблюдает за работой программы в определенных, искуственно созданных им ситуациях.
- На выходе он получает информацию о соответствиях и несоответствиях.
- Далее эта информация используется для того, чтобы улучшить уже существующую программу. Либо для того, чтобы изменить требования к еще только разрабатываемой программе.
Это весьма близко к определению, данному в SWEBOK, хотя есть несколько отличий. Например, в нашем определении нет слова «тест».
Определение тестирования по SWEBOK
звучит следующим образом:
Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранных определенных образом.
А мы с вами говорили о некоторых специальных искусственно созданных ситуациях, выбранных определенным образом. Вот эти специальные, искусственно созданные ситуации, и есть ТЕСТЫ. Чуть позже мы это сформулируем еще более точно в виде определения термина «тест», а пока пойдем дальше.
Testing and Debugging
Testing − It involves identifying bug/error/defect in a software without correcting it. Normally professionals with a quality assurance background are involved in bugs identification. Testing is performed in the testing phase.
Debugging − It involves identifying, isolating, and fixing the problems/bugs. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is a part of White Box Testing or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.
Previous Page
Print Page
Next Page
QA ≠ QC: как их различить
QC: кто эти люди, какие у них задачи, какие у них ограничения
Кто эти люди? Люди, которых называют тестировщиками, тождественны контролю качества QC. По логике вещей они на последнем этапе разработки проверяют качество продукта (любым видом и типом тестирования — ручным, автоматизированным, нагрузочным, тестированием безопасности и т.д.). Какая у них задача? Их задача — провести валидацию продукта и предоставить информацию бизнесу и разработчикам о соответствии продукта заявленным требованиям. Какие у них ограничения? Какие могут быть недостатки, если у вас все сотрудники проверяют продукт на соответствие:
- До взятия фичи в проверку такие сотрудники не влияют на процесс обеспечения качества и разработки, хотя их участие могло бы предотвратить некоторое количество багов и тем самым сократить затраты на тестирование.
- Зачастую такие сотрудники не могут давать рекомендации, как сделать продукт лучше. Потому что поезд ушёл и уже поздно. Им остаётся лишь сверять соответствие продукта требованиям. FYI: хотя на самом деле тестировщикам есть что сказать по поводу улучшений, которые необходимо сделать.
- Эти ребята чаще всего не видят полной картины процесса, поэтому искренне не понимают, почему разработчики дают им код, в котором приложение крашится при попытке запуститься. И, согласно п.1, ничего не могут с этим сделать. Даже если хотят.
- Они не могут взять на себя полную ответственность за качество продукта.
- Очень часто между тестировщиками и разработчиками возникают конфликты. Так бывает, когда разработчики считают свой код самым лучшим и работающим, а в тестировщиках видят лишь попытки его сломать и показать, что код не работает. Такое положение дел порождает всем известные мемы «Это не баг, а фича».
QA: кто эти люди, какие у них задачи, какие у них ограничения
Кто эти люди? Инженеры по обеспечению качества (QA) — это люди, которые помогают командам разработки выпускать качественный продукт, как можно быстрее за как можно меньшие деньги. Ведь все мы знаем, что чем раньше найден баг, тем дешевле его пофиксить. Лучше всего фиксить баги ещё на уровне идеи.
QA-инженеры участвуют на самых ранних этапах создания продукта/фичи. Если бы они могли залезать в головы к PO, чтобы сказать им о недостаточности приемочных критериев или сценариев использования фичи, — они бы делали это. Какая у них задача? Задача QA-инженера — не допустить несоответствия продукта предъявляемым требованиям. QA-инженер замеряет качество продукта, знает его актуальное состояние и что нужно сделать, чтобы его поднять не только на этапе тестирования, но и на этапе разработки, дизайна или составления требований.Какие у них ограничения? Сложно оценить качество работы QA-инженера, потому что если он хорошо выполняет свою работу, то до этапа тестирования будет доходить минимальное количество багов не влияющих на функциональность и запуск продукта в прод.
В отличие от QA, работу QC оценить можно, особенно если отталкиваться от самого простого и оценивать эффективность по количеству багов — сколько багов нашёл и сколько багов пропустил на прод.
Официальный тест на IQ
Международный IQ Test — это простая и элегантная система оценки, которую можно использовать
в режиме онлайн. Ее легко понять, весело принять и трудно освоить. Это связано с тем,
то что перед вами
настоящий тест,
который призван бросить вам вызов и дать точный результат.
Ответы на все вопросы позволят вам быстро определить текущий уровень вашего IQ. Ограничение по
времени составляет всего 24 минуты, чтобы ответить на все 35 вопросов. Вы заметите, что некоторые
вопросы будут легкими, а другие – почти невозможными, при этом, все полностью зависит от того,
как вы ответите на каждый вопрос.
Средний уровень интеллекта составляет 100 баллов. К тому же, вы сможете узнать, насколько хорошо
справились сразу же, как только закончите последний вопрос. Как бесплатная, так и платная версии
предлагают один и тот же тип вопросов. Основные различия кроются в результатах, которые вы сможете получить.
Бесплатная версия
Вы получите примерную оценку вашего интеллекта (средний уровень, низкий или высокий уровень интеллекта),
чтобы вы понимали примерное положение вашего интеллекта на общей шкале.
Платная версия
Заплатив всего $6.99 (USD), вы получите отчет в формате PDF, который включает в себя точный результат,
а также правильные ответы вместе с логическими объяснениями того, как решать головоломки.
Кроме того, вы сможете сравнить свой результат с данными жителей нашей планеты.
Как дальше жить?
Большой штат тестировщиков не сможет существенно улучшить качество продукта. Но сможет улучшить саму проверку качества. Если же вы, коллеги-тестировщики, хотите поднимать именно качество на новый уровень, задумайтесь о переходе в QA-инженеры.
Только не ждите, когда вас позовут на встречу, где обсуждают фичи с разработчиками или дизайнерами, придите на неё сами. Высказывайте своё мнение касательно любого аспекта качества продукта. Не позволяйте сложившимся правилам, должностным инструкциям и прочей фигне мешать вам делать продукт ещё более качественным, чем сейчас.
Я знаю, что большинству из вас не всё равно на то, что вы тестируете. И вы искренне хотите поставлять хороший продукт, которым приятно будет пользоваться.
View the discussion thread.
blog comments powered by DISQUS
F.A.Q QA — обеспечение качеством
Что такое обеспечение качества программного обеспечения?
Обеспечение качества программного обеспечения определяется действиями, которые контролируют, измеряют, оценивают и проверяют процессы, используемые для создания программного обеспечения.
Каждой программе требуется тестер?
Несомненно. Тестирование на качество имеет первостепенное значение для успеха любого программного продукта. Без надлежащего контроля качества шансы на успех значительно уменьшаются.
Что такое план тестирования?
План тестирования — это документ, в котором подробно описывается подход к тестированию программного продукта. Планы тестирования предоставляют необходимые рекомендации для любого тестировщика или группы тестирования и гарантируют, что каждый аспект функциональности программного обеспечения протестирован.
Как мне может помочь юзабилити-тестирование?
Юзабилити-тестирование измеряет простоту использования программного приложения. Как таковая, она является неотъемлемой частью качества программного обеспечения. Даже самый интересный и продаваемый программный продукт пострадает в популярности, если он покажет громоздкое удобство использования.
Почему в программном обеспечении есть ошибки?
Программное обеспечение создано людьми, а люди совершают ошибки. Кроме того, даже простые программные приложения обычно включают значительное количество рабочих частей или блоков, каждая из которых состоит из множества строк сложного компьютерного кода. Отдельные единицы не всегда хорошо интегрируются, и в результате создаются ошибки.
Как тестируются сайты?
Веб-сайты тестируются профессиональными тестировщиками программного обеспечения, которые оценивают функциональность и системную совместимость веб-сайта и сравнивают то, что они видят, с тем, что они ожидают увидеть. Сложные веб-сайты могут быть протестированы с использованием средств автоматизации, которые уменьшают будущие усилия по ручному тестированию.
Что такое качество программного обеспечения?
Качество программного обеспечения — это соответствие программного обеспечения его требованиям.
Что такое регрессионное тестирование?
Регрессионное тестирование — это цикл обеспечения качества, при котором ошибки, обнаруженные во время предыдущего обзора обеспечения качества, «регрессируются», чтобы гарантировать, что
- а) они были исправлены разработчиками,
- b) в результате исправлений не было создано никаких новых ошибок.
Кто такой бета-тестер?
Бета-тестер — это тот, кто тестирует бета-версию программного приложения. Они могут быть профессиональными тестировщиками или членами целевой аудитории программного обеспечения.
Похожие:
Техническое задание для проведения открытого запроса предложений…Предмет закупки и предмет договора: оказание услуг по техническому обслуживанию и ремонту автомобилей марки: Хундай Соната -9 штук;… | Техническое задание на выполнение работ (оказание услуг). Предмет задания и договораПредмет задания и договора: право заключения договора на аттестацию объекта информатизации требованиям по безопасности информации… | ||
Окпд2: 29. 10. 41. 113; оквэд2: 29. 10. 4 Предмет договораПредмет договора: Поставка автомобиля – фургона промтоварного на шасси камаз – 65207-1001-87 | Техническое задание. Лот №1 Предмет закупки На право заключения договора…Начальная (максимальная) цена договора: 2 517 160,00 (два миллиона пятьсот семнадцать тысяч сто шестьдесят) рублей 00 копеек с учетом… | ||
Техническое задание предмет конкурса, начальн ые значения критериев….Начальная (максимальная) цена договора: 33 917 328,23 (вкл. Ндс 18%) в соответствии с Приложением №3 к Техническому заданию | Техническое задание предмет запроса котировок, начальная (максимальная)…Код по Общероссийскому классификатору продукции по видам экономической деятельности, соответствующие предмету закупки | ||
Инструкция (общие сведения)Все требования закупочной документации являются обязательными. При заключении договора в него могут быть внесены дополнительные условия,… | О проведении запроса ценВсе требования закупочной документации являются обязательными. При заключении договора в него могут быть внесены дополнительные условия,… | ||
Техническое задание(Приложение №1)Все требования закупочной документации являются обязательными. При заключении договора в него могут быть внесены дополнительные условия,… | Техническое задание (Приложение №1) Форму ценового предложения потенциального…Все требования закупочной документации являются обязательными. При заключении договора в него могут быть внесены дополнительные условия,… | ||
Техническое задание (Приложение №1) Форму ценового предложения потенциального…Все требования закупочной документации являются обязательными. При заключении договора в него могут быть внесены дополнительные условия,… | Техническое задание предмет запроса котировок, начальная (максимальная)…Начальная (максимальная) цена договора: 2 188 364,82 рублей (без ндс). Ндс (18%) – 393 905,67 рублей. Итого с Ндс (18%) – 2 582 270,49… | ||
Проект договора (существенные условия договора) Предмет договораОриентировочная стоимость оказываемых услуг составляет: 8 033 256,00 руб. (восемь миллионов тридцать три тысячи двести пятьдесят… | О проведении запроса котировок в электронной формеПредмет договора, количество поставляемых товаров, начальная (максимальная) цена договора | ||
Техническое задание. Предмет закупки На право заключения договора…… | Техническое задание (Приложение №1, представлено отдельным файлом)…Все требования закупочной документации являются обязательными. При заключении договора в него могут быть внесены дополнительные условия,… |
Инструкция, руководство по применению
Синонимы термина «тестирование»
С точки зрения того, что тестирование — это предоставление отрицательной обратной связи, всемирно известная аббревиатура QA (англ. Quality Assurance — Обеспечение качества).
«Контроль качества» — Quality Control, можно считать в широком смысле синонимом для термина «тестирование», потому что контроль качества это и есть предоставление обратной связи в самых разных ее разновидностях, на самых разных этапах программного проекта.
Итак,
тестирование — это
- проверка соответствия программы требованиям,
- осуществляемая путем наблюдения за ее работой
- в специальных, искусственно созданных ситуациях, выбранных определенным образом.
Отсюда и далее будем считать это рабочим определением «тестирования».
Общая схема тестирования примерно следующая:
- Тестировщик на входе получает программу и/или требования.
- Он с ними что-то делает, наблюдает за работой программы в определенных, искуственно созданных им ситуациях.
- На выходе он получает информацию о соответствиях и несоответствиях.
- Далее эта информация используется для того, чтобы улучшить уже существующую программу. Либо для того, чтобы изменить требования к еще только разрабатываемой программе.
Это весьма близко к определению, данному в SWEBOK, хотя есть несколько отличий. Например, в нашем определении нет слова «тест».
Определение тестирования по SWEBOK
звучит следующим образом:
Тестирование – это проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранных определенных образом.
А мы с вами говорили о некоторых специальных искусственно созданных ситуациях, выбранных определенным образом. Вот эти специальные, искусственно созданные ситуации, и есть ТЕСТЫ. Чуть позже мы это сформулируем еще более точно в виде определения термина «тест», а пока пойдем дальше.
Тестирование методом черного и белого ящика
Наконец, третья широко распространенная классификация — разделение тестирования на два больших класса: тестирование методом черного ящика и тестирование методом белого ящика. Эта классификация связана с таким понятием как «полнота тестирования». Поэтому сначала мы поговорим именно о ней.
Полнота тестирования
Когда мы говорим о полноте тестирования, то это понятие достаточно близко к понятию полноты в музейном смысле или в смысле коллекционирования. Мы пытаемся собрать некоторую полную коллекцию тестов, но это не означает, что мы собираемся собрать все-все тесты. Мы хотим собрать только некоторых характерных типовых представителей.
Например, если мы собираем полную коллекцию бабочек, то мы хотим, чтобы туда попали по одной бабочке каждого вида. Нам не нужно много бабочек одного и того же вида. И, конечно же, у нас нет цели переловить всех бабочек, которые живут на земле.
Когда мы собираем полное собрание сочинений, то у нас нет цели скупить все книги, полностью весь тираж, нам нужно чтобы в нашу коллекцию попало по одной книжке каждого вида.
И вот когда мы собираем с вами эту коллекцию бабочек, мы можем, конечно же, ориентироваться только на раскраску крыльев
При этом мы можем не принимать во внимание внутреннее устройство бабочек. И может так оказаться, что у нас есть два разных вида бабочек, которые выглядят совершенно одинаково, но друг с другом не скрещиваются (то есть, с биологической точки зрения, представляют собой два разных вида)
И тогда мы должны были бы их тоже включить в коллекцию, мы же пытаемся собрать все виды бабочек. Но одного рисунка нам недостаточно. Нам нужно еще принимать во внимание внутреннее устройство.
И вот это как раз и есть разница между тестированием методом черного ящика и тестированием методом белого ящика.
При тестировании методом черного ящика мы не видим, что внутри ящика, мы не принимаем во внимание внутреннее устройство программы.
При тестировании методом белого ящика, или правильнее говорить, наверное, «прозрачного ящика», мы смотрим, как программа устроена внутри, и эту информацию используем при выполнении и особенно при проектировании тестов.
Когда мы выполняем тестирование методом черного ящика, мы пытаемся полностью покрыть все входные данные или их комбинации, или даже последовательности комбинаций входных данных. Но этого может оказаться недостаточно для того, чтобы покрыть все строки кода программы, все ветви в коде программы или все пути в коде программы.
То есть, при тестировании методом белого ящика нам, как правило, нужно просто больше тестов, потому что у нас есть больше информации о том, какие разные варианты поведения программы могут быть. Мы принимаем во внимание и ее внешнее поведение, и ее внутреннее устройство. Коллекция тестов увеличивается.
С другой стороны, если мы снова посмотрим на наше приложение матрешку, мы можем увидеть, что это приложение состоит из каких-то частей, на картинке они отмечены голубеньким цветом, которые мы разработали сами, свои собственные библиотеки, свои собственные пакеты хранимых процедур в базе данных, а также в него включаются какие-то библиотеки, которые разработаны не нами.
Кроме того, наше приложение может взаимодействовать с какими-то веб-сервисами или другими приложениями. Может быть, даже с приложениями, которые работают совсем в другой организации. То есть мы к ним имеем очень ограниченный доступ. Наши приложения взаимодействуют с браузером, с операционной системой, то есть наша возможность контролировать, что там внутри очень сильно ограничена. Мы можем контролировать только программный код своих собственных библиотек, и можем стремиться достичь его покрытия тестами.
С такой точки зрения получается, что наш ящик, даже если мы к этому очень сильно будем стремиться, будет только чуть-чуть, слегка прозрачным. Где-то мы можем получить исходный код, где-то мы не можем получить исходный код, где-то мы можем вместо исходного кода получить достаточно подробные спецификации, где-то даже таких спецификаций нет.
История
2017: В Санкт-Петербурге открыт центр тестирования A1QA
Офис A1QA в Санкт-Петербурге расположился по адресу Заневский проспект, 30 на территории бизнес-центра «Ростра». В пешеходной доступности находятся станции метро «Новочеркасская» и «Ладожская».
В питерском офисе сформированы отделы по функциональному тестированию и автоматизации тестирования ПО. Работу молодых специалистов в новом подразделении курируют опытные QA-инженеры и менеджеры минского офиса A1QA. Команда уже насчитывает около 20 специалистов, и активный набор сотрудников продолжается.
Первый российский центр тестирования A1QA открылся прошлой осенью в Рязани.
На ноябрь 2017 года головной офис компании расположен в Лейквуде, штат Колорадо, а главный центр тестирования – в Минске.
2014
На май 2014 года спектр компетенции A1QA объединяет все виды тестирования программного обеспечения, включая автоматизацию и безопасность (PCI DSS, OWASP); приемочное тестирование корпоративных ИС; QA-консалтинг и постановку смежных процессов. Основное направление — независимое тестирование ПО высокой степени сложности для телекоммуникационной и финансовой отраслей, промышленного производства, сферы услуг, электронной коммерции и т.д.
2003: Минск
Первый офис A1QA появился в 2003 году в Минске, с течением времени к нему добавились филиалы в других городах Беларуси, Голландии, Великобритании, России и США.
Основные функции
Автоматизация процедур контроля качества в соответствии с приказами, ОСТ и ГОСТ
- •Контроль качества количественных методов исследований и иммуноферментного анализа
- •Контроль качества по одному или нескольким контрольным материалам, по дубликатам и ежедневным средним
- •Расчет среднего стандартного отклонения, коэффициента вариации
- •Оценка сходимости, воспроизводимости и правильности результатов измерений
- •Построение контрольных карт и графиков кумулятивных сумм (cusum)
Материалы
- •Настраиваемый справочник аналитов и контрольных материалов
- •Настройка уровня материалов
- •Отслеживание срока годности
Что такое тест
- Это специальная, искусственно созданная ситуация, выбранная определенным образом,
- и описание того, какие наблюдения за работой программы нужно сделать
- для проверки ее соответствия некоторому требованию.
Ну и таким образом мы можем заключить, что тестировщик делает в процессе тестирования две вещи.
1.Во-первых, он управляет выполнением программы и создает эти самые искусственные ситуации, в которых мы собираемся проверять поведение программы.
2.И, во-вторых, он наблюдает за поведением программы и сравнивает то, что он видит с тем, что ожидается.
Разумеется, иногда мы отклоняемся от этого определения, например, при тестировании удобства использования тестировщик может наблюдать не только за поведением программы, но и за поведением специального человека, испытуемого, которому дается некоторое задание. Он выполняет задание, а мы смотрим, справляется он с ним или не справляется, за какое время он справляется.
Если тестировщик автоматизирует тесты, то он не сам наблюдает за поведением программы — он делегирует эту задачу специальному инструменту или специальной программе, которую он сам написал. Именно она наблюдает, она сравнивает наблюдаемое поведение с ожидаемым, а тестировщику выдает только некоторый конечный результат — совпадает ли наблюдаемое поведение с ожидаемым, или не совпадает.
Что нужно, чтобы стать хорошим QA-инженером
Для начала стоит понять, ваше ли это. Я бы выделил несколько основных особенностей работы и черт характера, чтобы заниматься тестированием.
Техническая эрудиция
«Technical savvy», как иногда пишут в вакансиях, и желание разбираться в технологиях. Вы должны интересоваться тем, как что работает, как что устроено внутри. Это понимание сослужит хорошую службу в будущем и обычно идёт в связке с необходимым хорошему тестировщику любопытством.
Вы когда-нибудь ставили и настраивали Linux — для себя, чисто из интереса? Пытались разобраться, как работает блокчейн? Делали друзьям сайт на WordPress? Если нет, попробуйте и проследите за своей реакцией. Интересно ли, подстегивают ли сложности найти решение, покопаться в Google и на форумах? Когда конечный результат не тот, появляется ли желание докопаться и сделать, чтобы всё начало работать как надо? Если вы ответили «да», скорее всего, тестирование вам подходит.
Disclaimer Внимательный и искушённый читатель скажет, что я сейчас описал админа/девопса, но хороший тестировщик, на мой взгляд, обязан иметь желание и возможность и разбираться во внутренностях продукта, и уметь настроить (перестроить, почистить, твикнуть, заморозить, залить данными) тестовое окружение.
Ориентированность на пользователя и бизнес
Есть хорошая шутка про тестировщика, который заходит в бар, и лучшее продолжение для клиента.
Так вот, первое — про бездумный перфекционизм, второе — про то, чтобы всегда держать в голове образ пользователя, понимать, какие задачи он будет решать, в каких условиях, где ему будет удобно, а где — не очень, какими нестандартными методами он может решать свои задачи, как наше приложение будет встраиваться в общую экосистему и рутину пользователя.
В вакансиях часто пишут «ориентированность на детали, перфекционизм». Они нужны, но только если правильно сфокусированы.
Умение структурировано думать и писать
Проведите мысленный эксперимент: представьте, что вам нужно описать, как тестировать центральный замок автомобиля. Вы начнёте писать, например, «открыть, закрыть», но есть же разные состояния: «открыть уже открытое», «закрыть уже закрытое», — или разные точки воздействия: можно открывать брелком, ключом, кнопками изнутри
А сигнализацию надо тестировать? А автоблокировку дверей на скорости? В тестировании существует ряд методик и техник, помогающих правильно разбивать тесты на группы, выстраивать правильную иерархию, проверять достаточность тестовых сценариев, но даже с ними важно уметь думать структурно
Умение работать с большими объёмами данных и быстро учиться
В работе вам скорее всего понадобится навык работать с большими и плохо структурированными объёмами информациями (также известными как «спецификация», «техническое задание», «корпоративная база знаний»), быстро понимать как работает сложная (и не всегда логично написанная) система и быстро получать базовые знания в абсолютно разных областях. Если ваш проект про управление финансовыми портфелями — придётся разобраться в финансах, если про управление складом — в логистике и т. д. Хороший способ проверить себя — взять и успешно пройти какой-нибудь курс на coursera.com по незнакомому и фундаментальному предмету, желательно на английском.
Умение говорить с людьми на неприятные темы
Очень много и очень хорошо говорить.
Middle Java Developer
L2U, Москва, Новосибирск, можно удалённо
tproger.ru
Вакансии на tproger.ru
Существует распространённый стереотип, что тестировщики и программисты недолюбливают друг друга как копы и федералы из американских фильмов. Это неправда.
Audit and Inspection
Audit − It is a systematic process to determine how the actual testing process is conducted within an organization or a team. Generally, it is an independent examination of processes involved during the testing of a software. As per IEEE, it is a review of documented processes that organizations implement and follow. Types of audit include Legal Compliance Audit, Internal Audit, and System Audit.
Inspection − It is a formal technique that involves formal or informal technical reviews of any artifact by identifying any error or gap. As per IEEE94, inspection is a formal evaluation technique in which software requirements, designs, or codes are examined in detail by a person or a group other than the author to detect faults, violations of development standards, and other problems.
Formal inspection meetings may include the following processes: Planning, Overview Preparation, Inspection Meeting, Rework, and Follow-up.