Тестирование в автомобильной промышленности охватывает широкий диапазон — от тестирования процессоров или подушек безопасности до тестов подвески и скорости. В этой статье я хотел бы ограничиться только областью тестирования программного обеспечения. Поскольку автомобильная промышленность связана с программным обеспечением встроенных систем, тесты программного обеспечения часто проводятся на реальном оборудовании и в некотором смысле являются тестом электроники с загруженным программным обеспечением. Что может ожидать тестировщик программного обеспечения от своего проекта?
Все зависит от масштабов. Времена, когда автомобили Audi и Mercedes производились полностью в Германии, а автомобили Volvo только в Швеции, давно прошли. Из-за сложности автомобилей и стремления оптимизировать затраты и производственный процесс автомобильные концерны используют внешних субподрядчиков — как механики, так и электроники — и программное обеспечение. Поэтому (почти наверняка) вы будете работать не напрямую с производителем автомобилей, а с субпоставщиком, то есть производителем электроники с программным обеспечением или с производителем только программного обеспечения.
В зависимости от этого объем тестирования проекта может быть самым разным. С одной стороны, это могут быть только юнит-тесты, выполняемые 1-2 тестировщиками. С другой стороны, вы можем протестировать сложную систему на пяти уровнях тестирования группой из нескольких десятков тестировщиков. Итак, как нетрудно догадаться, навыки, необходимые тестировщику, различаются в зависимости от текущего проекта. Далее я объясню, как начать свое приключение в тестировании программного обеспечения в автомобильной промышленности.
Программирование в работе тестера
Какой язык программирования нужно знать? Любой. Когда вы начинаете приключение с тестирования программного обеспечения, вы не знаете, с каким проектом столкнетесь в определенной компании. Самое главное — понимать, что такое программирование, и знать основы языка. Если бы мне пришлось выбирать один язык — я бы выбрал C (или какую-то его производную). В автомобильной промышленности любят использовать этот язык, потому что он хорошо подходит для программирования встраиваемых устройств.
Будет ли чтение кода частью работы? Выполняя модульное тестирование — да. Более того, вы, скорее всего, будете писать свои тесты. Однако при тестировании на системном уровне вы не будете привязаны к коду, поэтому язык разработки тестов выбирается по другому критерию.
Сценарии
Рано или поздно у вас возникнет потребность написать сценарий. Может быть, вся тестовая среда будет написана на скриптовом языке, и этим языком будет заполнен каждый рабочий день. Или, может быть, вам нужно будет запрограммировать блок питания, сгенерировать тестовые данные или автоматизировать некоторые работы. Хорошо знать язык сценариев. Какой именно? Любой. Важно знать, как справиться с простой проблемой, которую нужно решить с помощью сценария.
На данный момент наиболее популярен Python, но также используются Perl, Tcl или Ruby — все зависит от компании и проекта. А если вам нужно сделать что-то только для себя, вы можете сделать собственный выбор.
Управление версиями
Отсутствие знаний о системах контроля версий не исключает автоматически вас как кандидата. С другой стороны, этот навык может принести очки: зная основы хотя бы одной системы контроля версий, вам будет намного легче войти в проект. Как и прежде, не имеет значения, с какой системой вы познакомитесь. Самым важным является то, что вы знаете, для чего нужны эти инструменты и как работать в команде из нескольких человек, чтобы вы могли разрабатывать свои тесты, не перезаписывая работу других людей.
Процессы и теория тестирования
Независимо от проекта и того, насколько динамичным он будет, в автомобильной промышленности невозможно избежать формальных процессов. Заказчики (производители автомобилей) ожидают, что программное обеспечение будет разрабатываться в соответствии с установленными процессами, и требуют того же от своих поставщиков. Основой по-прежнему является SPICE (точнее: ASPICE = Automotive SPICE) — процесс, основанный на традиционной модели V. Хорошей новостью является то, что этот процесс, естественно, соответствует самому популярному стандарту тестирования в мире — ISTQB. Зная теорию тестирования согласно ISTQB Foundation Level, найти SPICE несложно.
Требуется ли сертификат для начала работы? На младшем уровне — не нужно. Однако, если вы начнете работать в этой отрасли, ваш работодатель, скорее всего, организует для вас такое обучение в течение первого года. Если вы хотите, чтобы слово Junior было убрано из вашей должности, вам понадобится ISTQB. Знание объема ISTQB Foundation Level имеет еще одно преимущество: благодаря этому вы можете говорить на одном языке со своим работодателем во время собеседования или с коллегами во время работы.
Резюме
Требования к тестировщику программного обеспечения младшего уровня аналогичны требованиям для любой другой отрасли. Так что, если вы любите автомобили или интересуетесь встраиваемыми системами, попробовать стоит. Вполне возможно, что такая работа будет для вас интереснее, чем тестирование сайтов или банковских приложений. И если окажется, что формальные процессы тестирования или тестирование систем реального времени — не ваш интерес, вы всегда сможете изменить отрасль и поискать предложение тестировщика программного обеспечения в другом секторе.