Тестировщик ПО - что это за профессия такая? В чем заключается ее суть? И насколько она актуальна в современном мире? Все эти вопросы вполне уместны, так как сегодня профессии ИТ-сферы являются одними из самых высокооплачиваемых на рынке труда. Не говоря уже о том, что освоение подобных специальностей обеспечивает человека стабильным будущим.
Сегодня большинство электронных устройств работает корректно только благодаря встроенным в них программам. Их написанием занимаются программисты всех мастей и уровня подготовки. И поверьте, их количество действительно захватывает дух. Так, ежедневно создается не одна тысяча программ: начиная с простых калькуляторов и заканчивая искусственным интеллектом для высокотехнологических машин.
И, как в любом производстве, продукт нельзя выпустить в широкие массы, заранее не проверив его на дефекты. Так вот, тестировщик ПО (программного обеспечения) - это человек, который занимается полевым испытанием программ. При этом он может быть как штатным сотрудником компании, так работающим на себя фрилансером.
При создании программ используются различные языки программирования. Это может быть C++, JavaScript, Python и так далее. После того как продукт будет завершен, его первым делом проверяет сам автор. Но, так как он является творцом программы, он не всегда может объективно оценить качество полученного товара. Не говоря уже о том, что у него может попросту не хватить времени для модуляции всех возможных способов ее применения.
И как раз на этом этапе в игру входит тестировщик ПО. Именно он берет на себя все операции, связанные с проверкой нового приложения. При этом, в отличие от программиста, тестер не имеет доступа к программному коду. То есть, он испытывает приложение как простой юзер и лишь изредка наделяется особыми привилегиями.
Тестировщик ПО - это профессия, которая требует основательного подхода к делу. Здесь нельзя работать в полсилы, так как это непременно скажется на репутации специалиста. Что же касается самих обязанностей, то они состоят из следующих пунктов:
Следует заметить, что довольно часто тестировщиков объединяют в небольшие группы. Прежде всего, это нужно для того, чтобы ускорить проверку или сделать ее более качественной. В этом случае работу могут равномерно распределить между всеми специалистами. Например, одни будут заняты интерфейсом приложения, вторые будут искать ошибки в вычислениях, а третьи - моделировать наиболее опасные для программы сценарии.
Тестировщиком ПО может стать любой, кто хорошо «дружит» с точными науками. В идеале, лучше иметь образование программиста или хотя бы разбираться в основах написания приложений. Исходя из этого, данная специальность хорошо подойдет тем, кто учится на ИТ-специальностях. Во-первых, это поможет набраться опыта и посмотреть на труды других людей, а во-вторых, принесет дополнительный доход, что также неплохо.
Однако, стать тестировщиком ПО можно и без специализированного образования. Так сказать, обучиться всему самостоятельно. Благо, сегодня это не проблема, так как в сети есть множество познавательных курсов, способных наглядно продемонстрировать все тонкости данной работы.
К тому же можно испытать свою судьбу и попытаться попасть на подготовленные семинары, которые проводятся во многих организациях, производящих ПО. Например, компания GlobalLogic периодически проводит обучающие курсы специально для тестировщиков ПО. Более того, окончив их, человек может стать одним из ее сотрудников, после чего начать работать в ее штате или удаленно, в качестве фрилансера.
Тестировщик ПО без опыта может найти себе работу, а вот специалист, не знающий основ - никогда. Однако, какие они, азы профессии? Каким же багажом знаний должен обладать каждый уважающий себя тестер?
Помимо этого, тестировщик должен хорошо владеть английским языком, так как он является доминантным в мире программирования. Более того, со временем придется довести его уровень до идеального, а также изучить все тонкости технического стиля.
Пускай тестировщик ПО без опыта работы - это вполне привычное явление, все же на приличный проект такого специалиста вряд ли возьмут. Поэтому, изучив основы профессии, следует заняться наработкой практических навыков и положительных отзывов.
Для этого необходимо отправиться на один из сайтов, предоставляющих работу фрилансерам. Ежедневно там выкладывается не один десяток предложений, связанных с проверкой работоспособности приложений. При этом есть множество заказов для новичков, которые не требуют опыта работы или особых навыков в программировании.
Таким образом, за месяц-другой можно неплохо продвинуться в своем деле и заработать кое-какую репутацию. Единственным минусом является то, что подобные заказы зачастую плохо оплачиваются. Но с этим придется смириться, так как в будущем подобные лишения смогут принести куда более прибыльные заказы, что окупит потраченные усилия с лихвой.
Итак, допустим, вы уже опытный тестировщик ПО: с чего начать поиски перспективной работы? Что же, первым делом стоит просмотреть объявления на онлайн-биржах труда и форумах программистов. Периодически там попадаются хорошие предложения, способные приносить стабильный доход.
Однако, не стоит рассчитывать только на удачу. Если у вас есть и неплохое резюме, то можно подать несколько заявок в ИТ-компании. Руководство любит целеустремленных специалистов, а посему, подобная инициатива может принести свои плоды. Особенно если нацелиться на те компании, которые занимаются производством качественного софта.
Если же с постоянным местом на данном этапе не везет, то можно стать фрилансером. Хорошо проявивший себя тестировщик ПО, удаленно работающий на дому, способен заработать не меньше штатного коллеги. Единственная разница заключается в том, что вместо одного нанимателя у него будет несколько.
Для тех, кто любит и современные технологии, эта профессия покажется весьма увлекательной и интересной. Ведь каждый день придется сталкиваться с новым продуктом, который вскоре сможет в корне изменить мир информационных технологий. К тому же работа считается весьма престижной и исключает любые физические нагрузки.
Также многих радует тот факт, что данная профессия одинаково хорошо подходит как мужчинам, так и женщинам. Более того, она может стать для тех, кто из-за проблем со здоровьем не может устроиться на более тяжелую работу.
Однако есть и недостатки. Главным из них является высокая конкуренция, вызванная дефицитом высокооплачиваемых заказов. Также следует обратить внимание на тот момент, что тестировщик ПО очень много времени проводит за компьютером. При этом он не просто сидит за ним, а всецело поглощен происходящим на мониторе. Из-за этого с годами могут возникнуть проблемы со зрением, что крайне неприятно.
Довольно сложно вывести среднеарифметическую зарплату тестировщика ПО. Это связано с тем, что она зависит от того, насколько удачлив специалист. Так, можно взять один заказ на 10 тыс. рублей и сделать его за неделю, а можно получить работу на 20 тыс. рублей и не одолеть ее за целый месяц.
И все же можно с уверенностью сказать, что доход начинающего тестера варьируется в пределах 10-15 тыс. рублей в месяц. Опытный специалист может заработать эти же деньги в два раза быстрее. А штатный сотрудник престижной фирмы и вовсе получает около 40-45 тыс. рублей.
Иногда даже невозможное возможно, главное захотеть . Молодость – это пора, когда сам не знаешь, чего хочешь, но точно знаешь, что если узнаешь, сделаешь все, чтобы этого достичь. Но не стоит ставить здесь конкретные возрастные рамки, ведь самое главное это состояние души, ваше желание узнать что-то новое, а может и вовсе освоить какую-нибудь совершенно новую для вас сферу.
Итак, начинаем исследовать рынок вакансий, все-таки будет лучше, если новая сфера деятельности еще окажется и прибыльной. И как пару лет назад на первых строчках видим: Инженер по тестированию (software test engineer). Скажете – ничего не изменилось. Если судить с точки зрения востребованности, то она только растет, так же стремительно, как развивается и сама сфера IT, а вот требования к специалистам – увы, их стало тоже больше. Если еще пару лет назад на вакансию тестировщика ПО брали всех, у кого горели глаза и кто проявлял интерес к изучению нового, то теперь этого мало. Многое изменилось – изменились технологии, изменился рынок тестирования ПО, совсем другая ситуация с конкуренцией.
Как известно, из любой ситуации есть выход, но вот как же найти сначала вход? Итак, дорогие будущие тестировщики, именно для таких случаев и пишутся пошаговые руководства и инструкции. Статья целиком и полностью посвятит вас во все тонкости сферы тестирования ПО, что безусловно хоть на шаг, но приблизит вас к достижению заветной цели – праву называться тестировщиком ПО . Короткое содержание статьи выглядит так:
Фаза №1: Осознание.
Фаза №2: Как попасть в сферу тестирования ПО?
Фаза №3: Как устроиться тестировщиком на полный рабочий день?
Фаза №1: Осознание:
Это одна из наиважнейших фаз, которую пропускают очень многие. Люди сразу задаются вопросом “Как” и не задумываются “Зачем” им это и “Что” это такое. Если вы спросите себя “Что” такое тестирование ПО и “Зачем” вам это надо, у вас будет возможность понять, действительно вам это надо или нет, стоит ли идти дальше. Принимая решение осознанно, вы уберегаете себя от пустой траты времени на изучение того, что вам неинтересно.
Вопрос “Как” , безусловно, остается самым волнующим, но стоит набраться терпения, с ним мы разберемся немного позже.
Вы решили стать тестировщиком. Здорово! …но почему?
Почему вы хотите строить карьеру в тестировании ПО?
Почему тестирование, а не программирование, графический дизайн, информационные технологии или администрирование баз данных?
Спрашивайте себя до тех пор, пока не поймете, что мотивирует вас двигаться именно в направлении тестирования ПО.
Нет ничего плохого в том, что вы не знаете, почему хотите стать тестировщиком. Ведь у вас попросту нет даже предположений о том, что собой представляет тестирование программного обеспечения, как этот процесс происходит и является ли выбранная сфера хорошим полем для деятельности и карьерного роста.
Чтобы найти ответ, стоит для начала ознакомиться с данным понятием “тестирование ПО” , провести небольшое расследование:
Обратимся для начала к википедии:
Тестирование программного обеспечения - процесс исследования, испытания программного продукта, имеющий две различные цели:
Определение из экзаменационных материалов ISTQB :
Тестирование ПО – это процесс проверки программы или приложения для нахождения в ней ошибок.
Тестирование также проводят для подтверждения того, что ПО, приложение или любой созданный продукт:
И еще одно определение, которое предлагает Джеймс Бач:
Тестирование – это процесс оценивания продукта путем исследования и эксперимента, что в какой-то степени включает в себя: постановку вопроса, исследование, моделирование, наблюдение, заключение и т.д.
Парочку забавных определений:
Все понятия сходятся к тому, что тестирование проводится для проверки новой программы, чтобы в ней все работало как было запланировано, после чего ее смело можно представлять пользователям, или же для нахождения ошибок в работе уже существующей программы. На вас научат, как грамотно строить процесс тестирования. Курсы послужат Вам отправной точкой для старта карьеры тестировщика и дадут вам базу теоретических знаний и практических навыков, с которыми вы смело можете идти на порог к работодателю. К тому же многие компании сейчас требуют успешное окончание курсов, как дополнительное преимущество перед другими кандидатами.
Пусть тестировщиками и не рождаются, но подойдет эта работа не каждому. Другими словами, для ее выполнения понадобятся определенные способности, без которых провести тестирование как надо не получится. Как видно из доклада о состоянии тестирования за 2015 год, требования следующие:
Быть экспертом в программировании или компьютерным гуру, чтобы освоить тестирование, не нужно.
Но базовые знания программирования будут преимуществом , потому что понимание того, как устроен код, дает возможность быстрее найти в программе ошибки.
Также умение программировать будет очень кстати, если вы решили стать инженером по автоматизации тестирования. Эта профессия предполагает написание скриптов для автоматизации процесса тестирования и создание инструментов, которые помогают тестировщикам в работе. Про автоматизацию тестирования вы можете почитать в статье « «.
Говоря простым языком, знание программирования – это скорее плюс, чем обязательно.
Можно не быть профессионалом в программировании или знании технической части, но уметь общаться тестировщик просто обязан.
Безусловно, умение общаться ценится в любой другой сфере, не только в тестировании, но для тестировщика это умение становится основополагающим , так как цель тестирования – исследование системы, нахождение проблем в ее работе и описание этих проблем менеджерам/участникам проекта. Нет смысла в нахождении проблемы, если вы не можете ее даже описать или когда никто не понимает, о чем вы говорите. Из коммуникативных навыков вытекает ряд других немаловажных характеристик, необходимых для работы тестировщиком, разберем два основных:
Когда вы нашли ошибку, вам нужно сообщить о ней отвечающим за это людям. Ваш отчет об ошибках системы крайне важен, так как он не только говорит менеджеру о том, какие риски могут предвещать эти ошибки, чтобы он мог принять правильное решение, но и шаг за шагом описывает проблему для программиста, чтобы он смог понять ее суть, в каком случае она возникает, и правильно ее устранить.
На самом деле на умении задавать правильные вопросы строится работа тестировщика, иначе как ему найти проблему в системе, которую он проверяет. Это особенно актуально, если вы тестируете программу как пользователь или когда у вас нет на руках сопутствующей документации. В такой ситуации тестируемая программа становится для вас котом в мешке.
В такой ситуации остается только использовать программу и спрашивать себя: «Что если нажать эту кнопку? Что если я отредактирую и закрою приложение без сохранения? Что если я сделаю так, а потом так? Для чего это? А это?» и т.д.
Согласно Всемирному докладу по качеству за 2015 год, бюджет сферы контроля и тестирования ПО вырос и достиг 35% всего бюджета сферы IT.
Это говорит о том, что тестирование до сих пор в цене в сфере IT, и большинство организаций все еще закладывают бюджет на его проведение. Так что переживать не стоит, работы хватит всем!
Если вы когда-либо слышали высказывания о том, что тестировать очень легко и для этого не надо знать техническую часть, не верьте.
Нравится вам это или нет, вам надо иметь хороший уровень технических знаний для тестирования ПО. По крайней мере радует то, что совсем не обязательно быть экспертом в программировании, знать сети и базы данных, чтобы тестировать ПО. Базовых знаний достаточно, если вы начинаете пробивать себе путь в тестировании. помогут получить новые знания и систематизировать уже имеющиеся.
Итак , самое время прерваться и задать себе пару вопросов:
Продолжение в следующей статье « «.
Запишитесь на наши прямо сейчас или закажите звонок с бесплатной консультацией!
Проблема системная, т. к. весьма неплохо, когда HR ищут по ключевым словам вроде «нагрузочное тестирование», «функциональное». Но когда в процессе рассмотрения делается акцент не на навыки тестирования, не на активность и гибкость кандидата, а на конкретный инструмент - это уже проблема, особенно когда никакого тестирования нет в помине (есть обезьянничество), и не факт, что требуемый инструмент эффективнее того, который знает соискатель. Проблема в том, что знание мелкого нюанса или инструмента, на освоение которого уйдёт несколько часов, ставится во главе угла, выше знания языков программирования или теории. В одном из интервью было достаточно смешно было отвечать на вопросы: «назовите какую-нибудь книгу по тестированию» и, ответив про Сэма Канера, услышать: «мы такого не знаем, а про жизненный цикл бага что-нибудь читали?». Это было бы смешно, если бы не было так грустно. Грустно, когда HR сообщает об отказе из-за отсутствия опыта у кандидата, хотя дело к неправильном расставлении акцентов.
Найти хорошего тестировщика - большая проблема, т. к. инженер-тестировщик - это, в идеале, человек, который разрешает технические проблемы, связанные с разработкой ПО, эдакий problem solver. Такому человеку, помимо технических навыков очень важно иметь внимательность, пытливый ум, быть активным и уметь донести мысль и отстоять свою точку зрения на любом уровне.В каком-то роде, тестировщики - это исследователи из мира разработки ПО. Поэтому в руках инженера-тестировщика легко узнаваемый символ - лупа (линза), наблюдающая за жучками. Как нельзя лучше характеризует она работу тестировщика: используется как по прямому назначению для выявления дефектов, так и для «прожигания дырочек», с её помощью можно добывать огонь и даже, имея целую систему линз, наблюдать за звёздами. Главное - уметь это делать.
Ремарка №5
В компании Intel главенствует подход, в котором инструменты выбираются из предпочтений сотрудников на проекте. Это означает, что, в целом, неважно, какой инструмент и язык выбрать для решения задачи, главное - её решить. Сосуществование трёх разных тест инженеров, пишущих на трёх разных языках вполне допустимо, если проблема решается, решается эффективно и накладные расходы на поддержку разумны, а процесс документируется. Кроме того, многие используемые инструменты являются бесплатными, open-source или собственной разработки. На сегодняшний день существует огромное количество инструментов, с помощью которых возможно решать разнообразные задачи, и выбор инструментов не должен ограничивать возможности инженера. Однако, если для задачи действительно требуется использовать какой-то инструмент, отличный от свободно доступного, то при наличии чёткого понимания и обоснования, можно купить и использовать его. Это опять-таки соответствует целям бизнеса - не забивать гвозди микроскопом, не работать эффективно, выжимая максимум из инструментов, если квалификация инженеров позволяет обойтись «малыми потерями». Хорошей альтернативой является также участие в открытых проектах и инвестиции в них для последующего использования для собственных нужд. Такой подход убивает двух зайцев (свои нужды) и задачи и создаёт инструменты для всего общества в свободном использовании.
Тестировщик - это больше, чем профессия. Это образ проактивной жизни и стремления эту жизнь сделать лучше для всех посильными и эффективными средствами. Цели тестировщика в отношении продукта наиболее близки к целям бизнеса и стратегической цели компании в отношении этого продукта, и в то же время глубоки внутри компании в роли исследователя. А раз так, то главные его качества - это энергия, знания и гибкость. Но в тоже время работа тестировщика – это не всеобщее знание и ответственность за качество продукта и качество услуг. У тестирования есть границы: с одной стороны ограниченные проектом и требованиями в нём (менеджмент проекта и установленный жизненный цикл программы), и с другой – процессами, за которые отвечает QA. Но о различия QA от тестирования совсем другой разговор.
Теги:
Тестирование ПО. Уровень 1. 1 месяц.
Теоретические знания и начальный опыт
В настоящее время в IT-сфере как никогда стала актуальной профессия тестировщика. В первую очередь, высок спрос на специалистов, занимающихся тестированием программного обеспечения. Основными обязанностями таких сотрудников являются выявление ошибок в работе программ и моделирование различных ситуаций, связанных с их дополнительной нагрузкой. Таким образом, обнаруживая и описывая погрешности, направляя отчеты о них для внесения исправлений в программу, тестировщики постоянно взаимодействуют с командой разработки. Курс "Тестировщик ПО. Уровень 1" от GeekBrains предназначен для тех, кто хочет начать карьеру в тестировании программных продуктов. В его рамках рассматриваются теория и практика создания тест-кейсов, тест-комплектов, оформления багов и отчетов по результатам тестирования. Данный курс - это 8 практических занятий, где Вы получите знания и навыки, необходимые для того, чтоб легко включиться в работу над созданием и улучшением IT-проекта.
Что представляет собой тестирование. Как определить качество ПО (стандарты ISO, критерии качества, метрики). Категории программных ошибок. Терминология.
Цикл разработки ПО. Цикл тестирования ПО. Типы тестов в процессе разработки ПО. Соответствие тестирования методологии разработки ПО.
Определение и структура тест-кейсов. Характеристики хорошего теста. Аксиомы тестирования. Поддерживаемость тест-кейсов. Системы менеджмента качества. Тест-комплекты. Чек-листы. Подготовка тестовых данных.
Определение и поиск Классов эквивалентности. Границы классов эквивалентности. Работа требованиями к ПО. Участие в планировании релиза ПО. Что делать, если нет документации.
Определение и функции багтрекера. Как правильно формулировать задачи. Жизненный цикл (workflow) ошибок. Оперативное отслеживание задач в багтрекере.
Назначение регрессионного тестирования. В каких случаях требуется проводить регрессионное тестирование. Выбор тест-комплектов для регрессионного тестирования. Приоритизация и оптимизация тест-комплектов.
Должностная иерархия в тестировании. Планирование и оценка сроков на тестирование. Критерий начала/завершения тестирования. Отчетность по результатам тестирования. Подготовка рабочего места.
Особенности тестирования пользовательских интерфейсов GUI и web-приложений.
Тестирование ПО. Уровень 2. 1 месяц.
Работа с документацией и тестирование приложений
Многие считают, что профессия тестировщика является скучной и однообразной. Однако это мнение несправедливо. Профессиональный тестировщик - это, в первую очередь, человек, умеющий творчески подойти к решению стоящих перед ним задач. Опыт, приобретаемый в рамках этой профессии, может стать ступенью к карьере программиста. Важной особенностью работы тестировщика является возможность полноценного аутсорса и фриланса. Курс "Тестировщик ПО. Уровень 2" от GeekBrains предназначен для тех, кто уже знаком с основами тестирования и хочет получить более глубокие знания и навыки, требуемые для начала карьеры в IT-сфере. В его рамках разбираются способы исследования тестируемого ПО, изучаются техники определения необходимого количества тестов и способы визуализации тестируемого функционала. Данный курс - это 8 практических занятий, после которых Вы сможете проявить себя в качестве экспертного пользователя программного обеспечения, имеющего собственное видение наилучшей организации процесса тестирования.
Типы и цели исследования ПО. Декомпозиция приложения.
Создание тестового набора. Минимальные проверки. Перебор значений. Атомарные проверки. Pairwise. Метод взаимосвязанных проверок.
Анализ ПО на возможные состояния и переходы. Выявление жизненных циклов сущностей и комбинация состояний. Выбор валидных проверок.
Выбор условий бизнес-требования. Создание таблиц решений. Комбинирование тестов на основе таблицы решений.
Определение тестируемого функционала ПО. Выявление потенциальных ошибок и их градация. Определение стратегии.
Цели и задачи стратегии тестирования. Выбор подходящих техник в зависимости от функционала и особенностей. Учёт нефункционального тестирования.
Оценка тестового покрытия. Оценка эффективности тестов.
Введение в автоматизацию тестирования. 1 месяц.
Автоматизированное тестирование
Автоматизация - часть общего процесса тестирования, она является важной составляющей при построении работы и отслеживании процесса тестирования в рамках разработки программного обеспечения. На курсе вы разберете разнообразные аспекты использования подходов к построению процессов автоматизированного тестирования. Узнаете, какие существуют виды программного обеспечения для проведения автотестов. Поймете, как автоматизировать процессы тестирования и создадите свои первые автотесты.
Что такое автоматизированное тестирование; какие разновидности автоматизированного тестирования бывают; проектный выбор: ручное или автоматизированное; черный и белый ящик при автоматизации; обзор и выбор инструментария.
Принятие решения о введении автоматизации; проектирование автотестов; стратегии автоматизированного тестирования; процесс развертывания автоматизации; тестовое окружение для проведения автоматизации; создание автотеста при помощи Autoit.
Виды автоматизированного тестирования; автоматизированное функциональное тестирование; инструменты юзабилити тестирования; автоматизированное нагрузочное тестирование.
Цели, задачи, особенности Selenium. Selenium WebDriver. Selenium RC. Selenium Server. Selenium Grid. Пример использования Selenium IDE на практике.
Нагрузочное тестирование; принципы и практика построения нагрузочных тестов; обзор инструментов; пример использования Apache Jmeter.
Тестирование мобильных приложений; автоматизированные инструменты – обзор, выбор; нагрузочное тестирование; мобильные эмуляторы; мобильные фермы.
Автоматизация процесса тестирование и создания тестов; утилиты для автоматизации процессов тестирования; генерация тестов; фреймворки; плагины.
Требования, задачи; системы работы с требованиями и постановкой задач; системы багтрекинга; настраивание процессов проведения тестирования и их автоматизация и инструментарий.
Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL
Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.
Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.
Установка СУБД MySql и графического приложения Mysql Workbench.
Проектирование данных в Excel; нормальные формы; первичный ключ.
Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.
Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.
Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.
Понятие согласованности или консистентности данных.
Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.
Добавление корзины в базу данных интернет-магазина.
Использование составного первичного ключа при проектировании таблицы с отношением “многие ко многим”.
Получение данных из нескольких взаимосвязанных таблиц; несостоятельность подхода с использованием нескольких SELECT-ов.
Объединение данных из нескольких таблиц с помощью оператора INNER JOIN.
Объединение данных из нескольких таблиц с помощью операторов LEFT JOIN и RIGHT JOIN.
Объединение результатов нескольких SQL-запросов с помощью оператора UNION.
Агрегирующие функции COUNT, SUM, MIN, MAX.
Группировка выбранного набора строк с использованием оператора GROUP BY.
Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.
Понятие транзакции; оператор TRANSACTION; требования ACID к транзакционной системе.
Стажировка GeekBrains и Mail.Ru Group. 2 месяца.
Реальная практика для тестировщика
За 2 месяца стажировки вы получите реальный опыт работы тестировщиком. Вы примете участие в тестировании продуктов Mail.Ru и нескольких небольших проектов. Стажировка проходит в формате вебинаров. Продолжительность: 2 месяца.
Как будет проходить стажировка; что потребуется. План занятий.
Аналитика проекта; поиск документации; составляем требования.
План тестирования, стратегия.
Тест-кейсы, чек-листы; функциональное тестирование.
.
Тест-кейсы, чек-листы; юзабилити-тестирование.
Функциональное тестирование
Юзабилити-тестирование
Составляем итоговый отчёт.
Как стать программистом. 13 уроков.
Пошаговая инструкция по поиску работы
Карьера в сфере программирования - это увлекательное путешествие в мир современных технологий. У каждого разработчика своя история и свой опыт. Однако существует базовый алгоритм, который поможет правильно сделать первые шаги и приведёт к вашей цели. Мы подготовили 13 видео-уроков, в которых ответили на самые актуальные вопросы о карьере программиста в компаниях и на рынке фриланса. Часто думаете о трудоустройстве и чувствуете, что готовы начать зарабатывать? Тогда этот видео-курс для вас.
Особенности профессии; часто задаваемые вопросы; востребованность на рынке труда.
Стану ли я успешным программистом? Факторы успеха.
Самое важное - первое впечатление; как назвать должность.
Обзор языков для разработки сайтов: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; правильный выбор.
Обзор языков: Java, Objective-C, Swift; C#, C++, Python: правильный выбор.
Список технологий; портфолио; дипломы и сертификаты; личностные качества. Взгляд технического специалиста и HR.
Работа мечты, психологические аспекты; техника запроса.
Собеседования для программистов: как себя вести, что говорить, к чему прислушиваться; испытательный срок и правила его прохождения.
Обзор площадок для фриланса; особенности регистрации; оформление аккаунта; как выделяться среди большинства исполнителей.
Стратегия поиска заказов; приоритет заказов: что брать в работу; ведение переговоров; задания и подводные камни ТЗ; методы обращения к клиенту; написание ответов и привлечение внимания клиентов; правильные вопросы.
Способы оплаты: безналичный или наличный расчёт; предоплата или постоплата; обзор ситуаций, в которых лучше сработает каждый из способов; подготовка к работе и обязательные договорённости с клиентом; особенности процесса работы; завершающие этапы сотрудничества; обмен отзывами; техника "посоветоваться".
Как проходит разработка в крупных компаниях? Кто такие аналитики, дизайнеры, тестировщики, архитекторы, projectmanager-ы, team-lead-ы и пр.
Как выглядит карьерная лестница в сфере IT? В каких специальностях проще начинать свой путь? Какие есть перспективы развития?
Курс, разработанный совместно с школой EnglishDom, поможет освоить ключевые англоязычные темы, актуальные для начинающих IT-специалистов. Максимум практики и фокус на IT-лексику. На 10 уроках разбирается составление CV, технических заданий и деловых писем, собеседования и переговоры, международное общение при продвижении своего проекта. В живых диалогах на английском студенты закрепят фразы, которые пригодятся в работе разработчикам и тестировщикам, маркетологам и дизайнерам.
Урок 10. Start up
Рассказываем о своем проекте и представляем команду на английском.
Тестирование - неотъемлемый этап разработки программного обеспечения. Если не вдаваться в сугубо профессиональные детали, то всё на первый взгляд просто. Разработка всегда начинается с того, что пишется некоторый документ (или даже комплект документации), определяющий: каким функционалом должен обладать новый продукт или его часть, модуль, фича; какие методы разработки будут применяться; какие технологии, протоколы, схемы, сторонние продукты будут использоваться при работе этого продукта; формат и условия ввода-вывода, взаимодействие частей продукта между собой и всего продукта в целом со средой, пользователями, базами данных...; виды пользовательских интерфейсов (консольных, графических...), наборы и синтаксис используемых команд и поведение продукта в различных штатных и особых случаях. Короче говоря, детальное описание будущего продукта.
Этот документ, прежде всего, является основным документом для разработчиков. На его основе составляется план разработки, методология, сроки, используемые модели, паттерны - что там у них, у разработчиков ещё есть.
Однако, ровно тот же самый документ (или его производные) является прямым гайдлайном для тестировщиков. На основании этого описания составляется мастер-план тестирования, который (в зависимости от подхода, методологии тестирования, сроков и архитектуры проекта) может дробиться на набор детальных тестпланов, например, для каждого модуля плюс нагрузка плюс комбинации плюс всё что в голову придёт. Каждый такой тестплан содержит не только детальное описание методологии тестирования, инструментов и условий для этого конкретного участка работ, но и содержит (как часть или приложение) набор из множества элементарных, от простейших к более сложным тесткейсов (тестовых случаев), каждый из которых содержит в себе набор конкретных шагов и чёткий результат, к которому этот алгоритм должен привести. Как правило, если тестпланы могут разрабатываться комплексно, то кейсы пишут сами тестировщики уже под себя. Это большая работа, состоящая в основном из писанины, причём, на начальном этапе такого рода описание продукта (покрытие кейсами) проводится вслепую за неимением готового тестового образца. Это раз.
Затем наступает фаза, когда появляются тестовые образцы "готового" кода и необходимо его тестировать. Если формально, то применять по очереди согласно плана те самые созданные заранее кейсы и смотреть за результатами. Если результат отличается от указанного в кейсе или вообще всё сломалось, то это баг и надо срочно его куда-нибудь заносить. Инструментов для этого куча. Это два.
По всему этому пишутся отчёты. Куча отчётов. Потом ещё отчёты. И ещё один отчёт... Это три.
Это звучит очень сухо и неинтересно. Прогнал, отписался, снова прогнал, ещё чего-нибудь нашёл. Но да, это только верхушка айсберга и это очень схематично. На самом деле иногда сложно априори хорошо покрыть продукт кейсами - что-то просто невозможно учесть, что-то изначально недоописали, что-то изменилось в ходе разработки, что-то выбросили, что-то добавили... И это всегда так. Разработка и тестирование идут нога в ногу и это очень динамичный процесс. А в итоге постоянно натыкаешься на нестандартное поведение, которое тоже в идеале необходимо описывать, приводить к какому-то виду и либо исправлять, либо модифицировать. В итоге уже в процессе тестирования появляются новые кейсы, которые в последствии добавляются в первоначальный набор. А потом тебе становится скучно и ты, используя весь свой багаж знаний о тех процессах, протоколах и приложениях, которые задействованы в продукте, начинаешь невольно думать, как бы эдак всё сломать окончательно. И это не игра и не мазохизм - конечный пользователь в своей массе гораздо более изобретателен нежели любой, пусть даже самый талантливый тестировщик.
И, конечно, не обходится без политики, психологии и везения. С одной стороны, всегда есть официальное взаимодействие с руководством, между отделами да и вообще с коллегами. И куча переписки - с менеджерами, с разработчиками, снова с менеджерами. Появляются какие-то детали, меняются сроки. Плюс кто-то ещё находит время и силы на то, чтобы автоматизировать хотя бы часть тестирования, а это, зачастую, уже вообще творческая и ювелирная работа.
Конечно, это всё вот так, на пальцах и сумбурно. Но, во-первых, повторюсь, в Сети очень много чего написано про тестирование ПО, а во-вторых, тут всё очень субъективно и часто "завязано" именно на проект и принятую в команде методологию.
А если говорить за себя, то мне очень нравится работать тестировщиком программного обеспечения. Если душа лежит, то это работа, полная не только рутины, документации и авралов (а этого хватает, уж поверьте), но и творчества, чутья и где-то даже везения. Недаром говорят, что тестирование нельзя закончить, его, как ремонт, можно только остановить. И, к слову, я не понимаю этих хрестоматийных шуток про извечную войну тестировщиков и девелоперов. Я искренне уверен, что эти слухи распространяют непрофессионалы. Я, возможно, развею очередной миф, но тестировщики и разработчики не могут быть врагами уже потому, что одни помогают другим. Девелопер сам пишет продукт (или его кусок) и его глаза "замыливаются" настолько, что зачастую он пропускает самые банальные вещи, не говоря уже о сложных сценариях. И для этого есть мы, QA - найти, сломать и доложить. Не знаю как кому, а мне всегда везло с разработчиками. И сегодня мы постоянно списывается и созваниваемся со "своими" (на данном этапе) разработчиками и вместе обсуждаемых какие-то острые или проблемные моменты, хотя наши филиалы буквально разбросаны по миру.
Тестирование ПО это интересно, сложно и очень нужно. И скажу больше, тестировщики есть не только в IT. Помните эти печати ОТК? Это тоже тестировщики. Тестируется всё - от лампочек до карьерных самосвалов. Я уже молчу про космические корабли, которые бороздят. Кто-то тестирует телефоны, кто-то даже тестирует TheQ потихоньку, а кто-то тестировал вашу дверную ручку.
Тестировщики (а официально инженеры по качеству) повсюду.