<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Корчагин Станислав &#187; тестирование</title>
	<atom:link href="http://korchasa.ru/index.php/tag/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5/feed/" rel="self" type="application/rss+xml" />
	<link>http://korchasa.ru</link>
	<description>Разработка, тестирование, запуск</description>
	<lastBuildDate>Mon, 24 May 2010 23:28:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Функциональное тестирование (FunctionalTesting) и Web</title>
		<link>http://korchasa.ru/index.php/2007/10/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-functionaltesting-%d0%b8-web/</link>
		<comments>http://korchasa.ru/index.php/2007/10/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-functionaltesting-%d0%b8-web/#comments</comments>
		<pubDate>Mon, 15 Oct 2007 08:55:00 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=52</guid>
		<description><![CDATA[
 Функциональное тестирование &#8211; процесс, в ходе которого, готовая программа проверяется на соответствие требованиям того на чьи деньги мы пьем кофе. Главная задача функционального тестирования &#8211; говорить, либо “странно, но ты ничего не сломал”, либо “я так и знал, теперь чини”. 
Функциональное тестирование называют также тестированием “черного ящика”, то есть тесты, в идеале, не должны [...]]]></description>
			<content:encoded><![CDATA[<div class="level1">
<p> Функциональное тестирование &#8211; процесс, в ходе которого, готовая программа проверяется на соответствие требованиям того на чьи деньги мы пьем кофе. Главная задача функционального тестирования &#8211; говорить, либо “странно, но ты ничего не сломал”, либо “я так и знал, теперь чини”. </p>
<p>Функциональное тестирование называют также тестированием “черного ящика”, то есть тесты, в идеале, не должны ничего знать про тестируемую систему. Это позволит менять <del>разработчиков</del> архитектуру, язык приложения, базу данных. </p>
</p></div>
<div class="secedit">
<form class="button" method="post" action="/dokuwiki/doku.php">
<div class="no">
<input name="do" value="edit" type="hidden" />
<input name="lines" value="1-1074" type="hidden" />
<input name="rev" value="1192424360" type="hidden" />
<input name="id" value="приемочное_тестирование" type="hidden" /></div>
</form>
</div>
<h2><a name="функциональное_тестирование_и_веб" id="функциональное_тестирование_и_веб">Что тестировать?<br />
</a></h2>
<div class="level2">
<p> Функциональное тестирование для web-сайтов подразумевает эмуляцию работы конечного пользователя: открытие страниц, переход по ссылкам, заполнение и отправка форм, проверка значений полей форм, наличие определённого текста на страницах, получение почты, отправку файлов, а также попытки взлома, и кривизну рук. </p>
<p>Например, есть форма регистрации. Для каждого из заполняемых полей мы должны проверить все граничные условия, даже самые извращённые. В итоге получается по 2-3 проверки на поле. </p>
<ul>
<li class="level1">
<div class="li"> email (заполнен, соответствует паттерну, уникален на сайте)</div>
</li>
<li class="level1">
<div class="li"> пароль (заполнен, не содержит “нехороших” символов)</div>
</li>
<li class="level1">
<div class="li"> подтверждение пароля (заполнен, соответствует паролю)</div>
</li>
<li class="level1">
<div class="li"> псевдоним (заполнен, не содержит “нехороших” символов, уникален на сайте)</div>
</li>
</ul>
<p> После этого мы должны проверить, что нам пришло “правильное” письмо, не пришло неправильных.  </p>
<blockquote><div class="no"> Из за использования метода addRecipient(), вместо setRecipient(), у класса <a href="http://phpmailer.sourceforge.net/" class="urlextern" title="http://phpmailer.sourceforge.net/" rel="nofollow">PHPMailer</a>, мы однажды разослали 15 000 писем нашим пользователям. По 50-70 штук на каждую невинную жертву. Если бы тест проверял наличие лишних писем, то все бы было хорошо, а так &#8211; по башке получили. Хорошо хоть в спам-лист не попали.</div>
</blockquote>
<p> Часто функциональное тестирование выполняется специально натренированным человеком со стойкой психикой и любовью к механической работе. Его вооружают листочком с описанием теста и ограждают от окружающего мира, так как не понятно,  как он отнесётся к программисту, из-за ошибки которого, ему пришлось опять полностью обходить весь сайт. Ошибаться этот тестер не должен, так как если ошибка пройдет в релиз, ее увидят все, и время ее исправления будет зависеть от ее близости к основным пользовательским “маршрутам”. Такой подход с легкой руки сослуживца получил название <a href="http://korchasa.blogspot.com/2007/10/wiki.html" class="urlextern" title="http://korchasa.blogspot.com/2007/10/wiki.html" rel="nofollow">wiki-тестирование</a>. </p>
</div>
<h2><a name="при_помощи_чего_производится_функциональное_тестирование" id="при_помощи_чего_производится_функциональное_тестирование">Чем тестировать?<br />
</a></h2>
<div class="level2">
<p> Есть два больших лагеря продуктов для функционального тестирования: </p>
<ul>
<li class="level1">
<div class="li"> Эмуляторы браузера, написанные на языке высокого уровня: <a href="http://httpunit.sourceforge.net/" class="urlextern" title="http://httpunit.sourceforge.net/" rel="nofollow">httpUnit</a>, <a href="http://jwebunit.sourceforge.net/" class="urlextern" title="http://jwebunit.sourceforge.net/" rel="nofollow">JWebUnit</a>, <a href="http://www.lastcraft.com/web_tester_documentation.php" class="urlextern" title="http://www.lastcraft.com/web_tester_documentation.php" rel="nofollow">WebTester</a> из <a href="http://www.lastcraft.com/simple_test.php" class="urlextern" title="http://www.lastcraft.com/simple_test.php" rel="nofollow">SimpleTest</a></div>
</li>
<li class="level1">
<div class="li"> Продукты использующие <acronym title="Application Programming Interface">API</acronym> браузера (например через JavaScript), и и управляющие его поведением: <a href="http://openqa.org/watir/" class="urlextern" title="http://openqa.org/watir/" rel="nofollow">Watir</a> и <a href="http://openqa.org/selenium/" class="urlextern" title="http://openqa.org/selenium/" rel="nofollow">Selenium</a> </div>
</li>
</ul>
<p> Первые немного ущербны даже идеологически, так как браузер это неотъемлемая часть веб-приложений. <span style="font-size:100%;">То есть то, что тесты проходят, совершенно не гарантирует, что приложение будет работать у конечных пользователей.</span> Но их высокая скорость позволяет использовать их для простых задач, типа определения “битых” ссылок. </p>
<p>Среди вторых хочется отметить Selenium, который уже стал стандартом де факто, для автоматизации функционального тестирования веб-приложений, ибо: </p>
<ul>
<li class="level1">
<div class="li"> для описания тестов используется <acronym title="HyperText Markup Language">HTML</acronym></div>
</li>
<li class="level1">
<div class="li"> поддерживаются все популярные браузеры</div>
</li>
<li class="level1">
<div class="li"> распространяется под лицензией <a href="http://www.apache.org/licenses/LICENSE-2.0" class="urlextern" title="http://www.apache.org/licenses/LICENSE-2.0" rel="nofollow">Apache 2</a></div>
</li>
<li class="level1">
<div class="li"> начинался проект под патронажем ThoughtWorks, владельцем которой является, некто, Мартин Фаулер</div>
</li>
</ul>
<p>   Продолжение следует&#8230;
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2007/10/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-functionaltesting-%d0%b8-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
