Построение успешной стратегии тестирования


PDF версия

В статье проводится обзор существующих на сегодняшний день методов структурного и функционального тестирования плат, и излагаются методы построения надежной тестовой стратегии предприятия на их основе. Рассматривается мировой опыт и история тестирования. Автор освещает преимущества и недостатки каждого из подходов к тестированию и ремонту собранных печатных плат и формулирует общие решения в построении тестовой стратегии, которые помогут сократить инвестиции, трудозатраты, и сроки выпуска готовой работоспособной продукции.

Во всем мире директора по производству и начальники участков постоянно сетуют на потери времени, уходящего на то, чтобы получить из собранной платы продукт, годный к отправке заказчику. Чаще всего задержки происходят тогда, когда некорректно работающие изделия приходится неоправданно долго тестировать и ремонтировать, и, более того, их зачастую отправляют обратно к разработчикам всего лишь для того, чтобы те нашли самые обычные производственные дефекты.
То, в чем мы должны разобраться на самом деле, — это цель Производства, как такового, и цель Тестирования изделий на производстве.
Если рассматривать производство глобально, то основное его предназначение — отгрузить как можно большее количество изделий с минимальными затратами, в как можно более короткие сроки и с наилучшим качеством. В рамках выполнения этой задачи тестирование изделий должно контролировать стабильность производственного процесса, обеспечивать максимальную производительность, предотвращать «дорогостоящую» браковку изделий и гарантировать хорошую репутацию предприятия в области качества перед заказчиками.
Собираясь спланировать систему тестирования, неплохо взглянуть также на то, почему же изделия производятся с дефектами. На самом деле, существуют 3 основные причины, почему произведенный продукт не работает: низкокачественные технологические материалы, неграмотная разработка или проблемы с производством.
Причины возникновения производственных проблем, в свою очередь, могут быть разбиты на 3 ключевых направления: изменения в технологическом процессе, неэффективность производства или отсутствие контроля.
Итак, основной вопрос, который стоит перед нами — как мы тестируем? Этот вопрос обязательно идет вместе со следующими: «что» мы должны тестировать, «где» и сколько это стоит? Здесь может быть несколько вариантов выбора и все они зависят от сложности выпускаемого продукта: тестирование компонентов перед установкой, автоматическая или ручная оптическая инспекция для проверки правильности установки, структурное тестирование электрических соединений с последующим динамическим тестом для окончательной проверки того, что все работает так, как должно.
При выборе тестового метода необходимо принять во внимание несколько соображений. В первую очередь, необходимо обеспечить разграничение между тестами, которые выполняются как часть процесса отработки (верификации) изделия, и последующими производственными тестами. Как всегда, нужно учитывать сложность и стоимость тестовой сис­темы.
В общем, понятно, что верификация изделия должна быть очень тщательной, проверяя каждый аспект разработки для получения твердой уверенности, что и аппаратное ПО, и «железо» работают слаженно во всех режимах.
Однако когда дело доходит до производственного тестирования, мы должны проверять уже правильность сборки продукта. Это означает, что мы не должны тестировать аппаратное ПО или искать ошибки проектирования. Тесты должны быть надежными и быстрыми насколько это возможно. Функциональная проверка должна быть ограничена до верификации качества продукта, отправляемого заказчику.
Производственное тестирование может быть разбито на две составляющие — выполнение структурного, а затем и функционального теста. Если тестируемая плата является частью сборки, то, в дополнение, добавляется окончательный тест всей системы (блока).
Взглянем на стоимость и результативность того и другого метода. Структурный тест может быть выполнен различными способами. Основные структурные методы тестирования — это автоматическая оптическая инспекция, внутрисхемный тест, рентгеновский контроль и граничное сканирование JTAG.
Структурное тестирование направлено на поиск дефектов технологического процесса и может выполняться как с включением питания платы, так и без него. Основное преимущество структурного теста заключается в том, что тесты могут генерироваться автоматически интеллектуальными системами. Они не зависят от конечных функций производимого изделия, таким образом, не требуется его глубокое знание. В дополнение, одним из преимуществ является возможность точной диагностики для локализации производственных дефектов. Диагностика становится настолько точной, что она указывает, какой компонент неисправен, где находится разрыв цепи и где — короткое замыкание. Такая точность означает, что отпадает необходимость привлекать разработчиков для поиска дефектов производства.
Функциональный тест используется для проверки того, что изделие соответствует своим характеристикам. Такие тесты очень специфичны для каждого продукта и для их правильного функционирования требуется глубокое знание проекта. Кроме того, функциональные тесты могут только «проходить» или «не проходить» без локализации конкретных дефектов, в результате чего образуется так называемая «груда костей» — склад неработающих плат, ожидающих прихода инженера-разработчика для определения причин отказа.
Реальная цена тестирования на разных стадиях может быть выражена в виде денежной модели. Это было показано Брэнданом Дэвисом (Brendan Davies) еще в 1982 году в книге «Экономика Автоматического Тестирования» (Economics of Automated Testing). В своей модели автор вывел так называемое «Правило десяти». Это правило наглядно показывает, что по мере продвижения от одного производственного этапа к другому цена нахождения дефекта увеличивается примерно в 10 раз. Так, для нахождения дефектного компонента при входном контроле цена всего тестирования будет иметь мультиплицирующий коэффициент, равный 1. При нахождении того же самого дефекта на уровне структурного тестирования, цена умножается на 10. Далее — нахождение дефекта на уровне функционального теста будет иметь ценовой коэффициент, равный 100. Определение дефекта при тестировании целой системы или законченного блока умножает цену на 1 000. Если дефект проявил себя уже у заказчика изделия, коэффициент будет равен 10 000. Хотя последний случай может иметь более значительные последствия — заказчик вправе перестать покупать ваш продукт навсегда. Вывод прост — ошибки должны обнаруживаться на самых ранних стадиях.
Большинство ошибок, находимых в процессе производственного тестирования в сегодняшней электронной индустрии являются следствием проблем с пайкой.
Диаграмма на рисунке 1 показывает спектр распределения типичных дефектов для среднего производителя стандартного электронного оборудования. Вполне очевидно, что преобладающими являются проблемы пайки. Например, слишком много паяльной пасты может привести к коротким замыканиям, а слишком мало — к обрывам электрических цепей. Общая тестовая стратегия должна стремиться найти эти дефекты по возможности на самых ранних стадиях.

Рис. 1. Спектр распределения типичных производственных дефектов

Исторически сложилось так, что лучшим методом для нахождения структурных проблем оказался внутрисхемный тест. Данные виды тестирования используются с середины 1970-х годов. Более крупные и быстрые машины с улучшенной диагностикой появились в начале 1980-х годов.
Однако в течение последующих десятилетий увеличение сложности электронных изделий, уменьшение их размеров и внедрение технологии поверхностного монтажа привело к потере физического доступа к поверхности проводников, который требуется для выполнения внутрисхемного тестирования.
Из-за данных ограничений в 1985  году была создана рабочая группа под названием «Joint Test Action Group» (JTAG), целью которой было решение проблем тестового доступа. Результатом изысканий группы явился стандарт IEEE 1149.1 (JTAG), утвержденный в 1990 году.
Из стандарта следует, что вместо физических тестовых точек для доступа к электрическим цепям на плате цифровые тестовые сигналы могут быть напрямую выставлены и считаны при помощи самих кристаллов микросхем, установленных на плате, через контакты TDI и TDO. TAP-контроллер определяет, что и куда нужно записывать и считывать. Более подробную информацию можно получить на сайте JTAG Technologies в России www.jtag-technologies.ru или обратившись в офис JTAG Technologies.
Итак, мы перечислили некоторое количество тестовых методов, которые могут иметь природу как структурного, так и функционального теста. Теперь мы должны обсудить и решить, какова из стратегий заслуживает того, чтобы ее применить.
Разработку тестовой стратегии для продукта, будь он уже серийным продуктом, производимым давным-давно, или новой разработкой, ни в коем случае нельзя воспринимать легкомысленно. Существует несколько аспектов, которые необходимо принять во внимание, и далее мы рассмотрим некоторые из них.
Первое соображение — это общая тестовая стратегия для всего жизненного цикла изделия. Должны ли одни и те же тесты быть «многоразовыми» и использоваться, начиная с отделов разработки, затем — на серийном производстве, и даже при сервисном обслуживании?
Несколько другими, в отличие от выбора используемых техник тестирования, являются соображения насчет «одновременного инжиниринга» и вопросов проектирования. Могу ли я установить тестовые точки на плате без вреда частотным характеристикам схемы? Достаточно ли у меня места на плате для этого? Каковы сроки выхода продукции на рынок? Нужен ли мне быстрый или надежный метод? Где я собираюсь производить продукт? Если это будет не в моем здании, что делать, если там находится много неработающих плат?
Кто решает эти вопросы? Это зависит, конечно же, в большой степени от размера и структуры предприятия. Если это довольно маленькая компания, то такие решения, возможно, принимаются инженером-разработчиком. Однако это может быть стратегически некорректно, в особенности, если продукция производится и тестируется у контрактного производителя.
Обычно в большинстве западных компаний, где имеются собственные подразделения разработчиков, среди последних присутствует специалист, называемый «тест-инженер», основная функция которого — определять наилучшие тестовые методы для использования, а впоследствии разрабатывать сами тесты для того, чтобы удовлетворить запросы производства и разработки.
Данная статья представила лишь несколько аспектов, отвечающих на вопрос: «Почему мы должны тестировать», а также где и как это делать. Мы всем настоятельно рекомендуем более глубоко изучить материалы по каждому из тестовых методов, рассмотренных здесь, прежде чем приходить к окончательным решениям по использованию того или иного вида. «Правило десяти» — хорошая концепция для примерной оценки стоимости тестирования на каждой стадии производства и нарастающей стоимости тестирования на следующих друг за другом участках производственной линии.
Проводя исследования, касающиеся стоимости тех или иных методов, желательно рассмотреть дополнительные человеко-часы, которые тратятся на программирование, когда не приобретено оборудование, автоматизирующее данный процесс.
И последняя рекомендация организаторам производства: обязательно рассматривайте возможность привлечения специалиста, который будет определять оптимальные тестовые стратегии с наименьшей совокупной ценой. В принципе, это отдельная должность, необходимость в которой неминуемо возникнет в будущем.

Мик Остин, региональный менеджер по Восточной Европе компании JTAG Technologies (Нидерланды), работает в тестовой индустрии более 25 лет.
В прошлом работал в компании Tellabs (Финляндия), занимаясь организацией тестирования продукции и координируя новые разработки, кроме того, был занят в тестировании авиационной техники и первых коммерчески-доступных персональных компьютеров. Одна из специализаций — консалтинг в области построения оптимальных тестовых стратегий.
Активный участник и организатор многих международных конференций, посвященных тестированию, таких как Nordic Test Forum, East-West Design and Test Symposium и т.д.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *