Ищите идею тестирования / QA для проекта веб-приложения Python - PullRequest
1 голос
/ 10 июля 2009

Мне повезло в разработке и улучшении устаревшего веб-приложения на Python в течение почти 2 лет. Основным вкладом, который я считаю, я сделал введение использования юнит-теста, nosestest, pychecker и CI-сервера. Да, верно, все еще есть проект, который не имеет ни одного модульного теста (честно говоря, у него есть несколько тестов, но они не работают).

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

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

Я просто хочу знать, есть ли у кого-нибудь предложения о том, что я могу сделать для улучшения качества. Приложение использует WebWare 0.8.1, но я экспериментально перенес его на cherrypy, поэтому я могу потенциально использовать WSGI для проведения интеграционных тестов.

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

Нет ничего слишком дикого, пока это работает.

Ответы [ 5 ]

2 голосов
/ 10 июля 2009

Великолепная книга Пера - это первый ресурс, который я всегда рекомендую всем, кто находится в вашей ситуации (хотелось бы, чтобы он был у меня в руках, прежде чем я столкнулся с ним первые четыре раза или около того!) - не для Python, но много ОЧЕНЬ полезных советов общего назначения.

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

И последнее, но не менее важное: если у вас есть численность персонала и бюджет, чтобы нанять еще одного инженера, сделайте это, но убедитесь, что он или она «инженер-программист в тестировании», а НЕ теплое тело, стучащее в клавиатуру или мышь. для ручного «тестирования» - кто-то, кто тратит время на написание и интеграцию всевозможных автоматизированных подходов к тестированию, а не тратит свои дни на бесконечные повторения (если им повезет) одних и тех же последовательностей ручного тестирования !!!

Я не уверен, что вы думаете, что смешанный язык не купит вас с точки зрения качества. WSGI OTOH даст прекрасные узкие места / зацепки для использования в вашей будущей инфраструктуре интеграционных тестов - это хорошо (и для других вещей; -).

1 голос
/ 10 июля 2009

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

  • автоматически запускает и останавливает экземпляры браузера на основных платформах (linux, win32, macos)
  • тестирует, эмулируя действия пользователя на веб-страницах (нажатие, ввод), на основе Javascript
  • использует утверждения для поведенческих результатов (загружена новая веб-страница, содержащая текст, ...)
  • может записывать интерактивные тесты в Firefox
  • может управляться сценариями тестирования Python с использованием простого API связи и запуска на сервере координации (Selenium RC).
  • может работать с несколькими браузерами на одном или нескольких компьютерах

У него есть кривая обучения, но, в частности, архитектура сервера Selenium RC очень помогает в проведении автоматических тестов браузера.

1 голос
/ 10 июля 2009

Автоматическое тестирование представляется очень интересным подходом. Если вы разрабатываете веб-приложение, вас может заинтересовать WebDriver http://code.google.com/p/webdriver/

0 голосов
/ 10 июля 2009

Мало что может помочь так же, как тестирование.

Эти две цитаты действительно важны.

  • "сколько модульных тестов вы можете себе позволить написать."

  • «Время от времени все еще возникают неловкие ошибки»

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

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

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

Модульный тест - это постоянная профилактика дальнейших проблем.

0 голосов
/ 10 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...