Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 858
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Что такое тестирование и откуда оно появилось
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 8/301
Хорошим источником дополнительной информации о процессах тестиро- вания является книга Рекса Блэка «Ключевые процессы тестирования»
(
«Critical Testing Processes», Rex Black).
В нулевые годы нынешнего века развитие тестирования продолжалось в контексте поиска всё новых и новых путей, методологий, техник и подходов к обес- печению качества. Серьёзное влияние на понимание тестирования оказало появ- ление гибких методологий разработки и таких подходов, как «разработка под управ- лением тестированием
9
(test-driven development
10
, TDD
)». Автоматизация тестиро- вания уже воспринималась как обычная неотъемлемая часть большинства проек- тов, а также стали популярны идеи о том, что во главу процесса тестирования сле- дует ставить не соответствие программы требованиям, а её способность предоста- вить конечному пользователю возможность эффективно решать свои задачи.
О современном этапе развития тестирования мы будем говорить на протя- жении всего остального материала. Если же отметить вкратце основные характе- ристики, то получится примерно такой список: гибкие методологии и гибкое тести- рование, глубокая интеграция с процессом разработки, широкое использование ав- томатизации, колоссальный набор технологий и инструментальных средств, кросс- функциональность команды (когда тестировщик и программист во многом могут вы- полнять работу друг друга).
Воистину подробнейшую историю развития тестирования ПО (начиная с
1822 года, не шутка) можно найти в статье «The History of Software Test- ing
»
11
на ресурсе «Testing References». Также немалый интерес представ- ляет статья «The Growth of Software Testing»
12
(David Gelperin, Bill Hetzel).
Задание 1.1.b: если вам не очень хорошо знакомы такие понятия как TDD,
BDD, DDT, KDT,
— найдите их описание в Интернете и изучите. Конечно же, это задание относится и к любым другим непонятным терминам.
9
Да, грамматически корректно будет «разработка под управлением тестирования», но традиционно так сложилось, что целый ряд подобных подходов «под управлением…» называют, используя творительный падеж: т.е. «…тестирова- нием», «…данными», «…ключевыми словами» и т.д.
10
Test-driven development. A way of developing software where the test cases are developed, and often automated, before the software is developed to run those test cases. [ISTQB Glossary]
11
«The History of Software Testing» [
http://www.testingreferences.com/testinghistory.php
]
12
«The Growth of Software Testing», David Gelperin, Bill Hetzel [
https://www.researchgate.net/publica- tion/234808293_The_growth_of_software_testing
]
Кто такой тестировщик и что он делает
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 9/301
1.2.
Кто такой тестировщик и что он делает
Если поискать информацию по ключевым фразам из названия этой главы, можно найти уйму совершенно противоречивых ответов. И дело здесь в первую очередь в том, что авторы большинства «должностных обязанностей» приписы- вают всей профессии некий утрированный набор характеристик отдельных её пред- ставителей.
В то же время даже в ЕКСД разделены должности «специалиста по тестиро- ванию программного обеспечения» и «тестировщика программного обеспечения».
Если вам интересно, почитайте документ «Постановление Министерства труда и социальной защиты Республики Беларусь № 148 от 15 декабря
2009 г. О внесении изменений и дополнений в выпуск 1 Единого квалифи- кационного справочника должностей служащих (ЕКСД)».
Теперь вернёмся к исходному вопросу и посмотрим на него с двух точек зре- ния: какова квалификация тестировщика, и где он работает.
Упрощённо отразим это в таблице 1.2.a.
Таблица 1.2.a — Типичные виды деятельности тестировщика.
Небольшие фирмы
Большие фирмы
Низкая квалификация
Подмастерье, часто предо- ставленный сам себе в реше- нии задач.
Рядовой участник проектов, одновременно проходящий интенсивное повышение ква- лификации.
Высокая квалификация
Мастер на все руки с богатым, но не всегда структурирован- ным опытом.
Эксперт в одной или несколь- ких областях, консультант, ру- ководитель направления.
Поскольку чем выше квалификация специалиста
{280}
, тем шире его выбор мест работы (даже в рамках одной крупной фирмы), основное внимание уделим именно квалификационным особенностям работы тестировщика.
В начале карьеры любой специалист (и тестировщик не является исключе- нием) является исполнителем и учеником. Достаточно хорошо понимать, что такое тест-кейсы, отчёты о дефектах, уметь читать требования, пользоваться парой ин- струментальных средств и хорошо уживаться в команде.
Постепенно тестировщик начинает погружаться во все стадии разработки проекта, понимая их всё полнее и полнее, начинает не только активно использо- вать, но и разрабатывать проектную документацию, принимать всё более ответ- ственные решения.
Если выразить образно главную цель тестировщика, то она будет звучать так: «понимать, что в настоящий момент необходимо проекту, получает ли проект это необходимое в должной мере, и, если нет, как изменить ситуацию к лучшему».
Звучит похоже на цель руководителя проекта, верно? Верно. Начиная с некоторого уровня развития, IT-специалисты, по большому счёту, различаются лишь наборами технических навыков и основной областью приложения этих навыков.
Так какие же технические навыки нужны, чтобы успешно начать работать те- стировщиком? Прежде чем приступить к самому перечислению, оговорим особо: этот список рассчитан в первую очередь на тех, кто приходит в тестирование из нетехнических профессий (хотя часто его же приходится озвучивать и студентам технических вузов).
Кто такой тестировщик и что он делает
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 10/301 0)
Знание иностранных языков. Да, это нетехнический навык. Но тем не ме- нее он идёт под номером «ноль». Можете считать это аксиомой: «нет зна- ния английского — нет карьеры в IT». Другие иностранные языки тоже приветствуются, но английский первичен.
Задание 1.2.a: если вы сомневаетесь в том, достаточен ли ваш уровень английского, проверьте себя: если вы можете без труда читать технические статьи хотя бы в Википедии, мини- мально достаточный уровень у вас есть.
1)
Уверенное владение компьютером на уровне по-настоящему продвину- того пользователя и желание постоянно развиваться в этой области. Мо- жете ли вы представить себе профессионального повара, который не мо- жет пожарить картошку (не «не обязан», а «не умеет в принципе»)? Вы- глядит странно? Не менее странно выглядит «IT’шник» (именно так, в ка- вычках), неспособный набрать вменяемо отформатированный текст, ско- пировать файл по сети, развернуть виртуальную машину или выполнить любое иное повседневное рутинное действие.
2)
Программирование. Оно на порядки упрощает жизнь любому IT’шнику — и тестировщику в первую очередь. Можно ли тестировать без знания про- граммирования? Да, можно. Можно ли это делать по-настоящему хо- рошо? Нет. И сейчас самый главный (почти религиозно-философский) вопрос: какой язык программирования изучать? C/C++/C#, Java, PHP, Ja- vaScript, Python, Ruby и т.д. — начинайте с того, на чём написан ваш про- ект. Если проекта пока ещё нет, начинайте с JavaScript (на текущий мо- мент — самое универсальное решение).
3)
Базы данных и язык SQL. Здесь от тестировщика тоже не требуется ква- лификация на уровне узких специалистов, но минимальные навыки ра- боты с наиболее распространёнными СУБД и умение писать простые за- просы можно считать обязательными.
4)
Понимание принципов работы сетей и операционных систем. Хотя бы на минимальном уровне, позволяющем провести диагностику проблемы и решить её своими силами, если это возможно.
5)
Понимание принципов работы веб-приложений и мобильных приложе- ний. В наши дни почти всё пишется именно в виде таких приложений, и понимание соответствующих технологий становится обязательным для эффективного тестирования.
Надеюсь, вы обратили внимание на то, что самого тестирования в списке нет.
Всё верно, ведь ему посвящена вся эта книга целиком, так что позволим себе не копировать её сюда.
В завершение главы также отметим личностные качества, позволяющие те- стировщику быстрее стать отличным специалистом:
1) повышенная ответственность и исполнительность;
2) хорошие коммуникативные навыки, способность ясно, быстро, чётко вы- ражать свои мысли;
3) терпение, усидчивость, внимательность к деталям, наблюдательность;
4) хорошее абстрактное и аналитическое мышление;
5) способность ставить нестандартные эксперименты, склонность к иссле- довательской деятельности.
Кто такой тестировщик и что он делает
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 11/301
Да, сложно найти человека, который бы в равной мере обладал всеми пере- численными качествами, но всегда полезно иметь некий ориентир для саморазви- тия.
Очень часто можно услышать вопрос о том, обязательно ли тестировщику иметь техническое высшее образование. Не обязательно. Хотя при его наличии на первых этапах карьеры, конечно, легче. Но со временем раз- ница между теми, у кого такое образование есть, и теми, у кого нет, стано- вится практически незаметной.
Что нужно знать и уметь и чему можно научиться
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 12/301
1.3.
Что нужно знать и уметь и чему можно научиться
В предыдущей главе мы осознанно не обсуждали конкретный перечень не- обходимых начинающему тестировщику знаний и умений, т.к. он заслуживает от- дельного рассмотрения.
Показанные ниже данные представляют собой адаптированную выжимку из карты компетенций тестировщика. Все навыки здесь условно разделены на три группы:
• Профессиональные — это именно «тестировщицкие», ключевые навыки, от- личающие тестировщика от других IT-специалистов.
• Технические — это общие навыки в области IT, которыми тем не менее дол- жен обладать и тестировщик.
• Личностные — в русском языке термин «soft skills» часто переводят как
«навыки межличностного общения», но исходный термин несколько шире.
Задание 1.3.a: в процессе чтения приведённых здесь перечней компетен- ций отмечайте непонятные вещи, ищите дополнительную информацию и добивайтесь у себя понимания описанного хотя бы на уровне «знаю, о чём идёт речь».
Профессиональные навыки
Таблица 1.3.a — Профессиональные навыки тестировщика
Предметная об-
ласть
Начальный уро-
вень
Уровень младшего или среднего специалиста
Процессы тестирования и разработки программного обеспечения
Процесс тестиро- вания ПО
Этому вопросу по- священа глава
«Процессы тестиро- вания и разработки
ПО»
{18}
Глубокое понимание стадий процесса тестирова- ния, их взаимосвязи и взаимовлияния, умение планировать собственную работу в рамках полу- ченного задания в зависимости от стадии тестиро- вания
Процесс разра- ботки ПО
Общее понимание моделей разработки ПО, их связи с тестированием, умение расставлять прио- ритеты в собственной работе в зависимости от стадии развития проекта
Работа с документацией
Анализ требова- ний
Этому вопросу по- священа глава «Те- стирование доку- ментации и требо- ваний»
{32}
Умение определять взаимосвязи и взаимозависи- мость между различными уровнями и формами представления требований, умение формулиро- вать вопросы с целью уточнения неясных момен- тов
Тестирование требований
Знание свойств хороших требований и наборов требований, умение анализировать требования с целью выявления их недостатков, умение устра- нять недостатки в требованиях, умение применять техники повышения качества требований
Управление тре- бованиями
Не требуется
Общее понимание процессов выявления, доку- ментирования, анализа и модификации требова- ний
Бизнес-анализ
Общее понимание процессов выявления и доку- ментирования различных уровней и форм пред- ставления требований
Что нужно знать и уметь и чему можно научиться
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 13/301
Предметная об-
ласть
Начальный уро-
вень
Уровень младшего или среднего специалиста
Оценка и планирование
Создание плана тестирования
Эти вопросы ча- стично затронуты в главе «Оценка тру- дозатрат, планиро- вание и отчёт- ность»
{208}
, но их глубокое понимание требует отдельного длительного изуче- ния
Общее понимание принципов планирования в кон- тексте тестирования, умение использовать гото- вый тест-план для планирования собственной ра- боты
Создание страте- гии тестирования
Общее понимание принципов построения страте- гии тестирования, умение использовать готовую стратегию для планирования собственной работы
Оценка трудоза- трат
Общее понимание принципов оценки трудозатрат, умение оценивать собственные трудозатраты при планировании собственной работы
Работа с тест-кейсами
Создание чек-ли- стов
Этому вопросу по- священа глава
«Чек-листы, тест- кейсы, наборы тест- кейсов»
{115}
Твёрдое умение использовать техники и подходы к проектированию тестовых испытаний, умение декомпозировать тестируемые объекты и постав- ленные задачи, умение создавать чек-листы
Создание тест- кейсов
Твёрдое умение оформлять тест-кейсы согласно принятым шаблонам, умение анализировать гото- вые тест-кейсы, обнаруживать и устранять имею- щиеся в них недостатки
Управление тест- кейсами
Не требуется
Общее понимание процессов создания, модифи- кации и повышения качества тест-кейсов
Методологии тестирования
Функциональное и доменное тести- рование
Этому вопросу по- священа глава «По- дробная классифи- кация тестирова- ния»
{69}
Знание видов тестирования, твёрдое умение ис- пользовать техники и подходы к проектированию тестовых испытаний, умение создавать чек-листы и тест-кейсы, умение создавать отчёты о дефек- тах
Тестирование ин- терфейса пользо- вателя
Не требуется
Умение проводить тестирование интерфейса пользователя на основе готовых тестовых сцена- риев или в рамках исследовательского тестирова- ния
Исследователь- ское тестирова- ние
Общее умение использовать матрицы для быст- рого определения сценариев тестирования, об- щее умение проводить новые тесты на основе ре- зультатов только что выполненных
Интеграционное тестирование
Умение проводить интеграционное тестирование на основе готовых тестовых сценариев
Локализационное тестирование
Умение проводить локализационное тестирование на основе готовых тестовых сценариев
Инсталляционное тестирование
Умение проводить инсталляционное тестирование на основе готовых тестовых сценариев
Регрессионное те- стирование
Общее понимание принципов организации регрес- сионного тестирования, умение проводить регрес- сионное тестирование по готовым планам
Работа с отчётами о дефектах
Создание отчётов о дефектах
Этому вопросу по- священа глава «От- чёты о дефек- тах»
{167}
Твёрдое знание жизненного цикла отчёта об ошибке, твёрдое умение создавать отчёты о де- фектах согласно принятым шаблонам, умение анализировать готовые отчёты, обнаруживать и устранять имеющиеся в них недостатки
Анализ причин возникновения ошибки
Не требуется
Базовое умение исследовать приложение с целью выявления источника (причины) ошибки, элемен- тарное умение формировать рекомендации по устранению ошибки
Использование баг-трекинговых систем
Умение использовать баг-трекинговые системы на всех стадиях жизненного цикла отчётов о дефек- тах