Чем тестирование веб-приложений отличается от тестирования каких-нибудь других приложений?
При тестировании веб-приложений применяются те же самые классические методы и техники проектирования тестов. Веб-приложения обычно имеют более простой интерфейс, чем "десктопные" программы. Браузером все умеют пользоваться, для этого не нужны какие-то специальные навыки.
Но существует ряд нюансов, связанных с социальными и технологическими особенностями веб-приложений, которые отличают их от других видов приложений, и которые обязательно нужно учитывать при тестировании, чтобы выполнить его профессионально.
фантастическое многообразие технологий, которые скрываются за простым фасадом браузера – фактически каждое веб-приложение является не самостоятельной программой, а частью всемирной паутины, и в работу веб-приложения вовлечено очень много разнородных компонентов,
невероятная скорость веб-разработки как в узком, так и в широком смысле – короткие релизы, быстро меняющиеся требования, постоянное совершенствование существующих технологий и возникновение новых,
потрясающее разнообразие пользователей, от случайных посетителей до постоянных клиентов, от младенцев до стариков, от новичков до хакеров,
полная открытость технологий, протоколов передачи данных, стандартов, и одновременно с этим необходимость особенно тщательной защиты, с учётом написанного в предыдущем пункте.
Кроме того, в этом курсе даются основы нефункционального тестирования веб-приложений – тестирование производительности, защищенности, удобства использования. В дальнейшем можно продолжить изучение отдельных видов нефункционального тестирования в более углублённых специализированных курсах Тестирование производительности веб-приложений и Тестирование защищенности веб-приложений.
После прохождения тренинга учащийся будет:
понимать принципы работы веб-приложений и знать, какие технологии при этом используются,
знать особенности тестирования веб-приложений по сравнению с десктопными приложениями,
уметь проектировать тесты с учётом особенностей веб-приложений и оценивать покрытие тестами функциональности приложения,
уметь выполнять тесты, при необходимости используя инструментальные средства для преодоления ограничений, накладываемых браузером,
владеть инструментами, для выполнения специфических проверок, характерных для веб-приложений:
анализ целостности ссылок,
анализ соответствия веб-стандартам,
понимать причины возникновения уязвимостей в веб-приложениях и уметь обнаруживать наиболее критические уязвимости в веб-приложениях,
понимать принципы оценки производительности веб-приложений и уметь выполнять анализ серверной и клиентской производительности веб-приложений,
уметь рассуждать об удобстве использования веб-приложений :)
Каждое занятие будет сопровождаться практическими заданиями, которые помогут быстрее и увереннее начать применять знания на практике.
У многих тестировщиков, а также и у многих менеджеров, при звуке слов "автоматизация тестирования" в мозгу возникает идиллическая картинка в стиле научно-фантастических романов: роботы выполняют рутинную и тяжёлую работу, а человек занимается интеллектуальным или творческим трудом.
Но это никакая не фантастика, это вполне реально и достижимо!
Да, можно освободить тестировщиков от выполнения некоторых типовых задач, переложив эту работу на плечи роботов. Таких рутинных действий тестировщик совершает больше, чем кажется на первый взгляд. Автоматизировать можно не только собственно выполнение тестов, но и подготовку тестового стенда, генерацию тестовых данных большого объёма или высокой сложности, помощь в проверке результатов, полученных при ручном тестировании (сравнение текстов, картинок), создание отчётов или иных документов.
Однако нельзя просто пойти и купить робота, который начнёт немедленно приносить вам пользу. Можно либо взять "универсального" робота и обучить его, либо взять конструктор и собрать узкоспециализированный автомат для решения ваших конкретных задач.
Процесс внедрения автоматизации – это как раз и есть процесс создания или обучения роботов.
Внедрение автоматизации затрагивает многие стороны процесса разработки. Это отнюдь не чисто инженерная задача, требующая только владения инструментами автоматизации и навыками программирования.
Прежде чем перейти к технической части, необходимо выбрать оптимальную стратегию внедрения и дальнейшего развития автоматизированных тестов. Нужно скоординировать работы по автоматизациями с деятельностью специалистов по ручному тестированию, потому что предстоит провести отбор тестов для автоматизации, а может быть и переработку этих тестов. Предстоит также согласовать свои действия с разработчиками, а может быть даже договориться о специальных доработках тестируемого приложения для более удобной автоматизации.
Ну и конечно без инженеров в этом деле не обойтись. Правильно выбрать средства автоматизации, интегрировать с инструментами групповой работы (баг-трекер, сервер непрерывной интеграции, системы отчётности) – при решении этих технических задач талант инженера-автоматизатора может раскрыться в полной мере.
Но главная опасность подстерегает впереди – рано или поздно станет ясно, насколько оправданным и экономически целесообразным оказалось внедрение автоматизации в тестирование. Нужно будет оценить достигнутые результаты и принять новые решения относительно дальнейшего развития систем автоматизации.
Чтобы научить вас правильно планировать процесс внедрения автоматизации, успешно решать технические задачи и адекватно оценивать текущее состояние процесса
мы разработали новый тренинг, особенность которого заключается в том, что его ведут два тренера – "менеджер" и "инженер".
Это позволит вам увидеть проблемы, которые возникают при внедрении автоматизации тестирования, с двух разных (можно даже сказать противоположных) точек зрения.
Тренинг будет полезен всем, кто внедряет с нуля или улучшает текущие подходы к организации автоматизированного тестирования: тест-менеджерам, специалистам по автоматизации и тест-дизайнерам, взаимодействующим с группой автоматизации.
После прохождения тренинга вы научитесь разрабатывать автоматизированные тесты для веб-приложений с использованием инструмента Selenium IDE. От участников не требуется никакой предварительной подготовки в области автоматизации тестирования, не требуется умение программировать, не требуется предварительное знакомство с Selenium или иным инструментом автоматизации. Стартуем с нулевой отметки.
Чем же новая версия тренинга отличается от предыдущей?
Во-первых, мы записали тренинг в более удобном формате. Материал представлен в виде серии небольших модулей средней продолжительностью около 10 минут. Такие короткие лекции проще усваиваются, чем длинный непрерывный рассказ.
Во-вторых, мы полностью переработали программу тренинга. За счёт более компактного и насыщенного изложения материала мы смогли без увеличения времени и стоимости тренинга добавить целый ряд новых тем. В них рассмотриваются вопросы, которые часто задавали участники предыдущих тренингов:
-- объяснение принципов работы XPath и CSS локаторов,
-- различие между некоторыми похожими командами (click и clickAt, type и sendKeys),
-- использование ожиданий, выполнение фрагментов JavaScript-кода,
-- усложнение логики сценариев при помощи расширения SelBlocks,
-- загрузка тестовых данных из внешнего файла (Data Driven Testing).
В третьих, появились новые интересные домашние задания. Участникам предостоит автоматизировать несколько сценариев в реальном веб-магазине, имеющем достаточно сложный интерфейс с динамическими элементами.
Да, пожалуй, у нас получился самый лучший в мире тренинг, посвящённый инструменту Selenium IDE!
И конечно всё это (как в любом нашем тренинге) сопровождается поддержкой тренера, готового отвечать на самые каверзные вопросы и помогающего вам освоить все возможности инструмента.
Работаю я новой компании, мы пока в поиске HR. В компании я единственный тестировщик, которого в скором времени будут выводить в лиды и создавать команду.
Моей квалификации хватает для проведения собеседований, но я совсем не умею их проводить.
У кого есть опыт - подскажите как? Как проводить собеседования для тестировщиков?
Ученый, рассказчик, или официальный представитель?
Мне с трудом далась четвертая глава книги Джеймса Баха "Lessons Learned in Software Testing" ("В защиту багов"). Нет, она не была менее понятной или более интеллектуально насыщенной, чем первые три. Просто она полна противоречий.
Вопрос в моем подзаголовке очень волнует меня. В некотором роде тестировщик выполняет каждую из этих ролей. Ранее я уже говорил об этом. Однозначно ответить на этот вопрос невозможно. Крутой рассказчик может быть уважаемым ученым. А прекрасный ученый - интереснейшим рассказчиком.
Но тут всплывает более интересный вопрос - а как мы должны воспринимать сами себя, когда мы создаем и курируем свои баг-репорты? Бах, Кейнер и Петтикорд дают на это очень расплывчатый ответ.
Судя по главе в книге Баха, авторы рисуют два крайне различных - и очень противоречивых - портрета тестировщика. С одной стороны, это дисциплинированный, объективный, дотошный автор отчетов, который борется с желанием все преувеличить и выдает только голые факты, необходимые для принятия рациональных решений насчет реакции на баг-репорт.
"Вы информ-бюро... Ваша задача - сообщать о багах точно и внятно, чтобы читатель понял весь объем проблемы... Если вы преувеличиваете серьезность бага, вы утратите доверие... Ваша работа - сообщать о багах, а не выяснять, почему они произошли... старайтесь быть нейтральным... Не настаивайте на фиксе каждого бага, расставляйте приоритеты..."
С другой стороны, тестировщик отстаивает баги, вкладывается в них эмоционально, и мотивирован бороться за них из политических соображений. Он готов использовать свое влияние в офисе через головы коллег, чтобы вопросы исправления багов решались так, как нужно ему.
"Любой баг-репорт - это адвокатская речь, призывающая к исправлению этого бага... это инструмент продаж, его цель - убедить людей... вы можете обнаружить сравнительно минорный баг и, исследуя его, узнать о серьезных последствиях... Чтобы баг исправили, вам нужно заставить всех ответственных за контроль изменений одобрить это исправление... Если убедить разработчиков сложно, но вы считаете, что баг надо исправить, подумайте, кому в компании еще выгодно исправление этого бага..."
Какой портрет более точный? Какую роль выбирать? Читая эту главу, определиться невозможно. На самом деле я вообще не уверен, что из этой главы можно извлечь некий универсальный принцип. Реальность такова, что иногда вы просто докладчик, а иногда - адвокат, и чтобы понять, какую роль сыграть, нужен опыт. Хотелось бы, конечно, чтобы Джеймс Бах и Кем Кейнер изложили чуть больше своих идей на этот счет.
Кстати. Отвечать таким образом, наверное, не нужно.
--------------------------------------------
1. Почему вы выбрали именно нашу компанию? — Я, как и все кандидаты до меня и после меня, направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо.
2. Как вы считаете, почему мы должны выбрать именно вас? — Вам работники вообще нужны? Ну вот он я. Работник. Именно меня стоит выбрать хотя бы потому, что я явно умнее всех тех, кто заливал на эти вопросы стандартную чушь. И умнее вас, между прочим, потому что я никогда таких дурацких вопросов бы не задал.
3. Какую зарплату вы хотели бы получать? — 2, 5 млн. $ в год. Столько получает президент США. Что вообще за вопрос такой? Естественно, что я хочу получать настолько высокую зарплату, насколько вы сможете мне заплатить. Только ведь вы все равно не заплатите. Тогда нечего и выпендриваться. Все равно выбор за мной: вы говорите цену, я говорю — согласен или нет.
4. Почему вы ушли с предыдущего места работы? — Какая вам разница, почему я ушел. Все равно вы ради меня ничего не измените. Ну что вам даст ответ? Во-первых, я совру. Во-вторых, предположим, отвечу честно: маленькая зарплата или отсутствие карьерного роста, или бесперспективность, или не сошелся с коллективом, или не понравился собаке начальника. И что? Вы же не знаете, сойдусь ли я с вашим начальником, коллективом и их собакой. И не узнаете, пока не попробуете.
5. Кем вы видите себя через 5/10/20 лет (в нашей компании)? — Если я буду настолько бездарен, чтобы остаться в вашей компании на 5 лет, то меня не стоит вообще на работу брать. Да и компания ваша... Вот вам встречный вопрос: какие планы компании на ближайшие 5/10/20 лет? Что? Нет таких. Так если вы сами не знаете, что с вами будет через 20 лет, будет ли компания и какую нишу она намеревается занимать, то мне-то откуда это знать? Вы тут наркотики употребляете, не иначе.
6. Какие у вас были достижения на предыдущем месте работы? — А резюме вам не достаточно, значит. Ну хорошо. Я отлично работал и великолепно справлялся со своими обязанностями. Вот это — достижение! Если же ваши работники работают так, что хорошо работают они лишь изредка, то я вас разочарую: при правильном руководстве и хорошей работе никаких достижений быть не должно! Работать надо, а не ерундой маяться и достижения достигать!
7. Каким бы вы хотели видеть своего начальника? — Я бы хотел его не видеть. Это — раз. А два — без разницы. Серьезно, мне нет разницы как он выглядит. Главное, чтобы он был начальником: тем, кто может нормально и внятно сформулировать задачи. А в остальном, пусть хоть в красных труселях на белой капибаре разъезжает по офису.
8. Какие у вас есть достоинства? — На гуслях я умею играть и плеваться на 10-15 метров в длину. Если вам нужна моя квалификация, то она указана в резюме. Если вам что-то нужно еще — то об этом и спросите. А если вы сами не знаете, чего вы хотите и что вам нужно, то тут, извините, ничем помочь не могу. Формулировать скрытые и неясные желания — это вам к психиатру нужно.
9. Каковы ваши недостатки? — Вы определитесь, что вам надо, а я скажу, есть ли у меня к этому недостаток, а то у меня есть недостаток — хорошо тенором пою, соседи жалуются, а в консерватории сказали — талант. Вот еще недостаток: когда я ем суп, я зачерпываю ложкой к себе, а не от себя! О как! Короче, верните листочек с вопросами тому ребенку-дауну, у которого вы его забрали, и не обижайте его больше, ему и так несладко живется. Если вы не знаете, что вам нужно, то берите на работу меня, мы удивительно подходим друг другу: я тоже не имею понятия, что вам нужно! У нас будут любовь и взаимопонимание. Заодно можете уволить своего специалиста отдела кадров, он явно некомпетентен.
Нужна помощь знатоков! Постараюсь вкратце: перепробовала с десяток, а то и более, программ для восстановления удаленных картинок, но сохранялись они мне в виде маленьких красных крестиков по центру в программе просмотра. Мне сказали, что это значит, что эти файлы сильно затерты. Пробовала пару программ для восстановления поврежденных jpg-файлов, но безрезультатно... Подскажите, пожалуйста, можно ли их все-таки как-то вернуть в первоначальном виде (бесплатными программами) или поставленные на них кресты вместо изображений говорят сами за себя?