Автоматическое тестирование на веб-проекты

Это будет отлично работать, если вы сделаете что-то вроде этого:

webView.setBackgroundColor(Color.TRANSPARENT);
webView.setBackgroundResource(R.drawable.your_image);
8
задан Artem Barger 3 June 2009 в 18:40
поделиться

6 ответов

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

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

Взаимодействие с пользователем ничем не отличается. Есть определенные вещи, которые пользователи будут пытаться делать, патологические или нет, и вы можете их предвидеть. Пользователи просто вводят исключительно творческие данные. Вы обнаружите, что программисты часто упускают одни и те же условия снова и снова. Я веду контрольный список. Например: закачать Unicode во все; поставить дату начала после даты окончания; вводить бредовые данные; ставить метки во все; оставьте завершающую новую строку; попробуйте дважды ввести одни и те же данные; отправьте форму, вернитесь и отправьте еще раз; возьмите текстовый файл, назовите его foo.jpg и попробуйте загрузить его как картинку. Вы даже можете написать программу для случайного переключения переключателей и кнопок, плохая обезьяна, которая найдет всевозможные забавные ошибки.

Часто это так же просто, как усадить кого-то, кто не знаком с программой, и посмотреть, как он ее использует . Боритесь с желанием исправить их, просто наблюдайте, как они барахтаются. Это очень познавательно. Стив Круг называет это «Расширенный здравый смысл» и написал отличную книгу под названием «Не заставляйте меня думать», в которой рассматривается дешевое и простое тестирование взаимодействия с пользователем. Я очень рекомендую это. Это очень короткое и открывающее глаза чтение.

Наконец, сами клиенты, если их ожидания должным образом подготовлены, могут стать фантастическим набором тестов. Убедитесь, что они понимают, что это незавершенная работа, что в ней будут ошибки, что они помогают сделать свой продукт лучше и что его категорически не следует использовать для производственных данных, и позвольте им повозиться с предварительными версиями ваш продукт. Они будут делать все, о чем вы даже не догадывались! Это будет лучшее и самое реалистичное тестирование, которое вы когда-либо проходили, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

что в нем будут ошибки, что они помогают сделать свой продукт лучше, и что его категорически не следует использовать для производственных данных, и что они позволяют им возиться с предварительными версиями вашего продукта. Они будут делать все, о чем вы даже не догадывались! Это будет лучшее и самое реалистичное тестирование, которое вы когда-либо проходили, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

что в нем будут ошибки, что они помогают сделать свой продукт лучше, и что его категорически не следует использовать для производственных данных, и что они позволяют им возиться с предварительными версиями вашего продукта. Они будут делать все, о чем вы даже не догадывались! Это будет лучшее и самое реалистичное тестирование, которое вы когда-либо проходили, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

и что его категорически не следует использовать для производственных данных, и пусть они возятся с предварительными версиями вашего продукта. Они будут делать все, о чем вы даже не догадывались! Это будет лучшее и самое реалистичное тестирование, которое вы когда-либо проходили, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

и что его категорически не следует использовать для производственных данных, и пусть они возятся с предварительными версиями вашего продукта. Они будут делать все, о чем вы даже не догадывались! Это будет лучшее и самое реалистичное тестирование, которое вы когда-либо проходили, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

Это будет лучшее и самое реалистичное тестирование, которое у вас когда-либо было, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

Это будет лучшее и самое реалистичное тестирование, которое у вас когда-либо было, БЕСПЛАТНО! Предоставьте им очень простой способ сообщать об ошибках, желательно всего одну кнопку прямо в приложении, которое автоматически отправляет их среду и историю; окно обратной связи на Hiveminder является отличным примером. Отвечайте на их ошибки быстро и вежливо (даже если это просто «спасибо за информацию»), и вы обнаружите, что они будут рады, что вы так отзывчивы к их потребностям!

2
ответ дан 5 December 2019 в 13:01
поделиться

У Selenium есть хорошая среда для веб-тестирования

http://seleniumhq.org/

Telerik также разрабатывает платформу для тестирования веб-приложений.

http: //www.telerik.com/products/web-ui-test-studio.aspx

4
ответ дан 5 December 2019 в 13:01
поделиться

