{"id":821,"date":"2012-04-15T07:06:25","date_gmt":"2012-04-15T07:06:25","guid":{"rendered":"http:\/\/leonardocotta.com.br\/blog\/?p=821"},"modified":"2012-04-15T07:06:25","modified_gmt":"2012-04-15T07:06:25","slug":"entendendo-o-conceito-por-tras-dos-processos-de-qualidade-de-software","status":"publish","type":"post","link":"https:\/\/leonardocotta.com.br\/?p=821","title":{"rendered":"Entendendo o conceito por tr\u00e1s dos processos de Qualidade de Software"},"content":{"rendered":"<h3>Introdu\u00e7\u00e3o<\/h3>\n<p>Infelizmente, ainda \u00e9 uma preocupa\u00e7\u00e3o comum no dia a dia das equipes de implanta\u00e7\u00e3o a publica\u00e7\u00e3o de novas realeses de software. Portanto, fica f\u00e1cil identificar que ainda n\u00e3o estamos dando a real import\u00e2ncia para os processos de qualidade de software.<\/p>\n<p>As equipes de desenvolvimento est\u00e3o enfrentando uma mudan\u00e7a significativa no modelo de desenvolvimento de software com a transi\u00e7\u00e3o de modelos tradicionais como cascata, por exemplo, para m\u00e9todos \u00e1geis de desenvolvimento, como o SCRUM, XP, FDD, entre outros. Os m\u00e9todos \u00e1geis est\u00e3o cada dia obtendo mais aten\u00e7\u00e3o e sendo mais e mais adotados como modelos de desenvolvimento nas organiza\u00e7\u00f5es e f\u00e1bricas de software. Com isso, podemos perceber que o mercado ainda se preocupa mais com a velocidade do que com a qualidade, mas ser\u00e1 que esse realmente \u00e9 o caminho? Pare um minuto do seu dia e se fa\u00e7a as seguintes perguntas:<\/p>\n<p><!--more--><\/p>\n<p><!--more--><\/p>\n<p><span><span>A equipe realmente est\u00e1 sendo mais r\u00e1pida? Quanto tempo minha equipe est\u00e1 perdendo com manuten\u00e7\u00e3o e corre\u00e7\u00e3o de bugs que n\u00e3o foram identificados antes da implanta\u00e7\u00e3o? Estou realmente entregando um produto de qualidade? Meu cliente est\u00e1 feliz com o meu produto?<\/span><\/span><\/p>\n<p>Na tentativa de auxiliar as equipes de desenvolvimento de software e principalmente os profissionais de qualidade, este artigo aborda alguns conceitos b\u00e1sicos para planejamento um bom plano de teste e aplica\u00e7\u00e3o de processos estrat\u00e9gicos e eficientes para valida\u00e7\u00e3o e garantia da qualidade de software.<\/p>\n<h3>Objetivo<\/h3>\n<p>O principal objetivo deste artigo \u00e9 auxiliar os profissionais da \u00e1rea de qualidade de software. Para isso, ser\u00e1 apresento uma simples proposta de documenta\u00e7\u00e3o de testes com base em casos de uso, al\u00e9m de trazer uma breve defini\u00e7\u00e3o de v\u00e1rias categorias de testes e tamb\u00e9m apontar algumas das principais metodologias e ferramentas utilizadas no mercado de TI.<\/p>\n<h3>Metodologias<\/h3>\n<p>Mps.br: o Modelo de Processos de Software Brasileiro \u00e9 uma proposta de solu\u00e7\u00e3o brasileira compat\u00edvel com o modelo CMMI que est\u00e1 em conformidade com as normas ISO\/IEC 12207 e 15504, al\u00e9m de ser adequado \u00e0 realidade brasileira. Para mais informa\u00e7\u00f5es, acesse: <a href=\"http:\/\/www.softex.br\/mpsbr\/_guias\/default.asp\" rel=\"nofollow noopener\" target=\"_blank\"> http:\/\/www.softex.br\/mpsbr\/_guias\/default.asp<\/a><\/p>\n<h3>Pap\u00e9is<\/h3>\n<p><span><span>Ger\u00eancia da Qualidade Gerencia da Qualidade de Software Ger\u00eancia de Teste de Verifica\u00e7\u00e3o Profissionais dos Testes de Verifica\u00e7\u00e3o Revisores de Documentos Auditores da Qualidade Profissionais dos Testes de Valida\u00e7\u00e3o Arquiteto de Teste Analista de Teste Automatizador de Teste Executor de Teste<\/span><\/span><\/p>\n<h3>Categorias de testes de Software<\/h3>\n<p>Teste de funcionalidade: teste que verifica se todos os requisitos do cliente foram satisfeitos, executando todas as funcionalidades de uma aplica\u00e7\u00e3o.<\/p>\n<p>Teste de Usabilidade: tem por objetivo verificar a facilidade que o software <a href=\"http:\/\/pt.wikipedia.org\/wiki\/Software\" rel=\"nofollow noopener\" target=\"_blank\"> http:\/\/pt.wikipedia.org\/wiki\/Software<\/a> possui de ser claramente compreendido e manipulado pelo usu\u00e1rio <a href=\"http:\/\/pt.wikipedia.org\/wiki\/Usu%C3%A1rio\" rel=\"nofollow noopener\" target=\"_blank\">http:\/\/pt.wikipedia.org\/wiki\/Usu%C3%A1rio<\/a> na sua navega\u00e7\u00e3o(utiliza\u00e7\u00e3o).<\/p>\n<p>Teste de Carga (Stress): teste que avalia um sistema simulando uma situa\u00e7\u00e3o predeterminada, geralmente um grande volume de carga ou dados. Tem por objetivo identificar gargalos originados por baixo dimensionamento de link, falta de otimiza\u00e7\u00e3o da infraestrutura ou implementa\u00e7\u00e3o ineficiente do aplicativo.<\/p>\n<p>Teste de Regress\u00e3o: teste que executa alguns ou todos os casos de testes j\u00e1 verificados, a fim de detectar erros gerados por altera\u00e7\u00f5es ou corre\u00e7\u00f5es feitas durante o processo de desenvolvimento ou manuten\u00e7\u00e3o do software.<\/p>\n<p>Teste de Volume: teste que avalia um sistema ou componente executando de modo que a demanda de recursos ocorre em quantidade frequente ou volume irregular.<\/p>\n<p>Teste de Configura\u00e7\u00e3o: teste que verifica todas as configura\u00e7\u00f5es necess\u00e1rias para garantir um bom funcionamento do software.<\/p>\n<p>Teste de Compatibilidade: teste que garante a compatibilidade com todos artefatos<\/p>\n<p>Teste de Seguran\u00e7a: teste de seguran\u00e7a visa verificar se todos os mecanismos de prote\u00e7\u00e3o embutidos no sistema eliminam as vulnerabilidades do software.<\/p>\n<p>Teste de Desempenho: teste que avalia o tempo de resposta, os recursos utilizados e efici\u00eancia de cada fun\u00e7\u00e3o.<\/p>\n<p>Teste de Instala\u00e7\u00e3o: teste que verifica se o processo de instala\u00e7\u00e3o est\u00e1 executando todos os passos requeridos para implementa\u00e7\u00e3o do sistema no ambiente de utiliza\u00e7\u00e3o.<\/p>\n<p>Teste de Confiabilidade: teste que valida \u00e0 confidencialidade das informa\u00e7\u00f5es, geralmente este teste \u00e9 aplicado em conjunto com o teste de seguran\u00e7a.<\/p>\n<p>Teste de Disponibilidade: teste que verifica o n\u00edvel de disponibilidade do software, esta fase tem como objetivo garantir que o sistema estar\u00e1 dispon\u00edvel mesmo com pequenas falhas no ambiente de produ\u00e7\u00e3o.<\/p>\n<p>Teste de Recupera\u00e7\u00e3o: teste de sistema que for\u00e7a o software a falhar de diversas maneiras e verifica se a recupera\u00e7\u00e3o \u00e9 adequadamente executada.<\/p>\n<p>Teste de Conting\u00eancia: teste tamb\u00e9m conhecido como plano de continuidade de neg\u00f3cios ou plano de recupera\u00e7\u00e3o de desastres, tem como intuito descrever as medidas a serem tomadas para restabelecer o sistema a seu estado funcional ou estado minimamente aceit\u00e1vel em caso de paralisa\u00e7\u00e3o do sistema.<\/p>\n<h3>Checklist de verifica\u00e7\u00e3o<\/h3>\n<p><span><span>Checklist Verifica\u00e7\u00e3o de Neg\u00f3cios Checklist da Proposta de Projeto de Software Checklist Verifica\u00e7\u00e3o de Requisitos Checklist Diagrama de UML Checklist da Arquitetura Checklist Verifica\u00e7\u00e3o, An\u00e1lise e Modelagem Checklist do C\u00f3digo-Fonte Checklist do Bando de Dados Checklist Verifica\u00e7\u00e3o da Implementa\u00e7\u00e3o<\/span><\/span><\/p>\n<h3>Exemplo de checklist<\/h3>\n<table border=\"1\">\n<tbody>\n<tr>\n<td colspan=\"3\" align=\"CENTER\">Checklist do Modelo de Neg\u00f3cios<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\" align=\"CENTER\">Levantamento das Necessidades do Cliente<\/td>\n<\/tr>\n<tr>\n<td>&#8211; Todas as necessidades foram devidamente registradas.<\/td>\n<td>SIM<\/td>\n<td>N\u00c3O<\/td>\n<\/tr>\n<tr>\n<td>&#8211; Todas as necessidades foram devidamente registradas.<\/td>\n<td>SIM<\/td>\n<td>N\u00c3O<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\" align=\"CENTER\">Defini\u00e7\u00e3o das Caracter\u00edsticas do Software<\/td>\n<\/tr>\n<tr>\n<td>&#8211; Cada caracter\u00edstica atende ao menos a uma necessidade identificada.<\/td>\n<td>SIM<\/td>\n<td>N\u00c3O<\/td>\n<\/tr>\n<tr>\n<td>&#8211; Cada caracter\u00edstica possui uma descri\u00e7\u00e3o clara.<\/td>\n<td>SIM<\/td>\n<td>N\u00c3O<\/td>\n<\/tr>\n<tr>\n<td>&#8211; Cada caracter\u00edstica possui exemplos que auxiliam seu entendimento.<\/td>\n<td>SIM<\/td>\n<td>N\u00c3O<\/td>\n<\/tr>\n<tr>\n<td>&#8211; Existe uma rastreabilidade entre caracter\u00edstica e necessidade.<\/td>\n<td>SIM<\/td>\n<td>N\u00c3O<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span><span><br \/>\n<\/span><\/span><\/p>\n<h3>Componentes de testes<\/h3>\n<p>Test-drivers: os controladores de teste s\u00e3o programas desenvolvidos com a finalidade de testar uma unidade de software. Esses controladores executam chamadas as unidades a ser validadas. Com isso, definindo uma ordem de execu\u00e7\u00e3o e um conjunto de par\u00e2metros de entrada que possibilitam testes mais variado em diferentes cen\u00e1rios.<\/p>\n<p>Stubs: os simuladores s\u00e3o programas que simulam o comportamento de uma unidade de software ou hardware. Os simuladores substituem determinadas unidades reais que dificultam ou limitam determinados testes de software.<\/p>\n<h3>Reflex\u00e3o<\/h3>\n<p>Segundo Leintz, a propor\u00e7\u00e3o de esfor\u00e7os dedicados para manuten\u00e7\u00e3o de software corresponde a 20% de corretivas, 25% adaptativas, 50% evolutiva e apenas 5% para preventivas. Esse resultado \u00e9 com base em um estudo que aconteceu com 487 organiza\u00e7\u00f5es da \u00e1rea de TI e testes.<\/p>\n<h3>Conclus\u00e3o<\/h3>\n<p>Apesar de termos um processo que permite a organiza\u00e7\u00e3o e seq\u00fcenciamento das atividades de teste de software, \u00e9 muito importante investir na capacita\u00e7\u00e3o das pessoas que v\u00e3o desempenh\u00e1- las. Existem diversas t\u00e9cnicas e pr\u00e1ticas para realiza\u00e7\u00e3o de testes, mas \u00e9 preciso conhecimento do assunto para escolher o que \u00e9 melhor utilizar, levando em considera\u00e7\u00e3o o contexto.<\/p>\n<h3>Comunicado Importante<\/h3>\n<p>Espero que tenham gostado do conte\u00fado explorado neste artigo. Caso exista qualquer d\u00favida relacionada ao conte\u00fado ou interesse em conhecer um pouco mais sobre qualidade de software, informe seu interesse usando o recurso de &#8220;coment\u00e1rios&#8221;.<\/p>\n<h3>Refer\u00eancia<\/h3>\n<p>Barti\u00e9, Alexandre . Garantia de Qualidade de Software, Campus, 2002.<\/p>\n<p>Paul M. Duvall; Steve Matyas; Andrew Glover . Continuous Integration: Improving Software Quality and Reducing Risk, Addison-Wesley Professional, 2007.<\/p>\n<p>Linha de C\u00f3digo &#8211; Artigos<\/p>\n<p>via <a href=\"http:\/\/www.linhadecodigo.com.br\/Artigo.aspx?id=3404\">Entendendo o conceito por tr\u00e1s dos processos de Qualidade de Software<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Infelizmente, ainda \u00e9 uma preocupa\u00e7\u00e3o comum no dia a dia das equipes de implanta\u00e7\u00e3o a publica\u00e7\u00e3o de novas realeses de software. Portanto, fica f\u00e1cil identificar que ainda n\u00e3o estamos dando a real import\u00e2ncia para os processos de qualidade de software. As equipes de desenvolvimento est\u00e3o enfrentando uma mudan\u00e7a significativa no modelo de desenvolvimento de &hellip; <a href=\"https:\/\/leonardocotta.com.br\/?p=821\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Entendendo o conceito por tr\u00e1s dos processos de Qualidade de Software<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[27],"tags":[244],"class_list":["post-821","post","type-post","status-publish","format-standard","hentry","category-software","tag-software"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=\/wp\/v2\/posts\/821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=821"}],"version-history":[{"count":0,"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=\/wp\/v2\/posts\/821\/revisions"}],"wp:attachment":[{"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leonardocotta.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}