<?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>Marcos Sousa's Blog &#187; Testes</title>
	<atom:link href="http://www.marcossousa.com/tag/testes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcossousa.com</link>
	<description>Blog sobre desenvolvimento de software</description>
	<lastBuildDate>Fri, 06 Jan 2012 15:31:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Testes, porque não fazer?</title>
		<link>http://www.marcossousa.com/2008/10/10/testes-porque-nao-fazer/</link>
		<comments>http://www.marcossousa.com/2008/10/10/testes-porque-nao-fazer/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 20:44:17 +0000</pubDate>
		<dc:creator>Marcos Sousa</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testes]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Waterfall]]></category>

		<guid isPermaLink="false">http://www.marcossousa.com/?p=121</guid>
		<description><![CDATA[Observando o comportamento em vários projetos, pude perceber que grande parte das pessoas não dão muito valor aos testes, e quando valorizam atribui a responsabilidade de testar a outras pessoas. As coisas ainda ficam piores quando chega a pequenas empresas. Pergunte ao dono da padaria que você toma café todos os dias, se eles testaram [...]]]></description>
			<content:encoded><![CDATA[<p>Observando o comportamento em vários projetos, pude perceber que grande parte das pessoas não dão muito valor aos testes, e quando valorizam atribui a responsabilidade de testar a outras pessoas. As coisas ainda ficam piores quando chega a pequenas empresas. Pergunte ao dono da padaria que você toma café todos os dias, se eles testaram alguma funcionalidade do software que eles tem antes de colocar em produção? Se a versão tiver algum problema e corromper os dados, a culpa sem sombra de dúvidas será do time de desenvolvimento.</p>
<p>O problema começa no modo como as pessoas projetam o software, dentro de um processo <a href="http://en.wikipedia.org/wiki/Waterfall_model">Waterfall</a>, onde cliente não é parte do processo. Neste contexto, o cliente diz o que deseja e depois de 9 meses ele tem um resultado: <a href="http://gc.blog.br/2007/06/08/como-produzir-software-coxa">um software produzido nas &#8220;coxas&#8221;</a>.</p>
<p>Mesmo em projetos onde existem práticas de testes, muitos deles ainda são ineficientes. O usuário apenas valida as &#8220;telinhas&#8221; do sistema, e muito pouco em termos funcionalidades. Infelizmente, poucos destes usuários testam o comportamento de entradas de dados inválidos, por exemplo, um campo de CPF aceitar &#8220;-1&#8243; como valor, ou um espaço em branco ser um conteúdo válido para um campo obrigatório. Como resultado, o sistema chega a produção, dados inconsistentes são inseridos e a culpa é do desenvolvedor.</p>
<p>Testes unitários é algo que muitos desenvolvedores ainda acham inútil, quando fala em integração contínua, aí acham exagero. Quer um exemplo, pergunte à um programador PHP se ele faz teste unitários. &#8220;Faço apenas sites, não sistemas, não preciso disso&#8221;, nem fazem idéia de que existe o <a href="http://www.phpunit.de">PHPUnit</a> para este propósito. Mesmo dentro de um obsoleto modelo cascata, cheio de casos de usos, porque não criar testes unitários pelo menos para validar os fluxos principais e alternativos? Pelo menos o fundamental pode ser controlado por um sistema de integração contínua.</p>
<p>Meu objetivo não é falar que práticas, como <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>, são perfeitas. O que eu quero chamar a atenção é importância que o teste tem dentro de um processo de desenvolvimento de software. Aparentemente, gastar algum tempo a mais fazendo testes, pode ser mais eficaz do que ter que corrigir uma falha que foi para produção por pura falta de atenção. Testar não é fácil e rápido, porém corrigir bugs <a href="http://blog.objectmentor.com/articles/2007/11/25/bugs-kill-productivity-and-schedule-accuracy">pode ser mais demorado ainda</a>. <img src='http://www.marcossousa.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcossousa.com/2008/10/10/testes-porque-nao-fazer/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