Да, это так. На этой неделе у меня возникла проблема с веб-сайтом, над которым я работаю. Я недавно отключил уровень доступа к данным и настроил модульные тесты для своих контроллеров и репозиториев, но не для взаимодействия с пользовательским интерфейсом.

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

2
ответ дан 5 December 2019 в 13:01
поделиться

If you're writing a lot of Javascript, there have been a lot of JS testing frameworks that have come around the block recently for unit testing your Javascript.

Other than that, testing the web tier using something like Canoo, HtmlUnit, Selenium, etc. is more a functional or integration test than a unit test. These can be hard to maintain if you have the UI change a lot, but they can really come in handy. Recording Selenium tests is easy and something you could probably get other people (testers) to help you create and maintain. Just know that there is a cost associated with maintaining tests, and it needs to be balanced out.

There are other types of testing that are great for the web tier - fuzz testing especially, but a lot of the good options are commercial tools. One that is open source and plugs into Rails is called Tarantula. Having something like that at the web tier is a nice to have run in a continuous integration process and doesn't require much in the form of maintenance.

2
ответ дан 5 December 2019 в 13:01
поделиться

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

2
ответ дан 5 December 2019 в 13:01
поделиться

Модульные тесты имеют смысл в процессе TDD. Они не имеют особой ценности, если вы не занимаетесь разработкой сначала тестированием. Однако приемочные испытания имеют большое значение для качества программного обеспечения. Я бы сказал, что приемочные испытания - это святой Грааль разработки. Приемочные испытания показывают, удовлетворяет ли приложение требованиям. Как мне узнать, когда следует прекратить разработку этой функции - только когда все мои приемочные испытания пройдут. Автоматизация приемочного тестирования - важная вещь, потому что мне не нужно делать все вручную каждый раз, когда я вношу изменения в приложение. После месяцев разработки могут быть сотни тестов, и становится невозможным (а иногда и невозможным) запускать все тесты вручную. Тогда как мне узнать, работает ли мое приложение?

Автоматизация приемочных испытаний может быть реализована с использованием тестовых фреймворков xUnit, что вносит здесь путаницу. Если я создаю приемочный тест с использованием phpUnit или httpUnit, будет ли это модульный тест? Мой ответ - нет. Неважно, какой инструмент я использую для создания и запуска теста. Приемочный тест - это тот, который показывает, соответствуют ли функции требованиям IAW. Модульный тест показывает, соответствует ли класс (или функция) идее реализации разработчика. Модульный тест не имеет значения для клиента (пользователя). Приемочное тестирование имеет большую ценность для клиента (и, следовательно, для разработчика, помните Привязанность к клиенту )

Поэтому я настоятельно рекомендую создавать автоматические приемочные тесты для веб-приложения.

Хорошими фреймворками для приемочного теста являются:

  • Sahi (sahi.co.in)
  • Silenium
  • Simpletest (я не фреймворк модульного тестирования для php, но включает объект браузера, который может использоваться для приемочных испытаний).

Однако

Вы упомянули, что веб-сайт полностью посвящен взаимодействию с пользователем, и поэтому автоматизация тестирования не решит всей проблемы удобства использования. Например: структура тестирования показывает, что все тесты проходят, однако пользователь не может видеть форму, ссылку или другой элемент страницы из-за случайного style = "display: none" в div . Автоматические тесты проходят, потому что в документе присутствует div , и среда тестирования может его «видеть». Но пользователь не может. И ручное тестирование не пройдет.

Таким образом, все веб-приложения нуждаются в ручном тестировании. Автоматическое тестирование может значительно снизить нагрузку на тестирование (80%), но ручное тестирование также важно для качества конечного программного обеспечения.

Что касается модульного тестирования и TDD - это делает код качественным. Это выгодно для разработчиков и для будущего проекта (т.е. для проектов продолжительностью более пары месяцев). Однако TDD требует навыков. Если есть навык - используйте его. Если вы не думаете о приобретении навыка, но помните о времени, которое потребуется для его приобретения. Обычно создание хороших модульных тестов и кода занимает от 3 до 6 месяцев. Если ваш проект продлится больше года, я рекомендую изучить TDD и потратить время на правильную среду разработки.

Я рекомендую изучить TDD и потратить время на правильную среду разработки.

Я рекомендую изучить TDD и потратить время на правильную среду разработки.

1
ответ дан 5 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: