Более глубокий взгляд на пункты контрольного списка решения проблем программиста

В моей статье о Контрольном списке для решения проблем программиста пункты контрольного списка получили лишь краткое упоминание. Здесь мы подробно рассмотрим каждый элемент, чтобы понять, почему мы делаем эти вещи. Это понимание ускорит решение ваших проблем и поможет вам преуспеть в написании автоматизированных сценариев. И, не забывайте медитировать, это отлично подходит для программистов и программирования.

В качестве напоминания, вот краткий контрольный список:

Решение проблем — быстрые и простые шаги

  1. Добавил ли я ведение журнала, чтобы увидеть, что делает скрипт на ключевых этапах?
  2. Действительно ли установлены мои переменные?
  3. Используют ли мои переменные и параметры правильный тип?
  4. Правильно ли идентифицированы мои сопоставленные объекты, над которыми я хочу выполнить действие?
  5. Использую ли я правильное свойство сопоставленного объекта?
  6. Мой скрипт автоматизации работает слишком быстро?

Решение проблем — более сложные шаги

  1. Что говорят документы скриптового языка или инструмента?
  2. Есть ли сообщество, посвященное моему языку или инструменту, и искал ли я ответы, связанные с моей проблемой, в сообществе?
  3. Проверил ли я общие учебники и сообщества, чтобы узнать, доступна ли там помощь?
  4. Я погуглил ответ?
  5. Есть ли в проекте другие скрипты автоматизации, которые делают то же самое?
  6. Это единственный способ сделать то, что я делаю?

Если вам интересно, что все это на самом деле означает и почему гуглите в расширенном разделе, продолжайте читать. Мы углубимся в причины ниже.

Подробный обзор быстрых и простых шагов контрольного списка

Ведение журнала

Добавление в журнал сообщений с подробностями о тесте сэкономит вам много часов головной боли. Это легко сделать, и через некоторое время вы начнете делать это заранее, изначально написав свой сценарий автоматизации, вместо того, чтобы ждать, пока не возникнет проблема. Вот несколько советов по ведению журнала:

Не забудьте включить значения переменных в сообщения журнала (на примере python logging).

import logging
logging.info("expense rpt total = " + varExpRptTotal)

Добавляйте сообщения журнала внутри условно вызываемого кода, например, операторы if, else и циклы.

import logging 
if varExpRptTotal > 1000:
  logging.info("expense rpt total gt 1,000")

ПРИМЕЧАНИЕ. Большинство, если не все, из этих сообщений журнала устранения неполадок следует удалить перед проверкой кода в прайм-тайм.

Переменные, переменные, переменные

Количество раз, когда я сталкивался с проблемами из-за того, что переменная не была установлена, слишком много, чтобы сосчитать. Обычно такие проблемы решаются с помощью ведения журнала, чтобы узнать, когда возникает проблема.

Типы переменных и параметров

Проблемы, связанные с типами данных, например, отправка значения Integer в переменную типа String, будут рассмотрены ниже.

Еще не решенный пример

import logging 
expectedExpenseRptTotal = 1000
actualExpenseRptTotal = mappedObject.ExpRptTotal 
##this mapped is a String when retrieved from the AUT
if expectedExpenseRptTotal == actualExpenseRptTotal: 
  logging.info("SUCCESS")
This check will fail because it will be comparing the following: 
1000 == "1000"

Пример решения проблемы

import logging 
expectedExpenseRptTotal = 1000
actualExpenseRptTotalFromScreen = mappedObject.ExpRptTotal 
actualExpenseRptTotal = int(actualExpenseRptTotalFromScreen)
if expectedExpenseRptTotal == actualExpenseRptTotal: 
  logging.info("SUCCESS")

Нанесенные на карту объекты могут быть подлыми

Сопоставленные объекты являются распространенным источником проблем при написании сценариев автоматизации. Если объект, с которым вы хотите, чтобы ваш сценарий автоматизации взаимодействовал, неправильно сопоставлен, ваш сценарий автоматизации будет обречен на провал.

Самый большой пример для рассмотрения — сопоставленные объекты с динамическими свойствами, которые также используются при идентификации.

В Интернете есть много хороших ресурсов для веб-тестирования. Также используйте свою команду и другие тесты, чтобы определить, как это было решено раньше.

Свойства сопоставленного объекта

Еще более подлым, чем сами сопоставленные объекты, являются свойства сопоставленного объекта. Рассмотрим изображение, например. У него может быть много свойств, с которыми скрипт автоматизации может взаимодействовать, например, источник (src), альтернативный текст (alt) или стиль.

<img src="smiley.gif" alt="HTML tutorial" style="width:42px;height:42px;">

Поскольку свойства могут быть установлены по-разному для разных объектов и могут изменяться по мере взаимодействия вашего сценария с системой, это одно из мест, где можно быстро проверить, использует ли ваш сценарий правильное свойство и правильное время.

Беги слишком быстро, и у тебя будут проблемы

Инструменты автоматизации обычно ждут объектов, но не так, как это делает человек. Если есть небольшая задержка, сценарий автоматизации может просто предположить, что что-то произошло, хотя этого еще не произошло.

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

Подробный обзор более сложных шагов контрольного списка

Проверьте документацию — язык или инструменты

Вы можете спросить, почему чтение является продвинутым навыком? Ну, это чтение на совершенно новом языке, что всегда сложно. Документация по языку или инструменту написания сценариев отлично подходит для автора этого языка или инструмента написания сценариев. Инструмент знают, язык знают, все нормально.

Для вас, туриста на этой новой земле, все может быть запутанным, и вы можете не понимать подсказки и знаки и не знать, какое направление лучше всего. Как начать использовать документацию по инструменту или языку, когда вы еще новичок?

  1. Начните с малого
  2. Дайте себе время
  3. Возьмите известную тему и сначала прочитайте об этой теме, например, о регистрации или добавлении ожиданий, которые очень похожи в разных инструментах.
  4. При переходе к новой или более сложной теме проверьте свое понимание с коллегой
  5. Делайте заметки о стиле документации, подходе и ярлыках, которые вы используете для быстрого поиска.
  6. Узнайте, какие термины хорошо работают в результатах поиска, а какие нет.

Используйте форумы, предоставляемые Language or Tool

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

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

Используйте общие форумы для вашего языка или инструмента

Если вы используете инструменты с открытым исходным кодом или языковые форумы в Интернете, вам также могут быть полезны. Здесь применимы те же примечания.

Материалы Google

Звучит здорово, правда? Звучит просто и быстро, правда?

Неправильный! Или, может быть как раз наоборот. Я погуглил множество задач по программированию, но обнаружил, что мне нужно вернуться к практикам медитации, прежде чем продолжить.

Я думаю, что основная проблема с гуглированием заключается в том, что это звучит просто. Я уже гуглил и нашел ближайший ресторан, насколько это сложно?

Это может быть очень сложно для вопросов разработки программного обеспечения. Вот две вещи, которые мне помогли.

  1. Изучите правильную формулировку для вашей проблемы. Сначала потребуется небольшое исследование по общей теме. Далее последовали многочисленные попытки подкорректировать фразировку, чтобы вместо типов питонов вы нашли полезную информацию.
  2. Дайте себе время — проблемы, которые вы решаете, сложны и требуют работы, поэтому само собой разумеется, что вам потребуется больше, чем быстрое сканирование, чтобы найти необходимую помощь.

Копирование из других скриптов автоматизации в проекте

Подождите — почему это более продвинуто? Никто не может скопировать и вставить. Это должно занять секунды. Понаблюдайте за собой, такой тип разговора может легко привести вас обратно к негативным шаблонам разговора с самим собой. Сделайте несколько глубоких вдохов, а затем давайте продолжим настоящее решение проблемы.

Почему это сложно? Я могу назвать несколько причин:

  1. Вы должны много знать о многих тестах, которые вы, вероятно, не писали.
  2. Вы должны быть в состоянии взвесить все «за» и «против» того, как вы планируете что-то делать, и то, как другие тесты делали подобные вещи.

Эти вещи выполнимы? Да, но они требуют времени. Итак, сделайте частью своего путешествия знакомство с другими скриптами автоматизации и тем, как они работают. Это поможет вам поддерживать сценарии и даст вам хорошие идеи при написании собственных сценариев автоматизации.

Я также рекомендую задавать вопросы коллегам, но будьте максимально конкретны в своих вопросах.

Я пытаюсь сделать этот определенный тип контрольно-пропускного пункта. Есть ли примеры того, как это делается в других тестах?

Это единственный способ делать что-то

Обычно — НЕТ! Есть несколько способов сделать что-то, и вы можете сосредоточиться только на одном из них. Почему вы сосредоточились на этом, потому что вы всегда делали это таким образом, или потому что вы на самом деле новичок и не знаете другого способа, или потому что вы не знали о новых возможностях в обновленном инструменте и т. д.

Независимо от того, как вы все делаете, бывают моменты, когда вам нужно отбросить свои предвзятые представления и вернуться к чертежной доске.

Я считаю, что дискуссии с коллегами здесь полезны, но это не единственный метод.

Если коллеги, форумы или онлайн-документация начинают вести вас по новому пути, требующему значительных изменений, ПРИНИМАЙТЕ его, хотя бы на время, и посмотрите, куда он вас приведет. Вы удивитесь, когда откроются новые варианты и возможности.

В заключение

Будьте волшебником решения проблем и воспользуйтесь возможностью развивать этот новый навык. Сделайте это, и достаточно скоро вы станете программистом автоматизации тестирования, на которого люди смотрят и о котором говорят.