<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7411919440747969353</id><updated>2011-11-27T23:07:32.394-02:00</updated><category term='Teste Ágil'/><category term='Rotatividade de Equipes'/><category term='Perguntas e Respostas'/><category term='Geral'/><category term='Scrum'/><category term='Gerenciamento de Riscos'/><category term='Execução de Teste'/><category term='Estimativa'/><category term='Relatórios de Teste'/><category term='Papéis e Responsabilidades'/><category term='Design de Teste'/><category term='Palestra'/><category term='Visual Studio Team System'/><category term='CheckList'/><category term='Requisitos'/><category term='Templates'/><title type='text'>Falando em Teste e Qualidade de Software</title><subtitle type='html'>&lt;i&gt;Se você deseja garantir a qualidade do seu projeto, seja ele pequeno, médio ou grande, não terá outra alternativa a não ser TESTÁ-lo !!!
&lt;br&gt;
Se você não quer ter sua imagem prejudicada junto ao cliente, então garanta a qualidade do produto que está sendo entregue, mesmo sendo um projeto pequeno e simples.
&lt;/i&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-351579956892175684</id><published>2010-01-06T22:06:00.001-02:00</published><updated>2010-01-06T22:06:22.168-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Execução de Teste'/><category scheme='http://www.blogger.com/atom/ns#' term='Teste Ágil'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Team System'/><title type='text'>VSTS – Visual Studio Team System para Testadores – Unit Test</title><content type='html'>&lt;p align="justify"&gt;Após o primeiro post sobre o &lt;a href="http://gustavoquezada.blogspot.com/2009/12/vsts-visual-studio-team-system-para.html"&gt;VSTS – Visual Studio Team System para Testadores – Introdução&lt;/a&gt; vamos dar continuidade falando um pouco sobre teste unitário no VSTS.&lt;/p&gt;  &lt;p align="justify"&gt;O título desse post fala que é para Testadores, mas se você é um Desenvolvedor de software e não faz Unit Test, está mais do que na hora de começar a fazê-los. Dizem que propaganda é a alma do negócio, certo? Eu digo que Qualidade é o coração do sistema. Não pense que testar é responsabilidade única e exclusiva dos testadores.&lt;/p&gt;  &lt;p align="justify"&gt;O teste unitário (Unit Test) ou de unidade é um tipo de teste que foca na verificação da menor unidade do projeto de software. É realizado o teste de uma unidade lógica, com uso de dados suficientes para se testar apenas a lógica da unidade em questão. Um exemplo em sistemas desenvolvidos em linguagens orientadas a objetos, como C# e Java, essa unidade pode ser identificada como um método, uma classe ou mesmo um objeto.&lt;/p&gt;  &lt;p align="justify"&gt;Podemos dizer que este tipo de teste foca na arquitetura do sistema e é de responsabilidade do próprio desenvolvedor criar esses testes em tempo de implementação do sistema, isto é, após codificar uma classe, por exemplo, ele planeja, codifica e executa o teste de unidade.&lt;/p&gt;  &lt;p align="justify"&gt;Em resumo, um teste unitário executa um método individualmente e compara uma saída conhecida após o processamento da mesma.&lt;/p&gt;  &lt;p align="justify"&gt;Considero o teste unitário o principal teste na cadeia de teste e que vai garantir que o código que foi desenvolvido para o sistema em questão tenha “qualidade”. Claro que todos os outros testes da cadeia são extremamente importante, mas como o teste unitário está no início da cadeia, devemos fazer a coisa certa desde o início.&lt;/p&gt;  &lt;p align="justify"&gt;Para vocês verificarem como o teste unitário é importante, basta olhar no &lt;strong&gt;Modelo V&lt;/strong&gt; de desenvolvimento, esse teste é o primeiro da cadeia. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_w_FcR0ncuFs/S0UlSHxJeLI/AAAAAAAADDk/WJnpxiseaf4/s1600-h/VSTS_002_01_Modelo_V4.png" target="_blank"&gt;&lt;img title="Modelo V" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="192" alt="Modelo V" src="http://lh5.ggpht.com/_w_FcR0ncuFs/S0UlTKanUtI/AAAAAAAADDs/nWyaDASMm0I/VSTS_002_01_Modelo_V_thumb2.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Se observamos o &lt;strong&gt;Agile Testing Quadrants [1]&lt;/strong&gt; iremos constatar que o Q1, ou seja, primeiro quadrante tem o nosso bom e velho amigo Teste Unitário.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_w_FcR0ncuFs/S0UlUG9WQ2I/AAAAAAAADDw/_iU1Mugn1Yw/s1600-h/VSTS_002_02_AgileTestingQuadrants3.png" target="_blank"&gt;&lt;img title="Agile Testing Quadrants" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="192" alt="Agile Testing Quadrants" src="http://lh5.ggpht.com/_w_FcR0ncuFs/S0UlUj8NL8I/AAAAAAAADD0/S3P_BTSPJfg/VSTS_002_02_AgileTestingQuadrants_th.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;strong&gt;Q1 &lt;/strong&gt;– São os testes que focam na arquitetura. A responsabilidade é dos desenvolvedores e os analistas de teste auxiliam na elaboração dos testes unitários automáticos&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;strong&gt;Q2 &lt;/strong&gt;– São os testes que focam no negócio. A responsabilidade é dos analistas de teste em conjunto com outros envolvidos no projeto(clientes, usuários, etc..). Ajuda no entendimento das funcionalidades&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;strong&gt;Q3 &lt;/strong&gt;– São os testes que focam no negócio e encontrar defeitos. A responsabilidade é dos analistas de teste&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;strong&gt;Q4 &lt;/strong&gt;– São os testes que focam na arquitetura, estrutura do software. A responsabilidade é dos analistas de teste&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Bem, agora que já falamos um pouco sobre teste unitário vamos colocar a mão na massa. Para isso, vamos criar um novo projeto &lt;em&gt;&lt;u&gt;Class Library&lt;/u&gt;&lt;/em&gt; como exemplo chamado &lt;strong&gt;Text Validation&lt;/strong&gt; na nossa Solution. Para fazer isso bastar &lt;em&gt;&lt;u&gt;clicar com o botão direito na Solution&lt;/u&gt;&lt;/em&gt;, acessar o menu &lt;em&gt;&lt;u&gt;Add / New Project&lt;/u&gt;&lt;/em&gt;. Na parte esquerda da tela selecionar a opção &lt;em&gt;&lt;u&gt;Visual C#&lt;/u&gt;&lt;/em&gt; como Project types e na parte direita da tela selecionar &lt;em&gt;&lt;u&gt;Class Library &lt;/u&gt;&lt;/em&gt;como Template. Feito isso, basta digitar o nome &lt;em&gt;&lt;u&gt;Text Validation &lt;/u&gt;&lt;/em&gt;no campo &lt;em&gt;&lt;u&gt;Name &lt;/u&gt;&lt;/em&gt;e confirmar a operação pressionando o botão &lt;em&gt;&lt;u&gt;OK&lt;/u&gt;&lt;/em&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;A idéia é utilizar essa Class Library como o projeto que será aplicado o teste unitário.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_w_FcR0ncuFs/S0UlVbMKu-I/AAAAAAAADD4/3_QAm1SEtFI/s1600-h/VSTS_002_03_AddNewClassLibrary3.png" target="_blank"&gt;&lt;img title="Add New Class Library" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="157" alt="Add New Class Library" src="http://lh6.ggpht.com/_w_FcR0ncuFs/S0UlV9PRsVI/AAAAAAAADD8/aEC2xSrZ6uw/VSTS_002_03_AddNewClassLibrary_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Após a criação com sucesso, a Solution é apresentada com a Class Library criada da seguinte forma:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_w_FcR0ncuFs/S0UlWqcBIVI/AAAAAAAADEA/k_1fnYdQH1k/s1600-h/VSTS_002_04_ClassLibraryTextValidati.png" target="_blank"&gt;&lt;img title="Class Library Text Validation Created" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="Class Library Text Validation Created" src="http://lh3.ggpht.com/_w_FcR0ncuFs/S0UlXYQgxzI/AAAAAAAADEE/YUep5ULZATU/VSTS_002_04_ClassLibraryTextValidati%5B1%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Agora vamos alterar o nome do arquivo &lt;em&gt;&lt;u&gt;Class1.cs&lt;/u&gt;&lt;/em&gt; para &lt;em&gt;&lt;u&gt;Text_Validation.cs&lt;/u&gt;&lt;/em&gt;. Neste caso, selecione o arquivo &lt;em&gt;&lt;u&gt;Class1.cs&lt;/u&gt;&lt;/em&gt; e pressione &lt;em&gt;&lt;u&gt;F2&lt;/u&gt;&lt;/em&gt; que o mesmo entrará em modo de edição do nome do arquivo e digite &lt;em&gt;&lt;u&gt;Text_Validation.cs&lt;/u&gt;&lt;/em&gt;. Pronto, já estamos preparados para inserir o código da nossa Classe.&lt;/p&gt;  &lt;p align="justify"&gt;Nessa classe teremos 2 métodos:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;strong&gt;GetDelimitator()&lt;/strong&gt;: Retorna o delimitador de string utilizado na aplicação;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;strong&gt;isEmail(string pStrEmail)&lt;/strong&gt;: Retorna sucesso (true) se o email informado para validação for um email com o formato válido.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Abaixo segue o código da classe que iremos utilizar como exemplo para o nosso teste unitário.&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; System.Text.RegularExpressions; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;namespace&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; Text_Validation &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;{&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; Retorna o delimitador de string utilizado na aplicação &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: gray; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;///&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: green; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: gray; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;char&lt;/span&gt; GetDelimitator() &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: #a31515"&gt;';'&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; Retorna sucesso (true) se o email informado para validação for um email com o formato válido &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;param name=&amp;quot;pStrEmail&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;Email alvo para validação de formato&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; &lt;span style="color: blue"&gt;bool&lt;/span&gt; isEmail(&lt;span style="color: blue"&gt;string&lt;/span&gt; pStrEmail) &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt; strRegex = &lt;span style="color: #a31515"&gt;@&amp;quot;^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}&amp;quot;&lt;/span&gt; + &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a31515"&gt;@&amp;quot;\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\&amp;quot;&lt;/span&gt; + &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #a31515"&gt;@&amp;quot;.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$&amp;quot;&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Regex&lt;/span&gt; re = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Regex&lt;/span&gt;(strRegex); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (re.IsMatch(pStrEmail)) &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;true&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt; &lt;span style="color: blue"&gt;false&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;O próximo passo após a criação da nossa classe de exemplo para os testes unitários é criar o projeto de Teste. A forma mais fácil que recomendo para criar o projeto de teste é a seguinte:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div class="MsoNormal" align="justify"&gt;Abrir a classe que deseja criar os testes unitários;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div class="MsoNormal" align="justify"&gt;Clicar com o botão direito em qualquer lugar do código, aparecerá um menu;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div class="MsoNormal" align="justify"&gt;Clicar na opção &lt;em&gt;&lt;u&gt;Create Unit Tests…;&lt;/u&gt;&lt;/em&gt;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div class="MsoNormal" align="justify"&gt;A tela abaixo será aberta com a lista de todos os métodos da classe;&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p class="MsoNormal" align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_w_FcR0ncuFs/S0UlYBhcxOI/AAAAAAAADEI/SHDBAtlJZd8/s1600-h/VSTS_002_05_CreateUnitTestCurrentSel.png" target="_blank"&gt;&lt;img title="Create Unit Test Current Selection" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="182" alt="Create Unit Test Current Selection" src="http://lh6.ggpht.com/_w_FcR0ncuFs/S0UlYjtiqVI/AAAAAAAADEM/xTUA8rxSV-c/VSTS_002_05_CreateUnitTestCurrentSel%5B2%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Selecione os métodos que deseja criar os testes unitários. No nosso exemplo iremos habilitar todas as checkboxes; &lt;/li&gt;    &lt;li&gt;No campo &lt;em&gt;&lt;u&gt;Output project&lt;/u&gt;&lt;/em&gt;, selecione a opção &lt;em&gt;&lt;u&gt;Create a new Visual C# test project…&lt;/u&gt;&lt;/em&gt; e confirme a operação selecionando o &lt;em&gt;&lt;u&gt;botão OK&lt;/u&gt;&lt;/em&gt;; &lt;/li&gt;    &lt;li&gt;Após confirmar a operação, uma dialog será mostrada para o usuário inserir o nome do projeto no campo &lt;em&gt;&lt;u&gt;Enter a name for your new project&lt;/u&gt;&lt;/em&gt;. Neste campo entre com o nome &lt;strong&gt;Unit Test Text Validation &lt;/strong&gt;e confirme a operação selecionando o &lt;em&gt;&lt;u&gt;botão Create&lt;/u&gt;&lt;/em&gt;; &lt;/li&gt;    &lt;li&gt;Pronto, agora sua solution tem 2 projetos como mostrado abaixo. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_w_FcR0ncuFs/S0UlZiDIeGI/AAAAAAAADEQ/k4pSW9YYJh4/s1600-h/VSTS_002_06_UnitTestProjectCreated3.png" target="_blank"&gt;&lt;img title="Unit Test Project Created" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="Unit Test Project Created" src="http://lh4.ggpht.com/_w_FcR0ncuFs/S0UlaAfyO3I/AAAAAAAADEU/WDJx6BJgYqI/VSTS_002_06_UnitTestProjectCreated_t.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;O código gerado pelo Visual Studio deve ser alterado de acordo com a sua necessidade e cada teste que você deseja realizar. Se você abrir o arquivo TextTest.cs encontrará o seguinte código:&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; Text_Validation; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; Microsoft.VisualStudio.TestTools.UnitTesting; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;namespace&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; Unit_Test_Text_Validation &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;This is a test class for TextTest and is intended &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;to contain all TextTest Unit Tests &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestClass&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TextTest &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TestContext&lt;/span&gt; testContextInstance; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;Gets or sets the test context which provides &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;information about and functionality for the current test run. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TestContext&lt;/span&gt; TestContext &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;get &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;return&lt;/span&gt; testContextInstance; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;set &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;testContextInstance = &lt;span style="color: blue"&gt;value&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;A test for isEmail &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; isEmailTest() &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt; pStrEmail = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Empty; &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; expected = &lt;span style="color: blue"&gt;false&lt;/span&gt;; &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: blue; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;bool&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt; actual; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;actual = target.isEmail(pStrEmail); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.Inconclusive(&lt;span style="color: #a31515"&gt;&amp;quot;Verify the correctness of this test method.&amp;quot;&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;A test for GetDelimitator &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; GetDelimitatorTest() &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;char&lt;/span&gt; expected = &lt;span style="color: #a31515"&gt;'\0'&lt;/span&gt;; &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;char&lt;/span&gt; actual; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;actual = target.GetDelimitator(); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.Inconclusive(&lt;span style="color: #a31515"&gt;&amp;quot;Verify the correctness of this test method.&amp;quot;&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt; &lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&lt;/span&gt;&lt;span style="color: green"&gt;A test for Text Constructor &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;///&amp;lt;/summary&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; TextConstructorTest() &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.Inconclusive(&lt;span style="color: #a31515"&gt;&amp;quot;TODO: Implement code to verify target&amp;quot;&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;Se observarmos a classe unit test acima, facilmente identificamos suas diferenças se compararmos com uma classe básica (como no exemplo da classe Text que criamos no projeto Text Validation). A classe possui o atributo &lt;em&gt;&lt;u&gt;[TestClass]&lt;/u&gt;&lt;/em&gt;, identificando que é uma classe de testes e cada método também possui um atributo &lt;em&gt;&lt;u&gt;[TestMethod]&lt;/u&gt;&lt;/em&gt; identificando o método como sendo de testes. [2]&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;Outro ponto importante é observar que o namespace (&lt;span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;using&lt;/span&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt; Microsoft.VisualStudio.TestTools.UnitTesting; &lt;/span&gt;) importado na nossa classe de teste é utilizado para disponibilizar diversas funcionalidades de testes que podem ser usadas na classe do seu unit test. Esse namespace disponibiliza também a classe &lt;em&gt;&lt;u&gt;Assert&lt;/u&gt;&lt;/em&gt;, que dispõe de diversos métodos estáticos para validação e execução dos testes. O método &lt;em&gt;&lt;u&gt;AreEqual&lt;/u&gt;&lt;/em&gt;, por exemplo, em uma de suas sobrecargas, recebe por parâmetro o valor esperado da execução do teste e o valor que será enviado para validação de acordo com o método chamado como exemplo abaixo:&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; GetDelimitatorTest() &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;char&lt;/span&gt; expected = &lt;span style="color: #a31515"&gt;'\0'&lt;/span&gt;; &lt;span style="color: green"&gt;// TODO: Initialize to an appropriate value &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;char&lt;/span&gt; &lt;strong&gt;actual&lt;/strong&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;actual = target.GetDelimitator(); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual);&lt;/font&gt;&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.Inconclusive(&lt;span style="color: #a31515"&gt;&amp;quot;Verify the correctness of this test method.&amp;quot;&lt;/span&gt;); &lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none" align="justify"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;} &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;Além da criação das classes de teste, ainda é possível executá-las, saber o resultado e armazená-las para comparação posterior. Agora vamos executar todos os testes criados sem alterar uma linha de código para ver qual será o resultado. Para isso, acesse o menu &lt;em&gt;&lt;u&gt;Test / Windows / Test List Editor&lt;/u&gt;&lt;/em&gt;. Em seguida selecione todos os testes habilitando o checkbox ao lado esquerdo do teste e click na opção &lt;em&gt;&lt;u&gt;Run Checked Tests&lt;/u&gt;&lt;/em&gt; como mostrado na imagem abaixo.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_w_FcR0ncuFs/S0Ulax2oFvI/AAAAAAAADEY/gyjw1LmMrpA/s1600-h/VSTS_002_07_RunCheckedTests3.png" target="_blank"&gt;&lt;img title="Run Checked Tests" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="Run Checked Tests" src="http://lh6.ggpht.com/_w_FcR0ncuFs/S0UlbhNe0AI/AAAAAAAADEc/tS2CKNm_QB8/VSTS_002_07_RunCheckedTests_thumb1.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Após a execução dos testes você irá perceber que os testes não tiveram seu resultado como &lt;font color="#008000"&gt;&lt;strong&gt;Passed&lt;/strong&gt;&lt;/font&gt;, afinal, não fizemos nenhuma alteração do código e isso era o esperado. Neste caso, tivemos 2 testes com o resultado &lt;strong&gt;&lt;font color="#ff8000"&gt;Inconclusive&lt;/font&gt;&lt;/strong&gt; e 1 com o resultado &lt;strong&gt;&lt;font color="#ff0000"&gt;Failed&lt;/font&gt;&lt;/strong&gt; como podemos observar o resultado da nossa execução abaixo.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_w_FcR0ncuFs/S0UlcUvUMHI/AAAAAAAADEg/AV-KhUBkLs0/s1600-h/VSTS_002_08_TestExecutedNoChanges3.png" target="_blank"&gt;&lt;img title="Test Executed No Changes" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="Test Executed No Changes" src="http://lh3.ggpht.com/_w_FcR0ncuFs/S0UldCkJkxI/AAAAAAAADEk/Hxd5sE6Y4MU/VSTS_002_08_TestExecutedNoChanges_th.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Como o nosso objetivo é ter todos os casos de teste unitário com o resultados &lt;font color="#008000"&gt;&lt;strong&gt;Passed&lt;/strong&gt;&lt;/font&gt;, vamos fazer as devidas alterações para testar o que queremos.&lt;/p&gt;  &lt;p align="justify"&gt;Primeiro, vamos alterar o &lt;em&gt;&lt;u&gt;TestMethod&lt;/u&gt;&lt;/em&gt; &lt;strong&gt;isEmailTest()&lt;/strong&gt;. O objetivo do nosso teste é garantir que o método &lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: pt-br; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&lt;strong&gt;isEmail(&lt;span style="color: blue"&gt;string&lt;/span&gt; pStrEmail)&lt;/strong&gt;&lt;/span&gt; da classe &lt;em&gt;&lt;u&gt;Text&lt;/u&gt;&lt;/em&gt; do nosso projeto &lt;strong&gt;Text Validation&lt;/strong&gt; retorna &lt;strong&gt;true&lt;/strong&gt; se o email informado para validação for um email com o formato válido. Para isso devemos fazer a seguinte alteração no nosso código:&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; isEmailTest() &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;string&lt;/span&gt; pStrEmail = &lt;span style="color: #a31515"&gt;&amp;quot;teste@teste.com.br&amp;quot;&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; expected = &lt;span style="color: blue"&gt;true&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;bool&lt;/span&gt; actual; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;actual = target.isEmail(pStrEmail); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" align="justify"&gt;Segundo, vamos alterar o &lt;em&gt;&lt;u&gt;TestMethod&lt;/u&gt;&lt;/em&gt; &lt;strong&gt;GetDelimitatorTest()&lt;/strong&gt;. O objetivo do nosso teste é garantir que o método &lt;span style="font-size: 10pt; font-family: &amp;#39;Courier New&amp;#39;; mso-ansi-language: pt-br; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&lt;strong&gt;getDelimitator()&lt;/strong&gt;&lt;/span&gt; da classe &lt;em&gt;&lt;u&gt;Text&lt;/u&gt;&lt;/em&gt; do nosso projeto &lt;strong&gt;Text Validation&lt;/strong&gt; retorna o delimitador de string utilizado na aplicação, que neste caso é o valor &lt;span style="font-size: 10pt; color: #a31515; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: pt-br; mso-no-proof: yes; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: en-us; mso-bidi-language: ar-sa"&gt;&lt;strong&gt;';'&lt;/strong&gt;&lt;/span&gt;. Para isso devemos fazer a seguinte alteração no nosso código:&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; GetDelimitatorTest() &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;char&lt;/span&gt; expected = &lt;span style="color: #a31515"&gt;';'&lt;/span&gt;; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;char&lt;/span&gt; actual; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;actual = target.GetDelimitator(); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.AreEqual(expected, actual); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;}&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Por último, vamos alterar o &lt;em&gt;&lt;u&gt;TestMethod&lt;/u&gt;&lt;/em&gt; &lt;strong&gt;TextConstructorTest()&lt;/strong&gt;. Neste caso, o nosso objetivo é simplesmente garantir que conseguimos criar um objetivo do tipo Text não nulo. Para isso devemos fazer a seguinte alteração no nosso código:&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;()] &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; TextConstructorTest() &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;{ &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Text&lt;/span&gt; target = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Text&lt;/span&gt;(); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="mso-layout-grid-align: none"&gt;&lt;span lang="EN-US" style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-ansi-language: en-us; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: #2b91af; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;Assert&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;.IsNotNull(target); &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;}&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Pronto, agora é mandar executar os testes e verificar o resultado :-). Se tudo deu certo, todos os seus testes estão com o status &lt;font color="#008000"&gt;&lt;strong&gt;Passed&lt;/strong&gt;&lt;/font&gt; como na imagem abaixo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_w_FcR0ncuFs/S0UleGJLiZI/AAAAAAAADEo/8gtXNRBEIr0/s1600-h/VSTS_002_09_TestExecutedPassed3.png" target="_blank"&gt;&lt;img title="Test Executed Passed" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="Test Executed Passed" src="http://lh3.ggpht.com/_w_FcR0ncuFs/S0UlerXbeOI/AAAAAAAADEs/yhEhrNmytJQ/VSTS_002_09_TestExecutedPassed_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Para quem não percebeu, todos os métodos de teste que tinham o método &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.Inconclusive foram removidos, mas por que isso aconteceu?&lt;/p&gt;  &lt;p align="justify"&gt;O método &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.Inconclusive indica que uma declaração não pode ser comprovado verdadeiro ou falso ou para indicar uma declaração que ainda não foi implementada. Por isso que depois de implementar todas as nossas alterações, removemos esse método. Segue a lista de sobrecarga para este caso:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="634" border="2"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="213"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Nome&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="417"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Descrição&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="213"&gt;&lt;em&gt;Inconclusive()&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;Indica que a declaração não pode ser verificada.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="213"&gt;&lt;em&gt;Inconclusive(String)&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;Indica que a declaração não pode ser verificada. Exibe uma mensagem.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="213"&gt;&lt;em&gt;Inconclusive(String, Object[])&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;Indica que a declaração não pode ser verificada. Exibe uma mensagem e aplica a formatação especificada pra ele.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p align="justify"&gt;Espero que tenham gostado!&lt;/p&gt;  &lt;p&gt;Até+,&lt;/p&gt;  &lt;p&gt;Quezada&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Referências: &lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Visual Studio Team System Rocks by Alércio Bressano, Alexandre Tarifa, Andrey Sanches, Clementino Mendonça, Emerson Facunte, Fábio Câmara, Fábio Hirota, Hélio Sá Moreira, Igor Abade V. Leite e Mauro Sant’Anna&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-351579956892175684?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/351579956892175684/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2010/01/vsts-visual-studio-team-system-para.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/351579956892175684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/351579956892175684'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2010/01/vsts-visual-studio-team-system-para.html' title='VSTS – Visual Studio Team System para Testadores – Unit Test'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_w_FcR0ncuFs/S0UlTKanUtI/AAAAAAAADDs/nWyaDASMm0I/s72-c/VSTS_002_01_Modelo_V_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-116152737172730493</id><published>2009-12-15T22:37:00.001-02:00</published><updated>2009-12-15T22:37:15.828-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Execução de Teste'/><category scheme='http://www.blogger.com/atom/ns#' term='Design de Teste'/><category scheme='http://www.blogger.com/atom/ns#' term='Teste Ágil'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio Team System'/><title type='text'>VSTS – Visual Studio Team System para Testadores – Introdução</title><content type='html'>&lt;p align="justify"&gt;Antes de falar um pouco sobre o Visual Studio Tem System (VSTS), devemos entender um pouco sobre o papel do testador no ciclo de desenvolvimento de software. Resumidamente, podemos dizer que a função do testador é garantir a qualidade do produto e, para isso, o trabalho dele no ciclo de desenvolvimento de software é:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Auxiliar os desenvolvedores na elaboração dos testes unitários automáticos;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Montar e configurar o ambiente e infra-estrutura de teste;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Escrever casos de teste;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Executar testes;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Automatizar casos e tarefas de teste;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Evidenciar os resultados;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Acompanhar os defeitos encontrados;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Desenvolver novas habilidades;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;O Analista de Teste é “o cara que aprova”. Nada é considerado “pronto” sem que ele diga que está.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Bem, agora que você já sabe um pouco sobre o papel do testador no ciclo de desenvolvimento de software, é necessário saber quais os testes que podem ser aplicados ao projeto (qualquer projeto que está sendo desenvolvido e que o testador esteja participando) de teste. Abaixo temos alguns exemplos:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Unit e Component Tests&lt;/b&gt;: São os testes que focam na arquitetura. Esses testes são executados automaticamente e a responsabilidade é dos desenvolvedores. Os testadores devem auxiliar os desenvolvedores na elaboração desses testes.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Functional e Story Tests, Simulations, Prototypes&lt;/b&gt;: São os testes que focam no negócio. Esses testes são executados automaticamente/manualmente e a responsabilidade é dos testadores em conjunto com outros envolvidos (clientes, usuários, etc.) no projeto. Neste caso, esses tipos de teste ajudam no entendimento das funcionalidades.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Scenarios, Exploratory, Usability, User Acceptance Testing&lt;/b&gt;: São os testes que focam no negócio e encontrar defeitos. Esses testes são executados manualmente e a responsabilidade é dos testadores. Neste caso, esses tipos de teste ajudam a encontrar o maior número de defeitos possível.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;b&gt;Performance, Load e Security Testing&lt;/b&gt;: São os testes que focam na arquitetura e estrutura do software. Esses testes são executados por ferramentas capazes de simular cenários de testes, por exemplo: Ter 10.000 usuários registrados no sistema simultaneamente. A responsabilidade da execução desses testes é dos testadores. Neste caso, esses tipos de testes ajudam identificar se a aplicação/software que está sendo testado é robusto suficiente.&lt;/p&gt;  &lt;p align="justify"&gt;Neste momento, já sabemos o papel do testador no ciclo de desenvolvimento de software e também quais os testes que podem ser aplicados aos projetos. Agora chegou o momento de criar um Projeto de Teste e incluir todos os seus artefatos de teste. Para isso, basta acessar o menu &lt;i&gt;&lt;u&gt;File / New / Project.&lt;/u&gt;&lt;/i&gt; Após acessar este menu, a janela abaixo será aberta e basta você selecionar a opção &lt;em&gt;&lt;u&gt;Test Project / Test Documents&lt;/u&gt;&lt;/em&gt; no menu (árvore) da esquerda. Feito isso, selecione o template Test Project informando o nome do projeto no campo Name.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_w_FcR0ncuFs/Sygrjmh3AqI/AAAAAAAADA8/oWMsqeus64g/s1600-h/VSTS_001_07_New_Test_Project1.png" target="_blank"&gt;&lt;img title="VSTS New Test Project" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="174" alt="VSTS New Test Project" src="http://lh5.ggpht.com/_w_FcR0ncuFs/Sygrkr3W0lI/AAAAAAAADBA/bLZSP3TkHOM/VSTS_001_07_New_Test_Project_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Feito isso chegou a hora de &lt;b&gt;Conhecer a IDE de Testes no Visual Studio.&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;A &lt;b&gt;IDE&lt;/b&gt; (&lt;i&gt;&lt;u&gt;Integrated Development Environment&lt;/u&gt;&lt;/i&gt;) possui um leque amplo de ferramentas para manipular testes e que auxiliam muito o testador no dia-a-dia de trabalho. Para acessar as funcionalidades relacionadas com testes do Visual Studio, basta acessar o menu &lt;i&gt;&lt;u&gt;Test / Window&lt;/u&gt;&lt;/i&gt;. Abaixo temos a lista das principais funcionalidades:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;b&gt;Solution Explorer&lt;/b&gt;: essa janela apresenta uma listagem dos arquivos presentes em cada solution envolvendo projetos, arquivos de teste, etc;&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_w_FcR0ncuFs/SygrlndlATI/AAAAAAAADBE/l6k7EtxKhyo/s1600-h/VSTS_001_01_Solution_Explorer1.png" target="_blank"&gt;&lt;img title="VSTS Solution Explorer" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="VSTS Solution Explorer" src="http://lh6.ggpht.com/_w_FcR0ncuFs/SygrmeREdaI/AAAAAAAADBI/vK0eqHMN9l4/VSTS_001_01_Solution_Explorer_thumb.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;b&gt;Test Manager&lt;/b&gt;: através dessa janela é possível executar os testes visualizando-os de diversas formas, adicionar novos testes, agrupar, ordenar e localizar testes na listagem; &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_w_FcR0ncuFs/SygrnPzcxYI/AAAAAAAADBM/rRuqK85WNaY/s1600-h/clip_image00241.jpg" target="_blank"&gt;&lt;img title="VSTS Test Manager" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="VSTS Test Manager" src="http://lh6.ggpht.com/_w_FcR0ncuFs/SygrnzBWg1I/AAAAAAAADBQ/Z-w4I3L4B8U/clip_image0024_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;b&gt;Test Result&lt;/b&gt;: com essa opção, podemos visualizar todos os resultados de testes executados no projeto. Essa janela demonstrará se o teste foi executado com sucesso ou se houve erros durante a execução. A partir dessa janela também é possível reexecutar o teste que acabou de ser rodado; &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh6.ggpht.com/_w_FcR0ncuFs/SygroUZY14I/AAAAAAAADBU/bPODuuMYLZs/s1600-h/clip_image0041%5B1%5D.jpg" target="_blank"&gt;&lt;img title="VSTS Test Result" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="VSTS Test Result" src="http://lh4.ggpht.com/_w_FcR0ncuFs/SygrpPDHCyI/AAAAAAAADBY/wWvQ-IHCfKs/clip_image004_thumb.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;b&gt;Code Coverage Results&lt;/b&gt;: se essa opção estiver habilitada, é possível visualizar as coberturas de códigos em determinadas execuções de teste, observando o percentual de código executado para cada método; &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh5.ggpht.com/_w_FcR0ncuFs/Sygrp5eZVCI/AAAAAAAADBc/XZiUAbmEmVo/s1600-h/clip_image0061%5B1%5D.jpg" target="_blank"&gt;&lt;img title="VSTS Code Coverage Results" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="VSTS Code Coverage Results" src="http://lh6.ggpht.com/_w_FcR0ncuFs/SygrqsA_3NI/AAAAAAAADBg/ckAUJ9bU5kQ/clip_image006_thumb1.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;b&gt;Test Runs&lt;/b&gt;: essa janela permite acompanhar uma fila de execução de testes, a fim de identificar testes que estão esperando para serem executados, testes em execução, já executados e diversas opções desse gênero; &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh3.ggpht.com/_w_FcR0ncuFs/SygrrQVh7CI/AAAAAAAADBk/RBDKDZ_pPH8/s1600-h/clip_image0081%5B1%5D.jpg" target="_blank"&gt;&lt;img title="VSTS Test Runs" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="VSTS Test Runs" src="http://lh6.ggpht.com/_w_FcR0ncuFs/SygrsEc9u6I/AAAAAAAADBo/jwpMCzhlmP8/clip_image008_thumb1.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;b&gt;Test View&lt;/b&gt;: a janela Test View é a forma mais rápida de executar um teste. Através dela podemos executar inclusive em modo Debug, podendo acompanhar a execução passo a passo do método selecionado. Além disso, podemos configurar diversas propriedades de cada testes presente nessa janela. &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://lh6.ggpht.com/_w_FcR0ncuFs/Sygrs0ZyF_I/AAAAAAAADBs/IvXZrXA6P3s/s1600-h/clip_image0101%5B1%5D.jpg" target="_blank"&gt;&lt;img title="VSTS Test View" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="148" alt="VSTS Test View" src="http://lh4.ggpht.com/_w_FcR0ncuFs/SygrtnqhXdI/AAAAAAAADBw/5hzuB6tNA_w/clip_image010_thumb1.jpg?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Até+,&lt;/p&gt;  &lt;p align="justify"&gt;Quezada&lt;/p&gt;  &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Referências: &lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Visual Studio Team System Rocks by Alércio Bressano, Alexandre Tarifa, Andrey Sanches, Clementino Mendonça, Emerson Facunte, Fábio Câmara, Fábio Hirota, Hélio Sá Moreira, Igor Abade V. Leite e Mauro Sant’Anna&lt;/div&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-116152737172730493?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/116152737172730493/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/12/vsts-visual-studio-team-system-para.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/116152737172730493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/116152737172730493'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/12/vsts-visual-studio-team-system-para.html' title='VSTS – Visual Studio Team System para Testadores – Introdução'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_w_FcR0ncuFs/Sygrkr3W0lI/AAAAAAAADBA/bLZSP3TkHOM/s72-c/VSTS_001_07_New_Test_Project_thumb.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-6876794510128251787</id><published>2009-10-05T22:50:00.003-03:00</published><updated>2009-10-05T22:58:58.187-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gerenciamento de Riscos'/><title type='text'>Gerenciamento de Riscos - Introdução</title><content type='html'>&lt;div align="justify"&gt;Nos últimos dias estava discutindo com um amigo meu o tema “Gerenciamento de Risco”, então comecei a ler um artigo sobre esse tema e resolvi divulgar um pouco dessa informação com vocês. Mas você pode estar se perguntando “O que isso tem haver com teste e qualidade de software?”, bem, tem tudo haver, todo projeto que estamos executando precisamos gerenciar riscos. A nossa vida é gerenciar riscos! :-) Bem, vamos lá!&lt;br /&gt;&lt;br /&gt;O fator prazo é crítico na identificação, quantificação e monitoramento de riscos em projetos nos quais o cumprimento de datas é mandatório. Para o gerenciamento de riscos, utiliza-se inicialmente a identificação e quantificação do fator ou evento de risco.&lt;br /&gt;Complementando os modelos de gerenciamento de riscos do PMBOK (Project Management Body of Knowledge), iremos utilizar um método para aumentar a eficácia dos modelos de gerenciamento de riscos mais utilizados. “Trata-se de um método aprimorado de gerenciamento de riscos de não alcançar a meta de prazo do projeto. Quando não é possível planejar com mais folga, deve se pensar em planejamento e preparação de contingências. Isto freqüentemente envolve alocação de recursos adicionais para algo que pode não acontecer.” (Chris Felstead).&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;O método utilizado tem seis etapas que devemos usar para mitigar os riscos:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Contextualizar&lt;/strong&gt;: determinar a categoria da data meta e a conseqüência, caso esta não seja alcançada.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Identificar&lt;/strong&gt;: identificar os riscos que devem ser gerenciados e que requerem prazo de preparação anterior a implantação. Enfatizar que se o evento de risco ocorrer, fará com que o projeto ultrapasse a data meta.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Analisar os riscos&lt;/strong&gt;: identificar os responsáveis pelos planos de contingência e aqueles que podem custeá-los.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Tratar os riscos&lt;/strong&gt;: determinar a data na qual a preparação deve ser iniciada e se os planos de contingência são economicamente viáveis.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Monitorar e revisar os riscos&lt;/strong&gt;: para riscos que não tenham sido priorizados, determinar se e quando a preparação de contingências deve ser iniciada.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Comunicar e discutir&lt;/strong&gt;: obter a autorização do interessado para iniciar a preparação.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;O Sr. Felstead caracteriza estas ações adicionais com um segundo passo para o gerenciamento de riscos. As atividades requeridas pelo modelo criam um método para identificar e gerenciar os riscos do projeto de forma simplificada. “Atualmente, em muitas empresas o gerenciamento de riscos não é agressivo o suficiente para viabilizar a alocação de recursos necessários ou realizar o planejamento de contingências de forma adequada”.&lt;/p&gt;&lt;p align="justify"&gt;Se estivermos trabalhando em um projeto de desenvolvimento de software, todas as etapas acima devem ser negociadas e de conhecimento do time todo, incluindo desenvolvedores, testadores, etc.&lt;br /&gt;&lt;br /&gt;Para ajudar ainda mais o entendimento de Gerenciamento de Riscos e as etapas usadas no método acima explicado, abaixo estão alguns conceitos usados no gerenciamento de riscos.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Riscos&lt;/strong&gt;&lt;/em&gt;: O risco é uma perda em potencial para a organização. Um exemplo é o risco resultante do mau uso do computador. O risco pode ser medido através da análise de risco.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Análise de risco&lt;/strong&gt;&lt;/em&gt;: A análise de risco é uma avaliação dos recursos de informação de uma organização, seus controles e suas vulnerabilidades. Ela combina a possibilidade de perda de cada recurso com sua taxa estimada de ocorrência para estabelecer o grau de prejuízos financeiros, ou de outra ordem, que essa perda poderá ocasionar. Na verdade, a análise de riscos combina a probabilidade de ocorrência com a gravidade dos danos causados por sua ocorrência.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Ameaça&lt;/strong&gt;&lt;/em&gt;: Existe um risco de um meteoro cair na cidade onde você mora. Isso é uma ameaça a sua vida? Não, pois a probabilidade dessa ocorrência é quase zero. Podemos dizer que a ameaça é a capacidade de alguém explorar a vulnerabilidade de um sistema de computador ou aplicação.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Vulnerabilidade&lt;/strong&gt;&lt;/em&gt;: A vulnerabilidade é uma falha de desenho, implementação ou operação que permite a concretização de uma ameaça. Um site na internet, por uma falha de desenho e de implementação, pode permitir que hackers invadam o ambiente interno da empresa, portanto uma falha tornou o site vulnerável. Um risco só se torna uma ameaça quando existe uma vulnerabilidade.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Controle&lt;/em&gt;&lt;/strong&gt;: O controle é uma maneira de tentar reduzir as causas dos riscos, evitando, desse modo, sua ocorrência ou, pelo menos, reduzindo a freqüência de ocorrência.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Este texto é baseado no artigo “O desafio de projetos com data meta – novas estratégias de gerenciamento de riscos”, apresentado por Chris Felstead, PMP, no Congresso PMI 2005 – Ásia. Fonte: PM Network, edição Setembro/2005, página 76&lt;br /&gt;&lt;br /&gt;Muitas vezes você pode utilizar uma simples planilha para gerenciar riscos. Abaixo estão algumas informações que podem ter nessa sua planilha:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;u&gt;&lt;strong&gt;ID do Risco&lt;/strong&gt;&lt;/u&gt;: Número que identifica o Risco&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;u&gt;&lt;strong&gt;Projeto&lt;/strong&gt;&lt;/u&gt;: Nome do projeto que o risco está relacionado&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Item de Risco&lt;/u&gt;&lt;/strong&gt;: Risco que foi identificado&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Status&lt;/u&gt;&lt;/strong&gt;: Status do risco (Aberto, Parado, Em andamento, Fechado, etc.)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Impacto&lt;/u&gt;&lt;/strong&gt;: Nível de impacto do risco no projeto (Alto(5), Médio(3), Baixo(1))&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Plano de Mitigação e Contingência&lt;/u&gt;&lt;/strong&gt;: Plano de Mitigação e Contingência elaborado para minimizar ou remover o risco encontrado. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Pessoa Responsável&lt;/u&gt;&lt;/strong&gt;: Pessoa responsável por executar o Plano de Mitigação e Contingência&lt;br /&gt;Acompanhamento / Comentários: Informações de acompanhamento das atividades executados para mitigar o risco&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Data de Abertura&lt;/u&gt;&lt;/strong&gt;: Data de abertura do risco&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Data de Fechamento&lt;/u&gt;&lt;/strong&gt;: Data de fechamento do risco&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Duração (dias)&lt;/u&gt;&lt;/strong&gt;: Tempo que o risco ficou aberto&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Boa leitura!&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-6876794510128251787?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/6876794510128251787/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/10/gerenciamento-de-riscos-introducao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/6876794510128251787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/6876794510128251787'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/10/gerenciamento-de-riscos-introducao.html' title='Gerenciamento de Riscos - Introdução'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-7396630521322961267</id><published>2009-09-25T15:01:00.003-03:00</published><updated>2009-09-25T15:12:49.297-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='Teste Ágil'/><title type='text'>XXXVII Encontro do SPIN-Campinas - Participação do "Time de Teste" em Projetos Scrum</title><content type='html'>&lt;div align="justify"&gt;Olá Pessoal,&lt;br /&gt;&lt;br /&gt;Gostaria de agradecer a participação de TODAS as pessoas que participaram do &lt;strong&gt;XXXVII Encontro do SPIN-Campinas &lt;/strong&gt;que aconteceu no dia 24/Setembro/09 na Motorola em Jaguariúna, principalmente a Coordenação do SPIN-Campinas.&lt;br /&gt;Realmente foi muito legal, conseguimos trocar experiências, tivemos várias discussões excelentes. A participação de vocês foi essencial para fazer o evento acontecer!!!&lt;br /&gt;&lt;br /&gt;Gostaria de dar os Parabéns para a &lt;strong&gt;Gabriela&lt;/strong&gt;, ela ganhou um vale presente da FNAC pois acertou o nome dos Macacos!! Hehehehehe !!! Gabriela, se você comprar um DVD de filme, depois me empresta, ok? :-)&lt;br /&gt;&lt;br /&gt;Bem, para finalizar, segue abaixo a apresentação:&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_2066606"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/gustavoqz/participao-do-time-de-teste-em-projetos-scrum-2066606" title="XXXVII Encontro do SPIN-Campinas - Participação do Time de Teste em Projetos Scrum"&gt;XXXVII Encontro do SPIN-Campinas - Participação do Time de Teste em Projetos Scrum&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=participacaodotimedetesteemprojetosscrumv01-00-090925120814-phpapp02&amp;amp;stripped_title=participao-do-time-de-teste-em-projetos-scrum-2066606"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=participacaodotimedetesteemprojetosscrumv01-00-090925120814-phpapp02&amp;amp;stripped_title=participao-do-time-de-teste-em-projetos-scrum-2066606" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;Veja mais apresentações de &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/gustavoqz"&gt;Gustavo Quezada&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Muito obrigado!!&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-7396630521322961267?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/7396630521322961267/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/09/xxxvii-encontro-do-spin-campinas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/7396630521322961267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/7396630521322961267'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/09/xxxvii-encontro-do-spin-campinas.html' title='XXXVII Encontro do SPIN-Campinas - Participação do &quot;Time de Teste&quot; em Projetos Scrum'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-2981032563712900288</id><published>2009-09-01T14:13:00.003-03:00</published><updated>2009-09-01T14:30:34.092-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Palestra'/><title type='text'>Palestra - Papel do Time de Teste em Projetos SCRUM</title><content type='html'>&lt;div align="justify"&gt;Olá Pessoal,&lt;/div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Chegou o momento da gente bater um papo sobre Teste de Software! Desta vez estarei falando um pouco sobre as experiências em Projetos SCRUM. :-) &lt;strong&gt;ANOTEM NA AGENDA DE VOCÊS!!!&lt;/strong&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;Estão abertas as inscrições para o XXXVII evento do SPIN-Campinas, que será realizado no dia &lt;strong&gt;24 de setembro de 2009&lt;/strong&gt;, a partir das &lt;strong&gt;13:00h&lt;/strong&gt;, na &lt;strong&gt;Motorola&lt;/strong&gt;. No evento serão realizadas três apresentações sobre &lt;strong&gt;Testes&lt;/strong&gt; e eu serei um dos palestrantes. São elas:&lt;/div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;em&gt;Título&lt;/em&gt;: &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Papel do Time de Teste em Projetos SCRUM&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;Resumo&lt;/em&gt;: Os projetos de desenvolvimento de software que utilizam o SCRUM para auxiliar no gerenciamento de projetos vêm crescendo a cada dia. A empresa que decide utilizar o SCRUM nos projetos tem um grande desafio para implementá-lo e desenvolver essa nova “cultura” internamente na empresa e o desafio é maior ainda quando o time de teste participa desses projetos. A apresentação abordará alguns pontos onde o time de teste colabora e participa, e o mais importante, quais tipos de atividades o time de teste executa no projeto. &lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;Palestrante&lt;/em&gt;: &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Gustavo Quezada (ASGA)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;em&gt;Título&lt;/em&gt;: &lt;strong&gt;Análise da causa de defeitos em aplicações web&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;Resumo&lt;/em&gt;: Atualmente, é crescente a dependência humana para com computadores e software. Uma vez que sistemas baseados na web são cada vez mais utilizados, avaliar sua confiabilidade é vital para que estes sejam robustos e tenham qualidade, refletida na redução no número de defeitos. Esta palestra apresenta de maneira geral um dos processos utilizados pela empresa na implantação de um mecanismo para análise da causa dos defeitos em um conjunto de aplicações web. Além disso, dados coletados em um estudo de caso serão apresentados ao público, assim como benefícios obtidos e lições aprendidas.&lt;/div&gt;&lt;div align="justify"&gt;Palestrante: &lt;strong&gt;Bruno Teixeira de Abreu (SOFIST)&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;em&gt;Título&lt;/em&gt;: &lt;strong&gt;Case – Automação de testes de interface do usuário em ambientes virtualizados&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;Resumo&lt;/em&gt;: Os testes de regressão geralmente são executados após a correção de algum defeito ou após a adição de uma nova funcionalidade. Normalmente, este tipo de teste é realizado através de ferramentas de automação de teste, devido à falta de tempo para executar novamente casos de teste já executados. E se o sistema precisa ser testado em mais de um ambiente? Não é por acaso que os testes de regressão ficam para segundo plano. Portanto, o uso de ferramenta para a automação de testes e a virtualização dos ambientes são indispensáveis para garantir os prazos e a qualidade do sistema. Alguns benefícios da automação e virtualização de ambientes de teste:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Métricas de retrabalho e esforço de teste&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Aumento da qualidade do produto final&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Diminuição do esforço e tempo do ciclo de desenvolvimento&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;em&gt;Palestrante&lt;/em&gt;: &lt;strong&gt;Joselito Viana Soares (Synchro Solução Fiscal)&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;O evento é gratuito!!!&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;Para se inscrever, envie um e-mail para &lt;strong&gt;Fernanda Azevedo Oshiro &lt;/strong&gt;(&lt;a href="mailto:wfa019@motorola.com" target="_blank"&gt;wfa019@motorola.com&lt;/a&gt;), informando o nome completo, RG, empresa e e-mail e placa do carro dos inscritos, até dia 22 de setembro de 2009. O endereço da &lt;strong&gt;Motorola é Rodovia SP 340, Km 128,7 – Tanquinho – Jaguariuna-SP&lt;/strong&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;Para maiores detalhes acessem - &lt;/strong&gt;&lt;a href="http://www.cpqd.com.br/spin-cps/index.php"&gt;&lt;strong&gt;http://www.cpqd.com.br/spin-cps/index.php&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Até+,&lt;br /&gt;Quezada&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-2981032563712900288?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/2981032563712900288/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/09/palestra-papel-do-time-de-teste-em.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/2981032563712900288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/2981032563712900288'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/09/palestra-papel-do-time-de-teste-em.html' title='Palestra - Papel do Time de Teste em Projetos SCRUM'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-5353658233852344396</id><published>2009-08-13T00:27:00.007-03:00</published><updated>2009-08-13T00:57:11.636-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Execução de Teste'/><category scheme='http://www.blogger.com/atom/ns#' term='Relatórios de Teste'/><title type='text'>Execução e Relatório de Teste</title><content type='html'>&lt;div align="justify"&gt;Para continuar com o assunto “&lt;a href="http://gustavoquezada.blogspot.com/2009/08/relatorio-parcial-de-execucao-de-teste.html"&gt;Relatório de Execução de Teste&lt;/a&gt;”, hoje vamos mostrar um pouco mais sobre Execução de Teste. A idéia deste post é auxiliar você com as atividades de planejamento, execução e relatórios de teste. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;a name="_Toc205090944"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Execução dos casos de teste&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;Após a fase de Análise e Design de Teste ser concluída, chega à hora de entrar na fase de Execução de Teste. A primeira coisa que deve ser feita antes de começar a execução efetivamente é planejar e/ou rever o planejamento dessa fase. Para ajudar nesse planejamento uma boa prática é utilizar um Gráfico para mostrar o planejado versus o atual e, neste caso, nada melhor do que o Gráfico Curva-S. Abaixo temos a &lt;em&gt;&lt;strong&gt;Tabela 1 – Gráfico Curva-S&lt;/strong&gt;&lt;/em&gt;, a qual é utilizada para fazer o planejamento da execução dos casos de teste. &lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/_w_FcR0ncuFs/SoOJBrIH00I/AAAAAAAAC-8/a-Uibi00V98/s1600-h/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+Grafico+Curva-S+Dados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5369285842605429570" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 112px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_w_FcR0ncuFs/SoOJBrIH00I/AAAAAAAAC-8/a-Uibi00V98/s320/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+Grafico+Curva-S+Dados.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a name="_Toc205090983"&gt;&lt;/a&gt;&lt;a name="_Ref203214714"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Tabela &lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;1 – Gráfico Curva-S&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/strong&gt;&lt;div align="justify"&gt;&lt;br /&gt;Para facilitar o entendimento da tabela acima, segue abaixo a descrição de cada coluna: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Data&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: data de execução planejada; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;Total Planejado&lt;/u&gt;&lt;em&gt;: &lt;/em&gt;&lt;/strong&gt;número total de casos de teste planejado para execução; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;Total Planejado Acumulativo&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;: número total de casos de teste planejado acumulativo; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Passado Planejado&lt;/u&gt;: &lt;/em&gt;&lt;/strong&gt;número total de casos de teste passados no dia; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Passado&lt;/u&gt;: &lt;/em&gt;&lt;/strong&gt;número total de casos de teste passados acumulados; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Falhado Planejado&lt;/u&gt;: &lt;/em&gt;&lt;/strong&gt;número total de casos de teste falhados no dia; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Falhado: &lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;número total de casos de teste falhados acumulados; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Bloqueado Planejado&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: número total de casos de teste bloqueados no dia; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Bloqueado&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: número total de casos de teste bloqueados acumulados; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Total Atingido&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: número total de casos de teste executados até o momento somando, total passado, total falhado, total bloqueado; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Comentário Execução&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: comentários gerais do planejamento. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Após a criação da tabela acima, basta gerar gráfico incluindo os campos Data, Total Planejado Acumulativo, Total Passado, Total Falhado, Total Bloqueado, Total Atingido, como mostrado abaixo na &lt;strong&gt;&lt;em&gt;Figura 1 – Gráfico Curva-S&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://2.bp.blogspot.com/_w_FcR0ncuFs/SoOJSe6vrwI/AAAAAAAAC_E/MIxvbwG3_8I/s1600-h/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+Grafico+Curva-S.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5369286131385872130" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 178px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_w_FcR0ncuFs/SoOJSe6vrwI/AAAAAAAAC_E/MIxvbwG3_8I/s320/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+Grafico+Curva-S.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a name="_Ref203215277"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Figura &lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;1 – Gráfico Curva-S&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;Após a criação do Gráfico Curva-s, obtém-se o número total de casos de teste que foram planejados para execução incluindo os novos casos de teste, porcentagem de casos passados, falhados e bloqueados e casos de teste de regressão. Com isso é possível verificar se o planejamento feito anteriormente está de acordo com o atual, caso seja necessário, um novo re-planejamento deve ser feito e as partes interessadas informadas. Vale lembrar que a criação dos ciclos de teste deve ser planejada de acordo com o progresso da execução, estabilidade do software e critério de saída. Quando o planejamento está concluído, chega a hora da execução dos testes.&lt;br /&gt;Os casos de teste são executados usando os procedimentos documentados e/ou automáticos do script de teste. Para que a fase de execução de teste seja executada com sucesso deve-se: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Executar os casos de teste usando o documento de procedimentos de teste e/ou scripts de teste; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Registrar o resultado atual; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Comparar o resultado atual com o resultado esperado; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Se necessário, repetir a execução de um caso de teste quando um incidente é encontrado, ou seja, devemos fazer o teste de confirmação; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Executar testes de regressão como planejado. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Devido ao alto risco de mudança do código entre a execução de um ciclo e outro, deve-se ter uma política de re-teste bem definida.&lt;br /&gt;Em alguns casos, testes podem ser executados “informalmente” sem usar procedimentos de teste detalhado, como por exemplo: teste exploratório.&lt;br /&gt;&lt;a name="_Toc205090945"&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Relatórios de Teste&lt;br /&gt;&lt;/strong&gt;Sempre que é encontrado um incidente de teste na fase de execução é necessário relatar esse incidente. Para isso, deve-se definir os relatórios necessários para acompanhar o progresso do(s) projeto(s) de teste segundo a norma IEEE 829-1998. Os relatórios de teste que a IEEE sugere são os seguintes: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Relatório de Log de Teste; &lt;/li&gt;&lt;li&gt;Relatório de incidentes de Teste; &lt;/li&gt;&lt;li&gt;Relatório de Sumário de Teste. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Para ajudar no entendimento de como chegamos aos relatórios acima, segue abaixo a &lt;strong&gt;&lt;em&gt;Figura 2 – Relação de documentos de teste para o processo de teste - IEEE 829&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/_w_FcR0ncuFs/SoOJgRvtPCI/AAAAAAAAC_M/0d8mA-9F3w0/s1600-h/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+IEEE+829+-1998.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5369286368368081954" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 226px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_w_FcR0ncuFs/SoOJgRvtPCI/AAAAAAAAC_M/0d8mA-9F3w0/s320/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+IEEE+829+-1998.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a name="_Toc205091010"&gt;&lt;/a&gt;&lt;a name="_Ref203539768"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Figura &lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;2 – Relação de documentos de teste para o processo de teste - IEEE 829 -1998&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;strong&gt;Relatório de Log de Teste&lt;br /&gt;&lt;/strong&gt;Tudo o que for relevante durante a fase de execução de teste deve ser reportada no relatório de log de teste.&lt;br /&gt;Segundo a norma IEEE 829 o relatório de log de teste deve ter as seguintes informações:&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Identificador&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: identificador único e específico para o relatório, por exemplo, o nome do sistema com número do release mais data e hora do teste; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Descrição&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: identificar o que foi testado e o ambiente em que o teste foi executado incluindo hardware, quantidade de memória utilizada, etc; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Atividades e eventos&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: para cada evento, identificar data/hora, tempo utilizado e responsável; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Descrição da execução&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: descrever o que foi feito e identificar os responsáveis pela atividade incluindo testadores, observadores e operadores; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Resultados dos procedimentos&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: para cada execução, descrever os resultados encontrados podendo ser sucesso ou não; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Informações sobre ambiente de teste&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: informar qualquer condição específica do ambiente de teste, caso seja necessário; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Eventos imprevistos&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: descrever detalhadamente o que aconteceu antes e depois de uma atividade ou evento inesperado. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Vale lembrar que outras informações podem ser incluídas sempre que necessário.&lt;a name="_Toc205090947"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Relatório de Incidentes de Teste&lt;br /&gt;&lt;/strong&gt;Toda e qualquer discrepância entre o resultado esperado e o encontrado na execução dos casos de teste devem ser reportados para o time de desenvolvimento com o máximo de detalhes possíveis. Nesse caso, é utilizado o relatório de incidentes de teste o qual é registrado todos os defeitos encontrados durante a fase de execução de teste.&lt;br /&gt;Segundo a norma IEEE 829 o relatório de incidente de teste deve ter as seguintes informações: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Identificador do relatório&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: identificador único e específico para o relatório, por exemplo, release testado mais o identificador de um caso de teste &lt;release&gt;&lt;id_caso_de_teste&gt;; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Sumário da ocorrência&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: uma breve descrição do incidente; identificar os itens de teste envolvidos indicando sua versão, caso seja necessário; adicionar referência para a especificação do caso de teste, assim o desenvolvedor que for corrigir o defeito terá uma base de documento de teste além do documento de requisitos e adicionar também o relatório de log de teste, se necessário; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Descrição do incidente&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: prover uma descrição do incidente incluindo os seguintes itens:&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Entradas; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Resultados esperados; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Resultados encontrados; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Problemas; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Data e hora do incidente; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Procedimentos para reproduzir o problema; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Ambiente; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Tentativas para repetir o problema; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Testadores; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;==&gt;Observadores.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Vale lembrar que outras informações podem ser incluídas sempre que necessário e nem sempre todos os campos acima serão necessários. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Impacto&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: indicar qual o impacto que o incidente terá no plano de teste de execução podendo falhar, bloquear o(s) testes(s) ou até mesmo uma possível mudança no caso de teste ou requisitos. Se possível, informar a prioridade e severidade do incidente.&lt;br /&gt;Os incidentes de teste devem ser armazenados em um repositório e, caso necessário, revisar o relatório de incidentes de teste com as partes interessadas. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;Relatório de Sumário de Teste&lt;br /&gt;&lt;/strong&gt;Fornecer um sumário das atividades de teste incluindo os resultados, como o próprio nome do relatório já diz, relatório de sumário de teste. A idéia é resumir as atividades realizadas na execução dos testes.&lt;br /&gt;Segundo a norma IEEE 829 o relatório de sumário de teste deve ter as seguintes informações: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Identificador&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: identificador único e específico para o relatório, por exemplo, release e/ou projeto testado; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Sumário&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: sumarizar a evolução das atividades de teste identificando os itens testados e o ambiente utilizado para execução dos testes; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Variações&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: informar qualquer procedimento diferente do que estava especificado no plano de teste e procedimentos de teste; especificar o motivo da utilização do procedimento alternativo; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Avaliações do processo&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: avaliação resumida do processo adotado contra o especificado no plano de teste; identificar as funcionalidades ou combinações de teste que não foram exercitadas explicando a razão; qualquer ocorrência que possa impactar na qualidade do software/produto deve ser considerada; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Sumário dos resultados&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: sumarizar os resultados de teste identificando o número de casos de teste executados, número de defeitos encontrados, número de defeitos fechados e abertos, etc; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Avaliação do(s) teste(s)&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: proporcionar uma avaliação global de cada item, incluindo suas limitações. Essa avaliação deve ser baseada nos resultados dos casos de teste e nos critérios de aprovação/reprovação; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Sumário de atividades&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: resumir os recursos envolvidos no projeto de teste, número total de horas utilizadas no projeto, tempo total utilizado para cada atividade principal, etc; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;Aprovações&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;: listar o nome e títulos das pessoas responsáveis pela aprovação do projeto de teste incluindo os relatórios. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Vale lembrar que outras informações podem ser incluídas sempre que necessário.&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;No post &lt;a href="http://gustavoquezada.blogspot.com/2009/08/relatorio-parcial-de-execucao-de-teste.html"&gt;Relatório Parcial de Execução de Teste&lt;/a&gt; você pode encontrar informações adicionais sobre relatório de teste.&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-5353658233852344396?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/5353658233852344396/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/08/para-continuar-com-o-assunto-relatorio.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/5353658233852344396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/5353658233852344396'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/08/para-continuar-com-o-assunto-relatorio.html' title='Execução e Relatório de Teste'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w_FcR0ncuFs/SoOJBrIH00I/AAAAAAAAC-8/a-Uibi00V98/s72-c/Blog+Teste+de+Software+-+0012+-+Execu%C3%A7%C3%A3o+de+Teste+-+Grafico+Curva-S+Dados.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-2343914047955728080</id><published>2009-08-04T22:57:00.009-03:00</published><updated>2009-08-13T01:01:07.121-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Templates'/><category scheme='http://www.blogger.com/atom/ns#' term='Execução de Teste'/><category scheme='http://www.blogger.com/atom/ns#' term='Relatórios de Teste'/><title type='text'>Relatório Parcial de Execução de Teste</title><content type='html'>&lt;div align="justify"&gt;Quando estamos participando de uma execução de teste não basta executar, executar, executar, encontrar defeitos, encontrar mais defeitos e mais. Precisamos saber repassar/compartilhar para os Stakeholders (Partes interessadas no projeto) todo o trabalho que foi feito em forma de números e riscos. A idéia deste post é compartilhar com vocês um exemplo simples e fácil de reportar o status de uma execução de teste.&lt;br /&gt;&lt;br /&gt;Um Analista de Teste precisa reportar os defeitos encontrados na execução de testes, juntamente com informações úteis para as partes interessadas no projeto. Na maioria das vezes, esses relatórios não usam nenhum padrão ou modelo nem são comuns para a organização e, o que é pior, não é possível saber se a execução está atrasada ou quais defeitos o time de desenvolvimento deverá dar prioridade.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="justify"&gt;O relatório parcial de execução deve ser resumido e objetivo, basicamente com as informações abaixo:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Informação do Plano Master;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Gráfico Curva-S Esforço;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Distribuição Gráfica de Defeitos;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Lista de Requisição de Mudanças;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Riscos;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Contatos;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;a name="_Toc208997374"&gt;&lt;strong&gt;1. Informação do Plano Master&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A seção &lt;strong&gt;informação do plano master&lt;/strong&gt; deve conter a quantidade de testes planejados, executados, passados, falhados e bloqueados até o momento. Ao verificar essa seção, o usuário deve ser capaz de obter as seguintes informações que são divididas em três partes:&lt;/p&gt;&lt;p align="justify"&gt;&lt;em&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;Informações Gerais&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Plano Master: &lt;/em&gt;nome do plano master;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;# de Ciclos: &lt;/em&gt;número de ciclos executados até o momento;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Início: &lt;/em&gt;data de início da execução;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Término: &lt;/em&gt;data de término da execução;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Release Atual: &lt;/em&gt;versão do release usado na execução;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;Dados de execução do(s) ciclo(s)&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Ciclo: &lt;/em&gt;número do ciclo;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Planejado: &lt;/em&gt;número total de testes planejados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Executado: &lt;/em&gt;número total de testes executados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Passado: &lt;/em&gt;número total de testes passados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Falhado: &lt;/em&gt;número total de testes falhados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Bloqueado: &lt;/em&gt;número total de testes bloqueados; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;Dados de execução do plano master&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Planejado: &lt;/em&gt;número total de testes planejados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Executado: &lt;/em&gt;número total de testes executados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Passado: &lt;/em&gt;número total de testes passados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Falhado: &lt;/em&gt;número total de testes falhados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Bloqueado: &lt;/em&gt;número total de testes bloqueados;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;Como um plano master pode conter vários ciclos, ou seja, um caso de teste pode ser executado em mais de um ciclo e o resultado da execução desse teste pode ser diferente em todos os ciclos, o valor reportado no plano master deve ser o resultado mais novo/atual reportado. Abaixo segue um exemplo para ilustrar as informações acima: &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Informações Gerais&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Plano Master: &lt;/em&gt;Portal Web de Notícias&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;# de Ciclos: &lt;/em&gt;02&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Início: &lt;/em&gt;01/08/2009&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Término: &lt;/em&gt;12/08/2009&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Release Atual: &lt;/em&gt;01.00.01&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Dados de execução do(s) ciclo(s)&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Ciclo: &lt;/em&gt;01 (data 05/08/2009)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Planejado: &lt;/em&gt;100&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Executado: &lt;/em&gt;100 100%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Passado: &lt;/em&gt;90 90%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Falhado: &lt;/em&gt;05 05%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Bloqueado: &lt;/em&gt;05 05%&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Ciclo: &lt;/em&gt;02 (data 12/08/2008)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Planejado: &lt;/em&gt;10 (5 casos de teste falhados e 5 bloqueados)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Executado: &lt;/em&gt;10 100%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Passado: &lt;/em&gt;09 09%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Falhado: &lt;/em&gt;01 01%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Bloqueado: &lt;/em&gt;00 00%&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;strong&gt;Dados de execução do plano master&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Planejado: &lt;/em&gt;100;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Executado: &lt;/em&gt;100 100%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Passado: &lt;/em&gt;99 99%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Falhado: &lt;/em&gt;01 01%&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Total Bloqueado: &lt;/em&gt;00 00%&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;a name="_Toc208997375"&gt;&lt;strong&gt;2. Gráfico Curva-S Esforço&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A seção gráfico curva-s esforço deve informar a quantidade de testes planejados, executados, passados, falhados e bloqueados até o momento, só que de forma gráfica, onde o usuário poderá comparar o esforço planejado X atual. Para gerar esse gráfico, o Analista de Teste deve ter uma tabela onde os valores são atualizados diariamente de acordo com o progresso. Segue abaixo um exemplo: &lt;/div&gt;&lt;p align="center"&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_w_FcR0ncuFs/SnjvUPeCXjI/AAAAAAAAC-U/SJbwp91xY0I/s1600-h/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Grafico+Curva-S+Dados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5366302087040884274" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 112px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_w_FcR0ncuFs/SnjvUPeCXjI/AAAAAAAAC-U/SJbwp91xY0I/s320/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Grafico+Curva-S+Dados.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a name="_Toc208997384"&gt;&lt;strong&gt;Tabela &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;1 – Tabela Gráfico Curva-S Esforço&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_w_FcR0ncuFs/SnjwYlF6zKI/AAAAAAAAC-k/SWkQo6AWXjQ/s1600-h/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Grafico+Curva-S.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5366303261076409506" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 178px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_w_FcR0ncuFs/SnjwYlF6zKI/AAAAAAAAC-k/SWkQo6AWXjQ/s320/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Grafico+Curva-S.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a name="_Toc208997392"&gt;&lt;strong&gt;Figura &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;1 – Gráfico Curva-S Esforço&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a name="_Toc208997376"&gt;&lt;strong&gt;3. Distribuição Gráfica de Defeitos&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A seção &lt;strong&gt;distribuição gráfica de defeitos &lt;/strong&gt;deve conter a quantidade de defeitos encontrados de forma gráfica. Ao verificar essa seção, o usuário deve ser capaz de saber quais são os defeitos que impactam um número maior de casos de teste e, dessa maneira, o Gerente de Projeto ou o próprio time de desenvolvimento poderá dar prioridade para os defeitos que mais impactam o resultado final da execução. Vale lembrar que nem sempre devemos olhar somente para o número de casos de teste que o defeito impacta, mas também analisar a severidade e prioridade do mesmo. Segue abaixo um exemplo: &lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_w_FcR0ncuFs/Snjw0Yo_K_I/AAAAAAAAC-s/OLwVeViV3Hc/s1600-h/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Defeitos+Encontrados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5366303738770172914" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 146px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_w_FcR0ncuFs/Snjw0Yo_K_I/AAAAAAAAC-s/OLwVeViV3Hc/s320/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Defeitos+Encontrados.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a name="_Toc208997393"&gt;&lt;strong&gt;Figura &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;2 – Gráfico de Defeitos Encontrados&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a name="_Toc208997377"&gt;&lt;strong&gt;4. Lista de Requisição de Mudanças&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A seção &lt;strong&gt;lista de requisição de mudanças &lt;/strong&gt;deve conter os defeitos encontrados com o ID do defeito, descrição, status, severidade, data de abertura, data de fechamento e duração (em dias).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;ID do Defeito: &lt;/em&gt;identificador do defeito;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Descrição: &lt;/em&gt;descrição do defeito (deve ser uma descrição resumida);&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Status: &lt;/em&gt;status do defeito (pode ser aberto, fechado, análise, assinalado, etc.);&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Severidade: &lt;/em&gt;severidade do defeito;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Abertura: &lt;/em&gt;data da abertura do defeito;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Fechamento: &lt;/em&gt;data do fechamento do defeito;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Duração: &lt;/em&gt;quantidade de dias que o defeito levou para chegar ao status fechado; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Ao verificar essa seção, o usuário deve ser capaz de identificar quais são os defeitos que ainda continuam abertos e qual a sua gravidade, pois dessa maneira, o Gerente de Projeto ou o próprio time de desenvolvimento poderá dar prioridade para os defeitos que tem maior severidade e impactam no resultado final da execução. Segue abaixo um exemplo:&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_w_FcR0ncuFs/SnjxKoGUvOI/AAAAAAAAC-0/cdP1lHi2eUo/s1600-h/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Defeitos+Encontrados+Dados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5366304120876874978" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 178px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_w_FcR0ncuFs/SnjxKoGUvOI/AAAAAAAAC-0/cdP1lHi2eUo/s320/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Defeitos+Encontrados+Dados.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a name="_Toc208997385"&gt;&lt;strong&gt;Tabela &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;2 – Defeitos Encontrados&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;5. &lt;/strong&gt;&lt;a name="_Toc208997378"&gt;&lt;strong&gt;Riscos&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A seção &lt;strong&gt;Riscos &lt;/strong&gt;deve conter os riscos identificados na fase de execução ou até mesmo os que estão em fases anteriores e, que de alguma forma, impactam o progresso de execução. Ao verificar essa seção, o usuário deve ser capaz de encontrar os riscos levantados até o momento de forma resumida, com uma descrição do risco e seu possível impacto não sendo necessário listar todos os dados dos riscos encontrados na fase de identificação dos riscos do produto. Segue abaixo um exemplo completo de como reportar um risco e, neste caso, fica a critério de cada Projeto e Equipe de Teste reportar os campos necessários:&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;&lt;strong&gt;Como faço para documentar os riscos?&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;Para documentar e fazer o acompanhamento dos riscos é necessário ter uma Matriz de Análise de Riscos. Nessa matriz temos alguns campos, por exemplo: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;ID do Risco: &lt;/em&gt;campo utilizado para identificar o risco;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;ID do Requisito: &lt;/em&gt;campo utilizado para identificar qual requisito está associado com o risco, se aplicável;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Projeto: &lt;/em&gt;campo utilizado para identificar o projeto associado ao risco;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Item de Risco: &lt;/em&gt;campo utilizado para documentar qual é o item de risco;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Status: &lt;/em&gt;campo utilizado para saber qual é o status do risco, por exemplo, aberto, fechado ou parado;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Impacto: &lt;/em&gt;campo utilizado para saber qual é o impacto do risco, por exemplo, alto, médio ou baixo;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Plano de Mitigação e Contingência: &lt;/em&gt;campo utilizado para documentar o plano de mitigação e contingência;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Pessoa Responsável: &lt;/em&gt;campo utilizado para identificar a pessoa responsável para ajudar, acompanhar ou resolver o risco;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Acompanhamento / Comentários: &lt;/em&gt;campo utilizado para documentar o acompanhamento e comentários em geral;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Abertura: &lt;/em&gt;campo utilizado para indicar a data de abertura do risco;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Data de Fechamento: &lt;/em&gt;campo utilizado para indicar a data de fechamento do risco;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;Duração (dias): &lt;/em&gt;campo utilizado para indicar a quantidade de dias que o risco ficou aberto.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;a name="_Toc208997379"&gt;&lt;strong&gt;6. Contatos&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;A seção &lt;strong&gt;Contatos&lt;/strong&gt; deve conter informações dos participantes do projeto de teste, principalmente na fase de execução. Será por meio desta seção que o usuário deverá ser capaz de encontrar as pessoas em caso de dúvidas com os resultados reportados ou ter acesso a qualquer outra informação. Segue abaixo um exemplo:&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;Líder de Teste: &lt;nome&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Email: &lt;email&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Telefone: &lt;telefone&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#000099;"&gt;Analista de Teste: &lt;nome&gt;&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Email: &lt;email&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Telefone: &lt;telefone&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;Testador: &lt;nome&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Email: &lt;email&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Telefone: &lt;telefone&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Para finalizar, segue o modelo do relatório:&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div id="__ss_1810309" style="WIDTH: 425px; TEXT-ALIGN: left"&gt;&lt;a title="Relatório Parcial de Execução de Teste - Exemplo" style="DISPLAY: block; MARGIN: 12px 0px 3px; FONT: 14px Helvetica,Arial,Sans-serif; TEXT-DECORATION: underline" href="http://www.slideshare.net/gustavoqz/relatrio-parcial-de-execuo-de-teste-exemplo"&gt;Relatório Parcial de Execução de Teste - Exemplo&lt;/a&gt;&lt;object style="MARGIN: 0px" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=blogtestedesoftware-0011-relatorioparcialdeexecucao-projetorelatorioparcialdata-090804153917-phpapp01&amp;amp;stripped_title=relatrio-parcial-de-execuo-de-teste-exemplo"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=blogtestedesoftware-0011-relatorioparcialdeexecucao-projetorelatorioparcialdata-090804153917-phpapp01&amp;stripped_title=relatrio-parcial-de-execuo-de-teste-exemplo" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="FONT-SIZE: 11px; PADDING-TOP: 2px; FONT-FAMILY: tahoma,arial; HEIGHT: 26px"&gt;Veja mais apresentações de &lt;a style="TEXT-DECORATION: underline" href="http://www.slideshare.net/gustavoqz"&gt;Gustavo Quezada&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p align="justify"&gt;Agora, se na sua empresa não tem um modelo de relatório parcial de execução de teste, você poderá conversar com o seu gerente imediato e propor o exemplo mostrado neste post ;-).&lt;br /&gt;&lt;br /&gt;Caso ele não goste da idéia, não vai falar que viu isso no meu blog, hein?!?!?! :-D&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Para obter mais detalhes sobre execução e relatório de teste, basta acessar o post &lt;a href="http://gustavoquezada.blogspot.com/2009/08/para-continuar-com-o-assunto-relatorio.html"&gt;Relatório e Execução de Teste&lt;/a&gt;.&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-2343914047955728080?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/2343914047955728080/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/08/relatorio-parcial-de-execucao-de-teste.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/2343914047955728080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/2343914047955728080'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/08/relatorio-parcial-de-execucao-de-teste.html' title='Relatório Parcial de Execução de Teste'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w_FcR0ncuFs/SnjvUPeCXjI/AAAAAAAAC-U/SJbwp91xY0I/s72-c/Blog+Teste+de+Software+-+0011+-+Relatorio+Parcial+de+Execucao+-+Grafico+Curva-S+Dados.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-9110217459594105430</id><published>2009-07-22T14:21:00.006-03:00</published><updated>2009-07-22T14:30:05.120-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Templates'/><category scheme='http://www.blogger.com/atom/ns#' term='CheckList'/><title type='text'>CheckList de Transição de Fases – Análise, Design e Execução de Teste</title><content type='html'>&lt;div align="justify"&gt;Uma boa prática que ajuda a minimizar os problemas de rotatividade das equipes e transição de atividades é a utilização de um Check List para cada fase. O objetivo deste post é compartilhar um checklist que ajude a garantir que todos os trabalhos realizados na fase de análise, design e execução de teste foram concluídos e passar o conhecimento adquirido nessas fases para os Engenheiros, Analistas de Teste que serão envolvidos na próxima fase de teste.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Transição da fase de análise para design&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;strong&gt;&lt;em&gt;Projeto: &lt;/em&gt;&lt;/strong&gt;Nome do Projeto e/ou Componente&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Data: &lt;/em&gt;&lt;/strong&gt;Data quando a reunião de transição aconteceu&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Participantes da Reunião de Transição:&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Incluir o nome dos participantes da reunião de transição – Nome 1&lt;br /&gt;Incluir o nome dos participantes da reunião de transição – Nome 2&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_w_FcR0ncuFs/SmdLARLiVtI/AAAAAAAAC98/BgBwNYWmz0s/s1600-h/Blog+Teste+de+Software+-+0010+-+CheckList+de+Transicao+de+Fases+-+Analise+Design+e+Execucao+de+Teste+-+Analise+para+Design.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5361336349391738578" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 246px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_w_FcR0ncuFs/SmdLARLiVtI/AAAAAAAAC98/BgBwNYWmz0s/s320/Blog+Teste+de+Software+-+0010+-+CheckList+de+Transicao+de+Fases+-+Analise+Design+e+Execucao+de+Teste+-+Analise+para+Design.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;strong&gt;2. Transição da fase de design para execução&lt;br /&gt;&lt;em&gt;Projeto: &lt;/em&gt;&lt;/strong&gt;Nome do Projeto e/ou Componente&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Data: &lt;/em&gt;&lt;/strong&gt;Data quando a reunião de transição aconteceu&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Participantes da Reunião de Transição:&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Incluir o nome dos participantes da reunião de transição – Nome 1&lt;br /&gt;Incluir o nome dos participantes da reunião de transição – Nome 2&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_w_FcR0ncuFs/SmdLOZftZbI/AAAAAAAAC-E/TNEebBR3Mj8/s1600-h/Blog+Teste+de+Software+-+0010+-+CheckList+de+Transicao+de+Fases+-+Analise+Design+e+Execucao+de+Teste+-+Design+para+Execucao.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5361336592142001586" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 248px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_w_FcR0ncuFs/SmdLOZftZbI/AAAAAAAAC-E/TNEebBR3Mj8/s320/Blog+Teste+de+Software+-+0010+-+CheckList+de+Transicao+de+Fases+-+Analise+Design+e+Execucao+de+Teste+-+Design+para+Execucao.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Como vocês podem ver, é uma maneira fácil e rápida de garantir que todos os trabalhos realizados na fase de análise, design e execução de teste foram concluídos e que o conhecimento adquirido nessas fases foi compartilhado com as partes interessadas na próxima fase de teste.&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-9110217459594105430?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/9110217459594105430/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/07/checklist-de-transicao-de-fases-analise.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/9110217459594105430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/9110217459594105430'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/07/checklist-de-transicao-de-fases-analise.html' title='CheckList de Transição de Fases – Análise, Design e Execução de Teste'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w_FcR0ncuFs/SmdLARLiVtI/AAAAAAAAC98/BgBwNYWmz0s/s72-c/Blog+Teste+de+Software+-+0010+-+CheckList+de+Transicao+de+Fases+-+Analise+Design+e+Execucao+de+Teste+-+Analise+para+Design.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-4164118328010523050</id><published>2009-07-22T14:05:00.005-03:00</published><updated>2009-07-22T14:31:12.537-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CheckList'/><category scheme='http://www.blogger.com/atom/ns#' term='Rotatividade de Equipes'/><title type='text'>Dança das Cadeiras ou Samba do Crioulo Doido? Será que isso acontece na sua empresa ou projeto(s)?</title><content type='html'>&lt;div align="justify"&gt;Você deve estar fazendo a seguinte questão “O que ele quer dizer com Dança das Cadeiras ou Samba do Crioulo Doido?”. Confesso que fiquei pensando nisso alguns dias, e como não consegui identificar se a rotatividade das pessoas nas empresas e projetos é a Dança das Cadeiras, ou se é o Samba do Crioulo Doido, acabei colocando essa questão para você decidir. Bem, como esse assunto é muito amplo e poderíamos ficar aqui horas e horas discutindo e expondo as nossas idéias, vou tentar focar em projetos de teste de software.&lt;br /&gt;&lt;br /&gt;A rotatividade das pessoas em projetos de teste de software é um fato. Essa nova era em que vivemos, "Era do Conhecimento", umas das características do profissional, é a mobilidade em busca de melhores oportunidades.&lt;br /&gt;Segundo estudos do DIEESE – Departamento Intersindical de Estatística e Estudos Socioeconômicos (publicados em 2007), no ano de 2006 a taxa mensal de rotatividade no Brasil era de 3,5% ao mês, que representa um índice anual de 42%. Em 2002, este índice era de 35% ao ano, ou seja, em cinco anos a rotatividade aumentou 20%, o que significa que em aproximadamente 2,5 anos, as empresas trocam seus quadros de funcionários.&lt;br /&gt;&lt;br /&gt;Muitas vezes as pessoas perguntam “Como resolver esse problema?”. O que eu sempre tento mostrar é que não se consegue resolver 100% do problema, mas é possível minimizá-lo fazendo um bom planejamento e gerenciamento de riscos. Vamos lá, quem aqui nunca teve esse tipo de problema em projetos que teve participação? Se você falar que isso não acontece na sua empresa me avisa que vou mandar o meu CV pra você :-). Pensando bem, acho que não vou fazer isso não, afinal, resolver os problemas dos projetos que é o legal e se fosse fácil, qualquer um faria !!!&lt;br /&gt;No momento em que estamos planejando os projetos é necessário levar em consideração o perfil dos profissionais que poderão contribuir para que o projeto seja executado com sucesso. Se você fizer um planejamento sem considerar esse item, provavelmente terá problema com a rotatividade de pessoas, pois precisará fazer a “dança das cadeiras” entre os projetos para atender o perfil que já devia ter sido pensado na hora do planejamento, isso sem considerar as pessoas que acabam saindo da empresa ou mudando de área. Sabemos também que em alguns casos não temos um profissional na empresa que tenha o perfil que o projeto está demandando, então, neste caso, temos o risco identificado e é necessário criar um plano de ação para mitigar o risco.&lt;br /&gt;&lt;br /&gt;Vale lembrar que mesmo com todo o planejamento feito, as técnicas selecionadas, o recurso e pessoas alocadas, os riscos identificados e, as partes interessadas comprometidas, sempre terão possíveis riscos de projeto com rotatividade da equipe. Neste caso, tudo o que você puder fazer para documentar o que está sendo feito no projeto de teste, faça. Só tome cuidado para não burocratizar o seu dia-a-dia.&lt;br /&gt;&lt;br /&gt;Vou tentar mostrar um exemplo clássico que acontece em projetos de testes:&lt;br /&gt;Vamos supor que temos um Gerente de Teste ou Projeto, um Líder/Arquiteto de Teste, um Analista de Teste e vários Testadores.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Fase de Planejamento&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Gerente de Teste: Ah, vamos alocar o Líder/Arquiteto X, o Analista Y e os Testadores A, B e C nesse projeto que vai dar tudo certo.&lt;br /&gt;&lt;br /&gt;Líder/Arquiteto de Teste X: Olha seu Gerente, para esse projeto precisamos de alguém que tenha conhecimento em testes de aplicação web e o Analista Y e os Testadores A, B e C não tem esse conhecimento, teríamos que treiná-los.&lt;br /&gt;&lt;br /&gt;Gerente de Teste: Não temos como fazer isso, os outros Analistas e Testadores que tem esse conhecimento não poderão participar do projeto e tenho certeza que você conseguirá resolver possíveis problemas técnicos que poderemos ter.&lt;br /&gt;&lt;br /&gt;Nesse momento o Líder/Arquiteto de Teste pensa “Vai dar M@#$%ERDA” isso ai... :-(&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Fase de Análise de Teste&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Analista de Teste Y identifica todos os casos de teste que devem ser feitos de acordo com os requisitos do sistema e executa todas as outras tarefas que pertencem a essa fase.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Pausa para o café, reunião!&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Na reunião de acompanhamento do projeto o Gerente de Teste comunica para sua equipe que aconteceu um problema no Projeto W e o Analista de Teste Y terá que mudar de projeto, e o Analista Z irá substituí-lo.&lt;br /&gt;Agora acontece o problema de transição e compartilhamento do conhecimento do Analista Y para o Analista Z, afinal, quem sabe e entende do sistema é o Analista Y.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Fase de Design de Teste&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Analista Z faz todo o design dos casos de testes identificados na fase de Análise e executa todas as outras tarefas que pertencem a essa fase. Bem, tudo pronto para começar a execução dos testes.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Fase de Execução de Teste&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;Testadores A, B e C começam a execução sem ter uma visão geral de como funciona o sistema, e ai as dúvidas começam a surgir. Um problema atrás do outro, teste executado incorretamente, etc.&lt;br /&gt;&lt;br /&gt;Bem, esse é um exemplo resumido e simplista de como as coisas acabam acontecendo quando fazemos um planejamento sem considerar o perfil do profissional.&lt;br /&gt;&lt;br /&gt;Uma boa prática que ajuda a minimizar os problemas de rotatividade das equipes e transição de atividades é utilizar um Check List para cada fase. A idéia desse check list é passar o conhecimento adquirido em cada fase para os profissionais envolvidos no projeto.&lt;br /&gt;&lt;br /&gt;No post &lt;strong&gt;&lt;em&gt;&lt;a href="http://gustavoquezada.blogspot.com/2009/07/checklist-de-transicao-de-fases-analise.html"&gt;CheckList de Transição de Fases – Análise, Design e Execução de Teste&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; coloquei um exemplo de check list para a transição entre as fases de Análise, Design e Execução de Teste.&lt;br /&gt;&lt;br /&gt;Agora me diz, na sua empresa acontece a dança das cadeiras ou samba do crioulo doido? Ou melhor, será que a dança das cadeiras acaba criando o samba do crioulo doido?&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-4164118328010523050?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/4164118328010523050/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/07/danca-das-cadeiras-ou-samba-do-crioulo.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/4164118328010523050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/4164118328010523050'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/07/danca-das-cadeiras-ou-samba-do-crioulo.html' title='Dança das Cadeiras ou Samba do Crioulo Doido? Será que isso acontece na sua empresa ou projeto(s)?'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-8743652175337417155</id><published>2009-07-01T18:59:00.003-03:00</published><updated>2009-07-01T19:04:47.339-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Papéis e Responsabilidades'/><title type='text'>Papéis e Responsabilidades do Time de Teste</title><content type='html'>&lt;div align="justify"&gt;Muitos já estão “carecas” de saber quais são os papéis e responsabilidades do time de teste, mas vale a pena relembrar, afinal, pode ser que no projeto que você esteja trabalhando as coisas estejam um pouco confusas! :-)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gerente de Teste&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;Pessoa responsável pelo êxito do esforço de teste. Seu papel envolve a defesa da qualidade e dos testes, planejamento e gerenciamento de recursos, pessoas e resolução de problemas que representam um obstáculo para o esforço de teste. Isso inclui:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Gerenciamento funcional e operacional da equipe de testes;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Planejamento e alocação de recursos e pessoas para novos projetos e produtos;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Definição da política de testes de software e acompanhamento a sua execução;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Participação em reuniões de projeto e acompanhamento;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Defender o nível apropriado de qualidade mediante a correção de defeitos importantes;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Avaliação do andamento e a eficácia do esforço de teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Acompanhamento de falhas em campo para refinar os processos de testes;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Geração de indicadores de desempenho de teste.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Líder de Testes&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;Pessoa responsável pela liderança de um projeto de teste específico, normalmente relacionado a um sistema de desenvolvimento, seja um projeto novo ou uma manutenção.&lt;br /&gt;&lt;a name="_Toc205090867"&gt; &lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Arquiteto de Teste&lt;br /&gt;&lt;/strong&gt;É o técnico responsável pelo levantamento de necessidades relacionadas à montagem da infra-estrutura de teste, incluindo-se o ambiente de teste, a arquitetura de solução, as restrições tecnológicas, as ferramentas de teste. Também responsável pela liderança técnica do trabalho de teste e pela comunicação entre a equipe de teste e a equipe de projeto (ou equipe de desenvolvimento).&lt;br /&gt;&lt;a name="_Toc205090868"&gt; &lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Analista de Teste&lt;br /&gt;&lt;/strong&gt;É o técnico responsável pela operacionalização do processo de teste. Deve seguir as orientações do gerente de teste e/ou do arquiteto de teste para detalhar a forma de execução dos testes e as condições de teste necessárias. Também deve focar seu trabalho nas técnicas de teste adequadas à fase de teste trabalhada.&lt;br /&gt;&lt;a name="_Toc205090869"&gt; &lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Analista de Ambiente de Teste&lt;br /&gt;&lt;/strong&gt;É o técnico responsável pela configuração do ambiente de teste e pela aplicação das ferramentas necessárias para tal. Esse profissional deve ser especializado em arquiteturas de solução, nos sistemas operacionais e softwares de infra-estrutura que regem o ambiente. Ele será responsável por tornar disponível o ambiente de teste.&lt;br /&gt;&lt;a name="_Toc205090870"&gt; &lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Testador&lt;br /&gt;&lt;/strong&gt;É o técnico responsável pela execução de teste. Ele deve observar as condições e respectivos passos de teste documentados pelo analista de teste e evidenciar os resultados de execução. Em casos de execuções de teste mal-sucedidas, esse profissional pode também registrar ocorrências (na maioria das vezes, defeitos), em canais através dos quais os desenvolvedores tomarão conhecimento e providências de correção ou esclarecimentos das mesmas.&lt;br /&gt;&lt;a name="_Toc205090871"&gt; &lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Automatizador de Teste&lt;br /&gt;&lt;/strong&gt;É o técnico responsável pela automação de situações de teste em ferramentas. Ele deve observar as condições de teste e respectivos passos documentados pelo analista de teste e automatizar a execução desses testes na ferramenta utilizada. Normalmente são gerados scripts de teste que permitem a execução de ciclos de teste sempre que julgar necessário, desde que é claro,  sejam garantidas as mesmas condições iniciais do ciclo de teste (valores de dados, estados dos dados, estados do ambiente, etc.).&lt;br /&gt;&lt;a name="_Toc205090872"&gt; &lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Papéis e Pessoas&lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Uma pessoa pode acumular mais de um dos papéis citados acima, de acordo com características e restrições de projetos de desenvolvimento de software, nas quais estejam inseridas.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Vale lembrar que os papéis e responsabilidades citados acima não é uma regra! :-)&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-8743652175337417155?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/8743652175337417155/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/07/papeis-e-responsabilidades-do-time-de.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8743652175337417155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8743652175337417155'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/07/papeis-e-responsabilidades-do-time-de.html' title='Papéis e Responsabilidades do Time de Teste'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-8135667404786024853</id><published>2009-06-26T14:11:00.001-03:00</published><updated>2009-06-26T14:16:31.917-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perguntas e Respostas'/><title type='text'>Perguntas e Respostas - Parte 3</title><content type='html'>&lt;div align="justify"&gt;E para “finalizar” a primeira série de Perguntas e Respostas, vamos tentar esclarecer a pergunta 3 e 4.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3) Ter um especialista em Qualidade de Software significa que o desenvolvedor não precisa desenvolver um projeto com tanta atenção ou cuidado?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Ter um time de teste de software trabalhando em conjunto com o time de desenvolvimento, não significa que os desenvolvedores não precisam ter atenção ou cuidado na hora de desenvolver o produto ou software, muito pelo contrário, o desenvolvedor deve ter sempre muita atenção no seu trabalho, afinal, o sucesso do projeto depende muito da sua contribuição. O desenvolvedor tem de pensar que existe um time de teste que está focado para garantir a qualidade do produto, e não desenvolver um produto com qualidade. A maior responsabilidade de construir um produto com qualidade é do time de desenvolvimento.&lt;br /&gt;&lt;br /&gt;Bem, falar para o desenvolvedor ter atenção e cuidado é fácil, difícil é fazer. Já fui desenvolvedor um dia e sei como isso funciona. O mais importante é o desenvolvedor ter em mente o seguinte: quanto mais cuidado e atenção ele tiver na hora que estiver desenvolvendo um produto, menos defeito será introduzido, e com isso, menos retrabalho ele terá.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4) Em um projeto relativamente pequeno, é necessário o teste?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Se você deseja garantir a qualidade do seu projeto, seja ele, pequeno, médio ou grande, não terá alternativa a não ser TESTÁ-LO!!!&lt;br /&gt;&lt;br /&gt;Se você não quer ter a imagem da sua empresa prejudicada junto ao cliente, então garanta a qualidade do produto que está sendo entregue, mesmo sendo um projeto pequeno e simples.&lt;br /&gt;&lt;br /&gt;Vale lembrar que a quantidade e tipos de teste irão variar de acordo com o tamanho, complexidade e características do seu projeto.&lt;br /&gt;&lt;br /&gt;Espero que tenham gostado! :-D&lt;br /&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-8135667404786024853?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/8135667404786024853/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/perguntas-e-respostas-parte-3.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8135667404786024853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8135667404786024853'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/perguntas-e-respostas-parte-3.html' title='Perguntas e Respostas - Parte 3'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-4158626797792127323</id><published>2009-06-22T23:04:00.003-03:00</published><updated>2009-06-26T14:16:56.220-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perguntas e Respostas'/><title type='text'>Perguntas e Respostas - Parte 2</title><content type='html'>&lt;div align="justify"&gt;Como prometido, vamos tentar esclarecer a pergunta 2.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2) Quando o teste de software é aplicado? Existe um momento exato ou acontece durante todo o processo de desenvolvimento? Como funcionam os testes de software? Quais são as etapas?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;A experiência tem mostrado que bons resultados não são alcançados quando o próprio desenvolvedor realiza os testes, uma vez que é muito difícil fazer com que esses profissionais atuem ao mesmo tempo como desenvolvedores e testadores.&lt;br /&gt;&lt;br /&gt;No conceito “V” de teste, os procedimentos de fazer e conferir convergem do início até o fim do projeto. O time de desenvolvimento trabalha com o objetivo de implementar o sistema, já o time de teste executa procedimentos de teste visando minimizar e eliminar riscos e defeitos do sistema. Com isso, o alto nível de riscos que caracteriza os projetos de desenvolvimento de software irá decrescer a um patamar aceitável que permita a conclusão bem-sucedida.&lt;br /&gt;Os benefícios advindos da adoção do modelo em “V” são claros: detecção precoce de defeitos, maior envolvimento do time de testes no início do projeto e aumento da qualidade do software.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://4.bp.blogspot.com/_w_FcR0ncuFs/SkA4pUiYrzI/AAAAAAAAC9E/8icnundXy5g/s1600-h/Blog+Teste+de+Software+-+0006+-+Perguntas+e+Respostas+Parte+2+-+Modelo+V.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5350338639854874418" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 246px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_w_FcR0ncuFs/SkA4pUiYrzI/AAAAAAAAC9E/8icnundXy5g/s320/Blog+Teste+de+Software+-+0006+-+Perguntas+e+Respostas+Parte+2+-+Modelo+V.jpg" border="0" /&gt;&lt;/p&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_w_FcR0ncuFs/SkA4pUiYrzI/AAAAAAAAC9E/8icnundXy5g/s1600-h/Blog+Teste+de+Software+-+0006+-+Perguntas+e+Respostas+Parte+2+-+Modelo+V.jpg"&gt;&lt;p align="justify"&gt;&lt;/a&gt;&lt;br /&gt;O ciclo de vida do teste faz parte do ciclo de vida do software e eles devem ser iniciados ao mesmo tempo. O processo de design e desenvolvimento de testes pode ser tão complexo quanto o processo de desenvolvimento do software em si. Se os testes não forem iniciados juntamente com os primeiros releases executáveis do software, o esforço de teste retardará a descoberta de muitos problemas no ciclo de desenvolvimento. Em geral, isso resulta em um longo período de correção de erros após a programação de desenvolvimento, acabando com as metas e as vantagens do desenvolvimento iterativo.&lt;br /&gt;&lt;br /&gt;Além da possibilidade de retrabalho já mencionada, a equipe de teste precisa ter cuidado para manter seu papel como consultora de qualidade imparcial e não se desviar das atividades de design e dos requisitos iniciais, atuando como "guardiã da qualidade".&lt;br /&gt;Os problemas localizados durante uma iteração podem ser solucionados ou adiados para a próxima — uma decisão que fica, em última instância, a critério do Gerente de Teste. Uma das principais tarefas da equipe de teste e dos gerentes de projeto consiste em medir a abrangência da iteração, verificando se os objetivos de cada iteração foram alcançados. A "detecção de requisitos" é realizada continuamente a cada iteração, e você precisa estar atento e preparado para gerenciá-la.&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_w_FcR0ncuFs/SkA5MtF6o6I/AAAAAAAAC9M/pnJldrPFdA8/s1600-h/Blog+Teste+de+Software+-+0006+-+Perguntas+e+Respostas+Parte+2+-+Fase.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5350339247741772706" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 262px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_w_FcR0ncuFs/SkA5MtF6o6I/AAAAAAAAC9M/pnJldrPFdA8/s320/Blog+Teste+de+Software+-+0006+-+Perguntas+e+Respostas+Parte+2+-+Fase.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;Após cada iteração ou fase é necessário re-planejar as atividades seguintes, caso necessário. Em alguns casos, os projetos podem ter somente a fase de execução de teste após a fase de planejamento de teste.&lt;br /&gt;&lt;br /&gt;Para todas as fases de testes temos critérios de entrada e saída e muitas vezes, os critérios de saída de uma fase, são os critérios de entrada da fase seguinte.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Estimativa de Teste&lt;/li&gt;&lt;li&gt;==&gt; Estimativa de teste inicial;&lt;/li&gt;&lt;li&gt;==&gt; Confirmação da nova funcionalidade no cronograma de teste;&lt;/li&gt;&lt;li&gt;Análise de Teste&lt;/li&gt;&lt;li&gt;Design de Teste&lt;/li&gt;&lt;li&gt;Execução de Teste&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Para entender um pouco como funcionam os critérios de entrada e saída das fases, segue um exemplo abaixo:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fase de Estimativa de Teste:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;em&gt;&lt;strong&gt;&lt;ul&gt;&lt;li&gt;&lt;/strong&gt;&lt;/em&gt;Critérios de Entrada:&lt;/li&gt;&lt;li&gt;==&gt; Email do time de desenvolvimento requisitando uma nova estimativa de teste;&lt;/li&gt;&lt;li&gt;==&gt; Documentos de requisitos disponíveis.&lt;/li&gt;&lt;li&gt;Critérios de Saída: &lt;/li&gt;&lt;li&gt;==&gt; Documento de estimativa criado e atualizado com os valores estimados;&lt;/li&gt;&lt;li&gt;==&gt; Cronograma de Teste atualizado.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fase de Análise de Teste:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;em&gt;&lt;strong&gt;&lt;ul&gt;&lt;li&gt;&lt;/strong&gt;&lt;/em&gt;Critérios de Entrada: &lt;/li&gt;&lt;li&gt;==&gt; Documento de estimativa criado e atualizado com os valores estimados;&lt;/li&gt;&lt;li&gt;==&gt; Email de alocação de análise e design de teste;&lt;/li&gt;&lt;li&gt;==&gt; Documentos de requisitos disponíveis.&lt;/li&gt;&lt;li&gt;Critérios de Saída: &lt;/li&gt;&lt;li&gt;==&gt; Documento com o cabeçalho dos casos de teste que serão criados;&lt;/li&gt;&lt;li&gt;==&gt; Plano de Teste atualizado;&lt;/li&gt;&lt;li&gt;==&gt; Cronograma de Teste atualizado (se aplicável);&lt;/li&gt;&lt;li&gt;==&gt; Matriz de Rastreabilidade de Requisitos (opcional).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fase de Design de Teste:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;em&gt;&lt;strong&gt;&lt;ul&gt;&lt;li&gt;&lt;/strong&gt;&lt;/em&gt;Critérios de Entrada: &lt;/li&gt;&lt;li&gt;==&gt; Documento com o cabeçalho dos casos de teste que serão criados;&lt;/li&gt;&lt;li&gt;==&gt; Email de alocação de análise e design de teste;&lt;/li&gt;&lt;li&gt;==&gt; Documentos de requisitos disponíveis;&lt;/li&gt;&lt;li&gt;==&gt; Plano de Teste atualizado;&lt;/li&gt;&lt;li&gt;==&gt; Cronograma de teste atualizado (se aplicável);&lt;/li&gt;&lt;li&gt;==&gt; Matriz de Rastreabilidade de Requisitos (opcional).&lt;/li&gt;&lt;li&gt;Critérios de Saída: &lt;/li&gt;&lt;li&gt;==&gt; Casos de Teste criados, revisados e atualizados;&lt;/li&gt;&lt;li&gt;==&gt; Email para o Gerente de Testes requisitando o fechamento da atividade;&lt;/li&gt;&lt;li&gt;==&gt; Plano de Teste atualizado;&lt;/li&gt;&lt;li&gt;==&gt; Cronograma de teste atualizado (se aplicável);&lt;/li&gt;&lt;li&gt;==&gt; Matriz de Rastreabilidade de Requisitos (opcional).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Fase de Execução de Teste:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;em&gt;&lt;strong&gt;&lt;ul&gt;&lt;li&gt;&lt;/strong&gt;&lt;/em&gt;Critérios de Entrada: &lt;/li&gt;&lt;li&gt;==&gt; Email do time de teste requisitando uma nova execução de teste;&lt;/li&gt;&lt;li&gt;==&gt; Plano de Teste atualizado;&lt;/li&gt;&lt;li&gt;==&gt; Ciclo de execução de teste criado;&lt;/li&gt;&lt;li&gt;==&gt; Email de notificação do novo release para teste;&lt;/li&gt;&lt;li&gt;==&gt; Documento de requisitos disponíveis;&lt;/li&gt;&lt;li&gt;==&gt; Gráfico Curva-S com o planejamento da execução (planejado x executado).&lt;/li&gt;&lt;li&gt;Critérios de Saída: &lt;/li&gt;&lt;li&gt;==&gt; Ciclo atualizado;&lt;/li&gt;&lt;li&gt;==&gt; Gráfico Curva-S com o planejamento da execução (planejado x executado);&lt;/li&gt;&lt;li&gt;==&gt; Relatório de execução de teste parcial (se aplicável);&lt;/li&gt;&lt;li&gt;==&gt; Relatório de execução de teste final (se aplicável);&lt;/li&gt;&lt;li&gt;==&gt; Plano de teste atualizado.&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Então, gostaram? Espero que tenha esclarecido algumas dúvidas que geralmente surgem nos projeto.&lt;br /&gt;&lt;br /&gt;No próximo post irei responder as seguintes questões:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3) Ter um especialista em Qualidade de Software significa que o desenvolvedor não precisa desenvolver um projeto com tanta atenção ou cuidado?&lt;br /&gt;&lt;br /&gt;4) Em um projeto relativamente pequeno, é necessário o teste?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-4158626797792127323?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/4158626797792127323/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/perguntas-e-respostas-parte-2.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/4158626797792127323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/4158626797792127323'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/perguntas-e-respostas-parte-2.html' title='Perguntas e Respostas - Parte 2'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w_FcR0ncuFs/SkA4pUiYrzI/AAAAAAAAC9E/8icnundXy5g/s72-c/Blog+Teste+de+Software+-+0006+-+Perguntas+e+Respostas+Parte+2+-+Modelo+V.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-3320003559830629182</id><published>2009-06-15T20:53:00.004-03:00</published><updated>2009-06-26T14:17:34.039-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perguntas e Respostas'/><title type='text'>Perguntas e Respostas - Parte 1</title><content type='html'>&lt;p align="justify"&gt;Você deve estar perguntando... “Perguntas e Respostas?”... Eu achei que esse Quezada era maluco, mas agora está comprovado... Tanto nome melhor para colocar no título do post e ele coloca Perguntas e Respostas... :-P&lt;/p&gt;&lt;p align="justify"&gt;Vamos parar de besteira e falar, ou melhor, escrever o que interessa. Vou escrever 3 novos post’s no formato de perguntas e respostas e a idéia e tentar responder algumas perguntas que ficam no “ar”. Para este primeiro post vou falar um pouco sobre as minhas atividades, que com certeza irão ajudar outras pessoas, e sobre as vantagens do teste e qualidade de software para a empresa e para o cliente. Então, vamos lá...&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;1) Como é o seu trabalho como Gerente de Teste de Software na AsGa Sistemas? Quais as vantagens do teste de qualidade de software para a empresa e para o cliente?&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;Muitas pessoas acham que o trabalho de um Gerente de Teste de Software está relacionado somente com as tarefas de teste de um projeto. Será que isso é verdade nos dias de hoje? Isso realmente era verdade há alguns anos atrás. Hoje em dia, um Gerente de Teste de Software deve cuidar não somente das tarefas ou atividades de teste de um projeto, ele deve ser uma das pessoas responsáveis pelo sucesso de um projeto, colaborando em todas as fases do projeto focando na qualidade do mesmo.&lt;br /&gt;&lt;br /&gt;As principais atividades que estão sob a minha responsabilidade são:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Gerenciamento funcional e operacional da equipe de testes;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Planejamento e alocação de recursos e pessoas para novos projetos e produtos;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Elaboração de Proposta Técnica e Comercial para projetos de teste de software;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Definição da política de testes de software e acompanhamento a sua execução;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Participação em reuniões de projeto e acompanhamento;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Criação e atualização das metodologias, modelos, framework e processos de teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Avaliação do andamento e a eficácia do esforço de teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Supervisão da criação dos planos e casos de testes;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Responsável pela especificação da política e processo de teste em propostas técnicas para operadoras de Telecom (TIM, Oi, Claro, Vivo, Etc.), incluindo especificação de ambiente de teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Acompanhamento da correção dos erros encontrados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Acompanhamento de falhas em campo para refinar os processos de testes;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Geração de indicadores de desempenho de teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Geração de indicadores de desempenho junto à área de operações.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Eu sempre digo que o dia-a-dia de trabalho das pessoas em uma empresa vai depender de como é o ambiente de trabalho desta empresa, podendo ser muito agradável e prazeroso, ou um tédio. Se o ambiente que você trabalha não é agradável, existe muita competição entre as áreas ou até mesmo dentro da sua própria área, conflito de interesses, etc., pode ter certeza que o seu desafio será muito maior. Trabalhar na AsGa Sistemas é muito prazeroso e agradável. Os profissionais que lá trabalham são extremamente comprometidos, estão sempre dispostos a ajudar com os desafios técnicos, propondo soluções simples, eficazes e eficientes, sempre pensando no que é melhor para o projeto e empresa. Os times de desenvolvimento e teste estão sempre se comunicando e focando nos objetivos e metas dos projetos.&lt;/p&gt;&lt;p align="justify"&gt;A principal vantagem do teste de software para a empresa é a garantia da qualidade dos produtos, afinal, não basta ter um produto no mercado, é necessário ter um produto com qualidade, o que torna-o confiável e muito mais competitivo. Além disso, quando mais tarde o defeito for encontrado, mais caro ele será, o que resulta na famosa curva "&lt;strong&gt;Regra 10 Myers&lt;/strong&gt;". Com isso, ambos (empresa e cliente) saem ganhando, pois o custo do projeto acaba sendo menor. A AsGa Sistemas está totalmente comprometida com a qualidade de seus produtos, e é por isso que temos um time de teste independente do time de desenvolvimento. Temos dois times principais em cada projeto, um focado no desenvolvimento dos produtos (time de desenvolvimento), e outro focado na qualidade (time de teste). Já a principal vantagem do teste de software para o cliente, é ter a garantia que o seu produto estará funcionando corretamente 24 horas x 7 dias. Além das vantagens citadas, vale a pena citar alguns produtos do processo de teste que agregam valor para a empresa:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Qualidade do processo;&lt;/li&gt;&lt;li&gt;Aumento da qualidade do produto;&lt;/li&gt;&lt;li&gt;Diminuição do retrabalho;&lt;/li&gt;&lt;li&gt;Maior produtividade;&lt;/li&gt;&lt;li&gt;Redução do tempo para atender o mercado;&lt;/li&gt;&lt;li&gt;Maior competitividade;&lt;/li&gt;&lt;li&gt;Maior precisão nas estimativas;&lt;/li&gt;&lt;li&gt;Acompanhamento da satisfação do cliente;&lt;/li&gt;&lt;li&gt;Promover a melhoria contínua da qualidade de produtoFormalização dos processos de teste.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;A formalização dos processos de testes apresenta maiores ganhos nas seguintes situações:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Quanto mais inexperiente for a equipe;&lt;/li&gt;&lt;li&gt;Quanto mais complexo for o ambiente;&lt;/li&gt;&lt;li&gt;Quanto mais profissionais estejam envolvidos;&lt;/li&gt;&lt;li&gt;Quanto mais projetos simultâneos ocorrerem;&lt;/li&gt;&lt;li&gt;Quanto mais sua organização deseja crescer.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Essa primeira questão foi uma introdução para as próximas.&lt;/p&gt;&lt;p&gt;No próximo post irei responder a seguinte questão:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2) Quando o teste de software é aplicado? Existe um momento exato ou acontece durante todo o processo de desenvolvimento? Como funcionam os testes de software? Quais são as etapas?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-3320003559830629182?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/3320003559830629182/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/perguntas-e-respostas-parte-1.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/3320003559830629182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/3320003559830629182'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/perguntas-e-respostas-parte-1.html' title='Perguntas e Respostas - Parte 1'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-8691839338111967936</id><published>2009-06-09T23:23:00.005-03:00</published><updated>2009-06-09T23:47:32.985-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geral'/><title type='text'>O mundo pertence aqueles que pensam em novos caminhos</title><content type='html'>&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;Há algumas semanas atrás, estávamos fazendo uma reunião de projeto e o Gerente do Projeto fez um comentário que 100% dos participantes (time de desenvolvimento e teste) ficaram sem entender nada no primeiro momento. Sabe qual foi o comentário? Foi o seguinte: “Bem, agora que o time de desenvolvimento concluiu o desenvolvimento e a execução dos testes unitários do release, e disponibilizarão o mesmo para o time de teste iniciar a execução dos testes, vou pegar a minha CADEIRA DE RODAS para andar pelo sistema!”. Nossa! Essa frase deixou um ponto de interrogação (?) na “testa” de cada pessoa que estava participando da reunião. Ninguém entendeu nada.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Creio que o pessoal que trabalha na área de teste e qualidade de software tenha entendido, não? Você entendeu? Está com dúvida? Vamos assistir ao vídeo abaixo para ter certeza que você entendeu.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;b style=""&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;    &lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-963c4313366b9b4c" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v16.nonxt5.googlevideo.com/videoplayback?id%3D963c4313366b9b4c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329876585%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4A429C775E4B045DDA95031004A97E7BA77F6F7E.BDB0C71035FB9F9CE577CF3A5F0AC46B2749002%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D963c4313366b9b4c%26offsetms%3D5000%26itag%3Dw160%26sigh%3DqoEFZ68c7EkRBmeyAzj3V_q8D2E&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v16.nonxt5.googlevideo.com/videoplayback?id%3D963c4313366b9b4c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329876585%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4A429C775E4B045DDA95031004A97E7BA77F6F7E.BDB0C71035FB9F9CE577CF3A5F0AC46B2749002%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D963c4313366b9b4c%26offsetms%3D5000%26itag%3Dw160%26sigh%3DqoEFZ68c7EkRBmeyAzj3V_q8D2E&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;E ai, entendeu? Não, vamos lá então...&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;Vamos utilizar a Arquitetura Inclusiva para “traduzir” este vídeo para a área de teste e qualidade de software.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;A falta de acessibilidade é a principal barreira enfrentada por pessoas que convivem com algum tipo de deficiência nas grandes cidades brasileiras. E a inclusão desta importante parcela da população – 24,6 milhões de pessoas em todo o país, segundo o Instituto Brasileiro de Geografia e Estatística (IBGE), é um desafio cada vez maior para arquitetos, engenheiros e responsáveis pela definição e implantação de políticas públicas que permitam aos que têm mobilidade reduzida se locomoverem com autonomia e independência.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;Essa falta de “acessibilidade” é totalmente aplicada a nossa área de teste e qualidade de software. Na maioria das vezes os desenvolvedores de software não pensam nas possíveis falhas que podem ocorrer nos sistemas que estão desenvolvendo. Quantas vezes você já fez a pergunta “&lt;b style=""&gt;E se eu fizer isso ou aquilo, o que vai acontecer?&lt;/b&gt;” e o time de desenvolvimento respondeu “&lt;b style=""&gt;Xiiiii, isso eu não sei o que vai acontecer não. Não tem requisito pra isso&lt;/b&gt;”. Ou aquela velha frase que já conhecemos quando reportamos uma falha quando não existe um requisito específico associado a ela “&lt;b style=""&gt;Isso não é uma falha, é Work as Design&lt;/b&gt;” :-P !&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;Tudo isso é para incentivar os desenvolvedores de software a passearem de “cadeira de rodas” pelo sistema antes de disponibilizar um release para o time de teste, afinal, muitas vezes existem falhas que basta você acessar a segunda tela do sistema que elas aparecem.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p class="Corpo-de-texto" style="margin-bottom: 0.0001pt;"&gt;Só lembrando que não estou criticando os desenvolvedores de software, que fique bem claro isso! Eu já fui desenvolvedor de software e ainda hoje gosto de brincar de ser desenvolvedor.&lt;o:p&gt;&lt;/o:p&gt;&lt;b style=""&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="Corpo-de-texto" style="margin-bottom: 0.0001pt;"&gt;&lt;b style=""&gt;O mundo pertence aqueles que pensam em novos caminhos!!! Fica ai a dica!&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="Corpo-de-texto" style="margin-bottom: 0.0001pt;"&gt;Até+,&lt;/p&gt;&lt;p class="Corpo-de-texto" style="margin-bottom: 0.0001pt;"&gt;Quezada&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-8691839338111967936?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=963c4313366b9b4c&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/8691839338111967936/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/o-mundo-pertence-aqueles-que-pensam-em.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8691839338111967936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8691839338111967936'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/o-mundo-pertence-aqueles-que-pensam-em.html' title='O mundo pertence aqueles que pensam em novos caminhos'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-8313612403525356367</id><published>2009-06-05T15:19:00.034-03:00</published><updated>2009-06-09T09:55:27.512-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Estimativa'/><title type='text'>Estimativa de Teste utilizando uma Matriz de Teste por Tipo de Funcionalidade</title><content type='html'>&lt;div align="justify"&gt;Um assunto que está sendo muito discutido na nossa área de teste atualmente é &lt;strong&gt;Estimativa de Esforço de Teste&lt;/strong&gt;. Essa fase do projeto de teste é muito importante e devemos dar atenção especial para ela, afinal, a estimativa deve ser a mais &lt;strong&gt;confiável&lt;/strong&gt; possível. Devemos tomar muito cuidado com o que é, ou foi estimado, pois a maioria dos &lt;strong&gt;Gerentes de Projeto&lt;/strong&gt; quer que você assine essa estimativa com “&lt;strong&gt;sangue&lt;/strong&gt;” e com certeza irão lembrar-se de você caso o valor realizado seja totalmente diferente do estimado, ou seja, o valor planejado deve ser o mais próximo possível do valor realizado.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;O que geralmente acontece é o seguinte: Um analista de teste precisa analisar e estimar os casos de testes que serão desenvolvidos para testar um software. Na maioria das vezes as estimativas não usam qualquer técnica, não são comuns em toda organização e, o que é pior, elas não garantem que a cobertura de testes está validando todos os requisitos.&lt;/div&gt;&lt;p align="justify"&gt;O objetivo deste artigo é mostrar uma maneira fácil, simples e eficaz de estimar o esforço de teste utilizando uma &lt;strong&gt;Matriz de Teste por Tipo de Funcionalidade&lt;/strong&gt; e o que é mais importante, documentar o “estimado”.&lt;/p&gt;&lt;p align="justify"&gt;Para que a estimativa de esforço e custo de teste seja feita da maneira mais cuidadosa possível, deve-se levar em consideração algumas atividades para isso, como por exemplo:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Determinar e manter as estimativas dos produtos de trabalho e tarefas de teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Estudar os fatores que possam influenciar a estimativa;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Selecionar modelos e/ou dados históricos que servirão para transformar os produtos de trabalho e tarefas de teste em estimativas de esforço e custo;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Incluir as necessidades de infra-estrutura;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Documentar os riscos resultantes da análise dos documentos;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Documentar os dados da estimativa, incluindo as informações necessárias para a reutilização em novas estimativas.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Um “modelo” muito utilizado nas empresas para realizar as estimativas é a intuição e julgamento de um especialista baseados na experiência em planejar e testar sistemas semelhantes. Dessa forma, a precisão da estimativa depende da experiência, competência, objetividade e percepção de quem realiza a estimativa.&lt;/p&gt;&lt;p align="justify"&gt;Os produtos de trabalhos gerados na fase de estimativa são os critérios de entrada para a fase de planejamento onde é verificado o esforço e custo do projeto incluindo a disponibilidade de recurso, infra-estrutura, negociação com o time de desenvolvimento, etc. Para facilitar essa interação entre a fase de estimativa e planejamento devemos documentar tudo o que foi analisado e estimado. Abaixo seguem alguns itens que podem ser documentados na estimativa de esforço:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Documentos usados para estimar&lt;/strong&gt;: Nome e versão dos documentos utilizados durante a estimativa;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Data&lt;/strong&gt;: Data quando a estimativa foi completada;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Data da Requisição&lt;/strong&gt;: Data quando a estimativa foi solicitada;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Responsável&lt;/strong&gt;: Pessoa que fez a estimativa, podendo haver mais de uma pessoa responsável;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Esforço Atual da Estimativa&lt;/strong&gt;: Esforço gasto na estimativa;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Complexidade&lt;/strong&gt;: Indica se a funcionalidade tem uma complexidade baixa, média ou alta para testar. Considerar quantidade de suporte de teste requerido, riscos e desafios;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Razão para complexidade&lt;/strong&gt;: indicar o porquê a funcionalidade foi marcada com a dada complexidade;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Análise de Teste&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Requisitos Funcionais&lt;/em&gt;: Número de requisitos funcionais aplicáveis;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Requisitos de Interface&lt;/em&gt;: Número de requisitos de interface aplicáveis;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Casos de Teste&lt;/em&gt;: Número de Casos de Teste estimado;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Premissas&lt;/em&gt;: Premissas identificadas para fase de design;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Esforço Calculado&lt;/em&gt;: Esforço de análise calculado baseado no número de casos de teste estimado;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Esforço Calculado para Revisão&lt;/em&gt;: Esforço da revisão dos casos de teste sugeridos na fase de análise.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Design de Teste&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Casos de Teste&lt;/em&gt;: Número de Novos Casos de Teste;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Casos de Teste Reutilizados&lt;/em&gt;: Número de Casos de Teste Reutilizados (nenhum esforço de design requerido);&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Premissas&lt;/em&gt;: Premissas identificadas para fase de execução;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Esforço Calculado&lt;/em&gt;: Esforço de design calculado baseado no número de casos de teste a serem criados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Esforço Calculado para Revisão&lt;/em&gt;: Esforço da revisão dos casos de teste criados na fase de design.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Execução de Teste&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Casos de Teste&lt;/em&gt;: Número de Casos de Teste que serão executados para a funcionalidade incluindo testes de regressão;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Total de Casos de Teste&lt;/em&gt;: Número Total de Casos de Teste que serão executados incluindo a porcentagem de casos de testes falhados e bloqueados para todos os ciclos de execução;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Premissas&lt;/em&gt;: Premissas identificadas para fase de execução. Podendo conter também indicações sobre casos de teste adicionais de regressão ou reuso, porcentagem de defeitos encontrados, porcentagem de re-execução de casos de teste passados;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;em&gt;=&gt; Esforço Calculado&lt;/em&gt;: Esforço de execução calculado baseado no número de casos de teste a serem executados.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Otimista&lt;/strong&gt;: Valor otimista da estimativa gerada;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Mais provável&lt;/strong&gt;: Valor mais provável da estimativa gerada;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Pessimista&lt;/strong&gt;: Valor pessimista da estimativa gerada.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Para ajudar a calcular o valor otimista, mais provável e pessimista, pode-se usar a simulação de &lt;a href="http://pt.wikipedia.org/wiki/M%C3%A9todo_de_Monte_Carlo"&gt;Monte Carlo&lt;/a&gt;. Uma boa prática para ajudar o trabalho de estimativa de teste é utilizar um mapa da mente, por exemplo, usar o software &lt;a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page"&gt;Free Mind&lt;/a&gt;.&lt;/p&gt;&lt;p align="justify"&gt;Bem, agora que já vimos uma maneira fácil e simples de documentar tudo o que foi estimado, chegou o momento de verificar o que é essa tal &lt;strong&gt;Matriz de Teste por Tipo de Funcionalidade&lt;/strong&gt;. Será que essa matriz é um bicho de 7 cabeças? Claro que não, é uma das coisas mais simples que já desenvolvi e que ajudam muito na hora de fazer uma estimativa de teste.&lt;/p&gt;&lt;p align="justify"&gt;Quem aqui já precisou fazer uma estimativa para um novo projeto e teve aquela leve impressão de já ter feito uma estimativa anterior para uma mesma funcionalidade que está prevista para o novo projeto? Aquela funcionalidade de leitura de arquivo TXT ou XLS, validação de campos de formulários, realizar operações em Banco de Dados, etc.&lt;/p&gt;&lt;p align="justify"&gt;Se você já passou por isso, com certeza chegou a hora de criar uma Matriz de Teste por Tipo de Funcionalidade para você nunca mais ficar perdendo tempo na hora de estimar e deixar de identificar casos de teste já identificados anteriormente em projetos anteriores. Essa matriz é uma base de conhecimento onde documentamos todos os testes/cenários necessários para testar um determinado tipo de funcionalidade. Neste momento, você deve estar pensando “Esse cara é maluco, é só isso mesmo?”. A resposta é mais simples ainda... quer dizer, me deixa pensar um pouco... continuo pensando... Ah, já sei... SIM, é só isso mesmo :-) . Segue abaixo um exemplo de uma Matriz de Teste por Tipo de Funcionalidade.&lt;/p&gt;&lt;p align="justify"&gt;No nosso exemplo usaremos os seguintes campos na nossa Matriz:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Telas / Funcionalidade&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Testes - Características&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Testes – Sub-características&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Categorias do TesteTipo de Teste&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_w_FcR0ncuFs/Sixtb_cyWmI/AAAAAAAAC8A/db7WTsIJ_gU/s1600-h/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Mensagem+de+Erro.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5344767185438005858" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 131px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_w_FcR0ncuFs/Sixtb_cyWmI/AAAAAAAAC8A/db7WTsIJ_gU/s320/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Mensagem+de+Erro.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_w_FcR0ncuFs/Sixt5O5TvBI/AAAAAAAAC8I/Buqvl3nJ5yQ/s1600-h/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Grid.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5344767687800372242" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 310px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_w_FcR0ncuFs/Sixt5O5TvBI/AAAAAAAAC8I/Buqvl3nJ5yQ/s320/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Grid.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_w_FcR0ncuFs/SixuQA1RD2I/AAAAAAAAC8Q/9xqhT2JcoUs/s1600-h/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Formulario.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5344768079162314594" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 218px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_w_FcR0ncuFs/SixuQA1RD2I/AAAAAAAAC8Q/9xqhT2JcoUs/s320/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Formulario.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;Para ajudar a analisar a matriz, é uma boa prática criar um gráfico, pois assim ficará fácil identificar a quantidade de testes para cada funcionalidade. Abaixo temos a consolidação dos dados (utilizei a Pivot Table do Microsoft Excel para gerar a tabela de dados) e o gráfico gerado para este exemplo.&lt;/p&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_w_FcR0ncuFs/Sixun0mLQSI/AAAAAAAAC8Y/ywQZUBNKHR8/s1600-h/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Grafico+Dados.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5344768488194654498" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 117px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_w_FcR0ncuFs/Sixun0mLQSI/AAAAAAAAC8Y/ywQZUBNKHR8/s320/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Grafico+Dados.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_w_FcR0ncuFs/Sixu-s6R8DI/AAAAAAAAC8g/XNj8FWVIfBQ/s1600-h/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Grafico.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5344768881268486194" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 160px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_w_FcR0ncuFs/Sixu-s6R8DI/AAAAAAAAC8g/XNj8FWVIfBQ/s320/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Grafico.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="justify"&gt;Depois de ter a primeira versão da Matriz criada é só ir adicionando, modificando os testes/cenários por funcionalidade. Simples assim !!! ;-) Agora você sempre terá uma base de dados histórica de testes por funcionalidade e com certeza não se esquecerá de estimar um determinado teste que já foi desenvolvido em projetos anteriores.&lt;/p&gt;&lt;p align="justify"&gt;Bem, então, caso o gerente do projeto de teste que você trabalha chegasse para você e pedisse uma nova estimativa de esforço de teste para um novo projeto, qual seria o seu primeiro passo? Pensando... pensando... pensando... cri... cri... cri... cri.. nossa quantos grilos... isso mesmo, analisar a Matriz de Teste por Tipo de Funcionalidade para saber se já existe uma funcionalidade que foi testada anteriormente em outro projeto e que será desenvolvida ou alterada no novo projeto!&lt;/p&gt;&lt;p align="justify"&gt;Espero que tenham gostado!&lt;/p&gt;&lt;p align="justify"&gt;Até+,&lt;/p&gt;&lt;p align="justify"&gt;Quezada&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-8313612403525356367?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/8313612403525356367/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/estimativa-de-teste-utilizando-uma.html#comment-form' title='12 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8313612403525356367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/8313612403525356367'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/estimativa-de-teste-utilizando-uma.html' title='Estimativa de Teste utilizando uma Matriz de Teste por Tipo de Funcionalidade'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sixtb_cyWmI/AAAAAAAAC8A/db7WTsIJ_gU/s72-c/Blog+Teste+de+Software+-+0003+-+Estimativa+de+Teste+utilizando+uma+Matriz+de+Teste+por+Funcionalidade+-+Mensagem+de+Erro.jpg' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-306754034086545302</id><published>2009-06-02T18:31:00.007-03:00</published><updated>2009-06-03T19:06:52.428-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Estimativa'/><category scheme='http://www.blogger.com/atom/ns#' term='Requisitos'/><title type='text'>Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura de Teste de Requisitos – 2º. BRATESTE - ALATS</title><content type='html'>&lt;p align="justify"&gt;Em teste de software, quando um engenheiro de testes precisa estimar o número de casos de testes para um desenvolvimento de software, geralmente os documentos utilizados como entradas para essa fase de testes são os requisitos de clientes, requisitos de software seja funcional ou de interface visual, casos de uso, diagramas UML quando disponíveis ou qualquer outro documento no qual tenha informações necessárias sobre o software que será desenvolvido. Após analisar todos os documentos citados, o engenheiro de testes estima o número de casos de testes que serão desenvolvidos juntamente com o cabeçalho de cada teste. Feito isso, algumas perguntas começam a ser feitas para o engenheiro que fez a estimativa: “A estimativa está cobrindo todos os requisitos?”, “Qual é a confiabilidade dessa estimativa?”, “Não está faltando nenhum requisito que não foi criado?”. Usando uma rede Bayesiana, o engenheiro de testes conseguirá modelar a arquitetura de testes que será desenvolvido, podendo fazer uma ponderação estatística de cenários e riscos. Agregando valor a rede Bayesiana, o critério de adequação é usado para aumentar a cobertura de testes e requisitos. Cada requisito de software é analisado e é verificado se ele se aplica aos critérios pré-definidos. Com o uso da rede Bayesiana e critério de adequação, conseguimos ter uma representação gráfica dos requisitos, podendo fazer simulações dos cenários de casos de testes seguindo uma sequência lôgica, inclusive, teremos uma matriz de requisitos versus casos de testes, que contém todos os cenários de casos de testes obtidos na rede Bayesiana aplicando o critério de adequação.&lt;br /&gt;&lt;br /&gt;A apresentação abaixo neste post irá mostrar como essa técnica pode facilmente ser introduzida nas atividades diárias de um engenheiro de testes, identificando novos requisitos de software ou cenários que não foram considerados na fase de requisitos inicial, minimizando assim o problema de falta de requisitos ou requisitos dúbios e garantindo que sua estimativa é a mais confiável possível.&lt;br /&gt;&lt;br /&gt;Essa técnica foi apresentada no 2º. BRATESTE – ALATS, São Paulo no dia 12/Março/2009 - &lt;a href="http://www.alats.org.br/default.aspx?tabid=209"&gt;http://www.alats.org.br/default.aspx?tabid=209&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div id="__ss_1523796" style="WIDTH: 425px; TEXT-ALIGN: left"&gt;&lt;a title="Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura de Teste de Requisitos" style="DISPLAY: block; MARGIN: 12px 0px 3px; FONT: 14px Helvetica,Arial,Sans-serif; TEXT-DECORATION: underline" href="http://www.slideshare.net/gustavoqz/usando-rede-bayesiana-e-critrio-de-adequao-para-obter-uma-melhor-cobertura-de-teste-de-requisitos?type=powerpoint"&gt;Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura de Teste de Requisitos&lt;/a&gt;&lt;object style="MARGIN: 0px" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=usingbayesiannetworkandadequacycriteriatoobtainabetterrequirementstestcoveragepresentationv01-00-090602160559-phpapp01&amp;amp;stripped_title=usando-rede-bayesiana-e-critrio-de-adequao-para-obter-uma-melhor-cobertura-de-teste-de-requisitos"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=usingbayesiannetworkandadequacycriteriatoobtainabetterrequirementstestcoveragepresentationv01-00-090602160559-phpapp01&amp;stripped_title=usando-rede-bayesiana-e-critrio-de-adequao-para-obter-uma-melhor-cobertura-de-teste-de-requisitos" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="FONT-SIZE: 11px; PADDING-TOP: 2px; FONT-FAMILY: tahoma,arial; HEIGHT: 26px"&gt;Veja mais &lt;a style="TEXT-DECORATION: underline" href="http://www.slideshare.net/"&gt;apresentações&lt;/a&gt; de &lt;a style="TEXT-DECORATION: underline" href="http://www.slideshare.net/gustavoqz"&gt;Gustavo Quezada&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Espero que gostem! &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Até+,&lt;br /&gt;Quezada &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-306754034086545302?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/306754034086545302/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/usando-rede-bayesiana-e-criterio-de.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/306754034086545302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/306754034086545302'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/usando-rede-bayesiana-e-criterio-de.html' title='Usando Rede Bayesiana e Critério de Adequação para Obter uma Melhor Cobertura de Teste de Requisitos – 2º. BRATESTE - ALATS'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7411919440747969353.post-2291145102326803720</id><published>2009-06-02T18:22:00.001-03:00</published><updated>2009-06-26T14:17:14.757-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geral'/><title type='text'>O Incentivo para começar o Blog</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5CGUSTAV%7E1.QUE%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CUsers%5CGUSTAV%7E1.QUE%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CUsers%5CGUSTAV%7E1.QUE%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;PT-BR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:SimSun; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-alt:宋体; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 680460288 22 0 262145 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:"\@SimSun"; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 680460288 22 0 262145 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:SimSun; 	mso-bidi-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} span.fn 	{mso-style-name:fn; 	mso-style-unhide:no;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:SimSun; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 3.0cm 70.85pt 3.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:699815496; 	mso-list-type:hybrid; 	mso-list-template-ids:1260579016 68550661 68550659 68550661 68550657 68550659 68550661 68550657 68550659 68550661;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:Wingdings;} ol 	{margin-bottom:0cm;} ul 	{margin-bottom:0cm;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Calibri","sans-serif";} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;Sempre pensei em compartilhar o conhecimento adquirido com outras pessoas e agora chegou a hora :-)!!!&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;Depois de muito acompanhar alguns blogs que falam sobre Teste e Qualidade de Software, resolvi criar este blog para poder compartilhar as experiências profissionais nesta área também. Confesso que as principais pessoas que acabaram me incentivando a criar este blog foram:&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;ul style="margin-top: 0cm; text-align: justify;" type="square"&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;a href="http://sembugs.blogspot.com/"&gt;Sem Bugs - Teste e Qualidade de      Software&lt;/a&gt; – Elias Nogueira&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;a href="http://josepaulopapo.blogspot.com/"&gt;José Papo Weblog&lt;/a&gt; – José Papo&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;a href="http://diariodaqualidade.blogspot.com/"&gt;Diário da Qualidade&lt;/a&gt; –      Leonardo Molinari&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;a href="http://qualidadebr.wordpress.com/"&gt;QualidadeBR&lt;/a&gt; – Fabrício Ferrari      de Campos&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;a href="http://testavo.blogspot.com/"&gt;TESTAVO&lt;/a&gt; – &lt;font class="fn"&gt;Luiz      Gustavo S. Vieira&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;font class="fn"&gt;&lt;a href="http://www.testexpert.com.br/?q=blog/2"&gt;TextExpert&lt;/a&gt; –      Cristiano Caetano&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;Então, fica aqui o meu &lt;span style="font-weight: bold;"&gt;MUITO OBIGADO&lt;/span&gt; por este incentivo, mesmo sem vocês saberem ;-)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;É, Pessoal, agora vocês terão mais um integrante para ajudar no “compartilhamento” de informações para a nossa área de Teste e Qualidade de Software!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;Até+,&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal; text-align: justify;"&gt;&lt;font class="fn"&gt;Quezada&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7411919440747969353-2291145102326803720?l=gustavoquezada.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gustavoquezada.blogspot.com/feeds/2291145102326803720/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/o-incentivo-para-comecar-o-blog.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/2291145102326803720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7411919440747969353/posts/default/2291145102326803720'/><link rel='alternate' type='text/html' href='http://gustavoquezada.blogspot.com/2009/06/o-incentivo-para-comecar-o-blog.html' title='O Incentivo para começar o Blog'/><author><name>Gustavo Quezada</name><uri>http://www.blogger.com/profile/03382186326179766311</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_w_FcR0ncuFs/Sh7DRd0i2dI/AAAAAAAAC6U/kCEqoRRBBGA/S220/Gustavo002.JPG'/></author><thr:total>1</thr:total></entry></feed>
