Введение
Ни одну вещь в мире нельзя сделать без ошибок, и программы не исключение. Ошибки
встречаются повсеместно, и для того, чтобы убедиться, что продукт работает хорошо, то нужно
проверить. Это касается и шариковой ручки, и мобильного приложения. Пока в работе остается
человеческий фактор, профессия “Тестировщик” жизненно необходима.
Быть тестировщиком - это, прежде всего, быть внимательным пользователем, который
замечает недостатки продукта, указывает на них, а также добивается того, чтобы их исправили.
Так что это по силам каждому, в ком есть внимательность, здоровая доля перфекционизма,
способность отстаивать свою позицию, а также возможность посмотреть на ситуацию с разных
сторон. Если вы узнаете в этом описании себя, и хотите помогать создавать крутые продукты,
то, очевидно, что эта профессия для вас.
3. Раннее тестирование
4. Скопление дефектов
Разные модули системы могут содержать разное количество дефектов – то есть, плотность
скопления дефектов в разных элементах программы может отличаться. Усилия по
тестированию должны распределяться пропорционально фактической плотности дефектов. В
основном, большую часть критических дефектов находят в ограниченном количестве модулей.
Это проявление принципа Парето: 80% проблем содержатся в 20% модулей.
5. Парадокс пестицида
Прогоняя одни и те же тесты вновь и вновь, Вы столкнетесь с тем, что они находят все
меньше новых ошибок. Поскольку система эволюционирует, многие из ранее найденных
дефектов исправляют и старые тест-кейсы больше не срабатывают.
Чтобы преодолеть этот парадокс, необходимо периодически вносить изменения в
используемые наборы тестов, рецензировать и корректировать их с тем, чтобы они отвечали
новому состоянию системы и позволяли находить как можно большее количество дефектов.
Тот факт, что тестирование не обнаружило дефектов, еще не значит, что программа готова к
релизу. Нахождение и исправление дефектов будут не важны, если система окажется
неудобной в использовании, и не будет удовлетворять ожиданиям и потребностям
пользователя.
1.5. ISTQB
2. Модели разработки ПО
У любого программного обеспечения есть жизненный цикл — этапы, через которые оно
проходит с начала создания до конца разработки и внедрения. Чаще всего это подготовка,
проектирование, создание и поддержка. Этапы могут называться по-разному и дробиться на
более мелкие стадии.
Модель разработки программного обеспечения описывает, какие стадии жизненного цикла оно
проходит и что происходит на каждой из них.
Преимущества:
● Разработку просто контролировать. Заказчик всегда знает, чем сейчас заняты
программисты, может управлять сроками и стоимостью.
● Стоимость проекта определяется на начальном этапе. Все шаги запланированы уже
на этапе согласования договора, ПО пишется непрерывно «от и до».
● Не нужно нанимать тестировщиков с серьёзной технической подготовкой.
Тестировщики смогут опираться на подробную техническую документацию.
Недостатки:
● Тестирование начинается на последних этапах разработки. Если в требованиях к
продукту была допущена ошибка, то исправить её будет стоить дорого. Тестировщики
обнаружат её, когда разработчик уже написал код, а технические писатели —
документацию.
● Заказчик видит готовый продукт в конце разработки и только тогда может дать
обратную связь. Велика вероятность, что результат его не устроит.
● Разработчики пишут много технической документации, что задерживает работы.
Чем обширнее документация у проекта, тем больше изменений нужно вносить и
дольше их согласовывать.
V-образная модель
Это усовершенствованная каскадная модель, в которой заказчик с командой программистов
одновременно составляют требования к системе и описывают, как будут тестировать её на
каждом этапе. История этой модели начинается в 1980-х.
Преимущества:
● Количество ошибок в архитектуре ПО сводится к минимуму.
Недостатки:
● Если при разработке архитектуры была допущена ошибка, то вернуться и исправить её
будет стоить дорого.
Incremental Model
Это модель разработки программного обеспечения, при котором продукт разрабатывается,
внедряется и тестируется поэтапно, пока он не будет завершен. Это включает в себя как
разработку, так и сопровождение. Продукт определяется как законченный, когда он
удовлетворяет всем его требованиям.
Преимущества:
● Не нужно вкладывать много денег на начальном этапе. Заказчик оплачивает создание
основных функций, получает продукт, «выкатывает» его на рынок — и по итогам
обратной связи решает, продолжать ли разработку.
● Можно быстро получить фидбэк от пользователей и оперативно обновить
техническое задание. Так снижается риск создать продукт, который никому не нужен.
● Ошибка обходится дешевле. Если при разработке архитектуры была допущена ошибка,
то исправить её будет стоить не так дорого, как в «водопаде» или V-образной модели.
Недостатки:
● Каждая команда программистов разрабатывает свою функциональность и может
реализовать интерфейс продукта по-своему. Чтобы этого не произошло, важно на
этапе обсуждения техзадания объяснить, каким он будет, чтобы у всех участников
проекта сложилось единое понимание.
● Разработчики будут оттягивать доработку основной функциональности и «пилить
мелочёвку». Чтобы этого не случилось, менеджер проекта должен контролировать, чем
занимается каждая команда.
A responsibility
In case of missed deadlines, errors in the code, non-fulfillment of points of the TOR, do not be
afraid to take responsibility. Admit your guilt, and you will increase the level of trust of others and, no
matter how paradoxical it may sound, you will get out of the situation as a “white sheep”.
Do not go to extremes and take on other people's problems. First, it looks ridiculous, and secondly,
it is in your best interest for your colleagues to follow suit and also know how to admit their mistakes.
Your tasks
Do not try to gain the trust of others by constantly providing help and small talk. First of all, show
yourself as a cool specialist in solving your own problems. But there is one important point: if a
colleague came up to you for advice, take a break for at least 1 minute to listen, give a short answer,
promise to come back later. This simple courtesy will earn you respect and financial bonuses.
Hierarchy
Any IT team has a clear division into strong and weak programmers. As bad as it sounds, your first
priority is to gain the authority of the leading group. They are the backbone of the entire team, it is
they who will help you with solving problems and your career. There is only one way to gain their
respect - hard and productive work. Those at the bottom of the hierarchy should not be ignored either.
Try to help them grow professionally and support them after public criticism. It will benefit everyone.