Как получить максимальную отдачу от ручного тестирования - PullRequest
5 голосов
/ 08 октября 2008

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

Ответы [ 14 ]

6 голосов
/ 08 октября 2008

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

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

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

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

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

6 голосов
/ 08 октября 2008

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

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

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

4 голосов
/ 09 октября 2008

Во время планирования:

  • Потратьте время на понимание функциональных спецификаций или запросов на изменение для вашей назначенной области. Ваши знания в области программирования дают вам преимущество.
  • Вопрос о противоречиях и дырах. Надеюсь, у вас есть доступ к документации по дизайну, пока идет разработка. Я часто выявлял проблемы в продукте до начала тестирования, задавая вопросы по нечетким проектным документам.
  • Продумайте все граничные случаи, негативные условия и комбинации условий. Если есть сомнения, работайте с развитием. Вам не нужно знать фактический код, который они используют, но ваш опыт программирования поможет вам написать модель сквозного тестирования.
  • Не беспокойтесь об автоматизации. Каждый новый тестер приходит и видит сотни способов улучшить тестирование, автоматизация обычно занимает первое место в списке. Единственное, что должно быть автоматизировано для тестирования черного ящика, это некоторая настройка теста, если это трудоемкое действие, не связанное с тестируемой функцией. (Например, автоматическое создание 20 курсов в системе управления обучением (LMS) для тестирования сценариев самостоятельной регистрации. Создание курса не является целью, поэтому желательно сэкономить несколько часов бездумной работы.) Можно спросить об автоматизации, но не думайте, что вы первым об этом думаете.

Во время тестирования:

  • Пишите четкие подробные отчеты об ошибках. Подумайте обо всей информации, которая вам понадобится, если кто-то обнаружит ошибку в вашем коде. Разбейте проблему на малейшие конкретные действия, которые последовательно разбивают ее. Включите шаги для воссоздания и примеры ваших тестовых данных.
  • Когда вы обнаружите проблему, попробуйте сузить ее, протестировав альтернативы сломанной функции. (Простой пример: в браузерном продукте вы получаете сообщение об ошибке при закрытии диалогового окна с помощью кнопки закрытия. У вас также появляется ошибка при закрытии с помощью кнопки закрытия окна (X)? Каким бы ни был ответ, включите его в ошибку). отчет.
  • Будь милым. Тестеры и программисты в одной команде. Если разработчик кажется идиотом, который не понимает ничего, что вы говорите, сделайте резервную копию и предположите, что вы тот, кто не понимает. Это избавляет от многих страданий и быстро меняет ваше отношение. Легче общаться, когда ты скромный и обучаемый.
4 голосов
/ 08 октября 2008

Попробуй сломать как кодер :) 1001 *

Sql Injection, Script инъекций и т. Д., И т. Д. :) Это должно сделать это смешнее:)

3 голосов
/ 08 октября 2008

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

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

2 голосов
/ 08 октября 2008

Вы можете:

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

  • Научитесь правильно сообщать о технических проблемах. Чтобы написать хороший подробный отчет об ошибке, нужно много умений.

  • Научитесь мыслить с точки зрения предельных случаев и искаженного использования системы. Это заставит вас писать лучшие юнит-тесты позже.

Я искренне верю, что все программисты, в том числе старшие, должны каждый год проводить некоторое время, проводя ручное тестирование, хотя бы для того, чтобы посмотреть на вещи с другой точки зрения и получить некоторое уважение к тестерам, с которыми они работают (и я выразил на практике сам)

2 голосов
/ 08 октября 2008

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

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

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

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

Кроме того, попробуйте связаться с разработчиками после сообщения об ошибке, чтобы попытаться получить больше информации о первопричине проблемы, о том, как они ее исправили, и как это повлияло на проект. Только будьте осторожны с этим: программисты и тестировщики QA имеют тенденцию иметь неблагоприятные отношения. Им не понравится, когда вы скажете им, что они не работают, особенно старшие. Убедитесь, что они знают, что вы пытаетесь извлечь из этого урок, а не критиковать. Если возможно, выберите «наставника» из числа разработчиков, чтобы помочь с этой частью. Таким образом, у вас будет один главный контакт, который ожидает такого рода разговоров с вами.

Главное, что вы можете получить из этого кооператива, это посмотреть, как осуществляется разработка программного обеспечения в реальном мире. С вашего места в качестве тестировщика вы получите возможность увидеть больше «большой картины», чем вы, как разработчик начального уровня, что очень хорошо, когда вы только начинаете.

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

Удачи.

2 голосов
/ 08 октября 2008

Может быть, вы можете попробовать автоматизировать некоторые тесты?

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

Напишите несколько сценариев регрессии, которые будут сравнивать выходные данные предыдущей версии с выходными данными тестируемой версии.

1 голос
/ 08 октября 2008

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

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

1 голос
/ 08 октября 2008

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

Просто следите за эго и осторожно наступайте, когда найдете их.

...