Feliz Ano Novo

Mais um ano está se encerrando. E 2008 deixará saudades.

Mas como dizem: “A música não pode parar”. O ano de 2009 está chegando, e como sempre, temos novos planos e desafios. E com o QualidadeBR não é diferente.

Em 2009 teremos novidades, e o desafio de ser um blog de referência em Testes e Qualidade de Software aqui no Brasil, e quem sabe até do mundo. Afinal, temos que sonhar grande e o mais importante é está sempre lutando e nunca desistir, pois somos brasileiros e tão capazes quanto os gringos.

Portanto, desejo a todos um maravilhoso 2009, que nesse ano você possa realizar os seus sonhos e superar os desafios com alegria. Obrigado, do fundo do coração, por acompanhar o QualidadeBR. Até 2009!!!

2009

Fique por dentro das novidades, assine o feed do QualidadeBR.
Assine o feed

Ferramentas bug tracking

Ao encontrar um bug o Tester pode avisar o desenvolvedor, por várias maneiras, como por exemplo: pessoalmente, msn, e-mail, documentos, ferramentas de bug tracking, etc.

Podemos perceber, que dentre as alternativas apresentas, há meios formais e informais de relatar a existência de bugs. A melhor maneira dependerá da dinâmica da equipe Testes e do seu processo.

Eu particularmente já utilizei os 5 meios de relato de bug apresentados, e muitas vezes, até mais de um ao mesmo tempo. Atualmente, ao me deparar com algum resultado imprevisto, eu busco conversar com o desenvolvedor, para que juntos possamos buscar qual a real causa para aquele problema. Isso ocorre devido a complexidade do sistema, e para obter um melhor detalhamento do bug.

Ao coletar todas as informações necessárias sobre o bug, o passo seguinte é cadastrar na ferramenta bug tracking, chamada Eventum.

Para os marinheiros de primeira viagem, um software de bug tracking tem como objetivo principal, ajudar a equipe de Teste e a de Desenvolvimento a manterem um histórico dos bugs do sistema. Nela estarão todos os dados do bug encontrado, sendo de grande ajuda para ambas as equipes, pois facilita o gerenciamento dos bugs.

Há no mercado várias ferramentas de bug tracking, dentre as quais podemos destacar as seguintes:

  • Bugzilla - é a mais famosa e usada ferramenta de bug tracking open source. Baseada em Web, ela é mantida por voluntários, sendo utilizada por diversos projetos e empresas, dentre os principais: Mozilla, Gnome, Nasa, NBC e Wikipedia. (site oficial)
  • Eventum - criada e disponibilizada gratuitamente pela MySQL, ela se encontra atualmente na versão 2.1.1. Ela fornece uma interface amigável e flexível sistema de emissão de rastreamento que pode ser utilizado, tanto,  por um departamento de suporte técnico para monitorar solicitações de suporte ou por uma equipe do desenvolvimento de software, a fim de organizar tarefas e bugs. O Eventum é usado pela equipe de Suporte Técnico do MySQL Lab. (site oficial)
  • FogBugz - o FogBugz além de oferecer o controle de bugs, ele traz um sistema completo de gerência de projeto, a fim de auxiliar a comunicação nas equipes de software. Um de seus diferenciais é a inclusão de uma wiki,  onde se pode criar documentos e especificações técnicas e funcionais.  (site oficial)
  • Jira - é uma aplicação J2EE de acompanhamento e gestão dos problemas. Ela também tem a funcionalidade de gestão de projetos. O Jira pode ser baixado de graça, porém em versão Trial, que expira após 30 dias. (site oficial)
  • Mantis - é uma ferramenta de bug tracking livre. Ela foi escrita em PHP e trabalha com MySQL, MS SQL e PostgreSQL, sendo baseada em Web. O Mantis roda em Windows, Linux, Mac OS, OS/2, dentre outros. Ela está sobre os termos da licença GPL. (site oficial)
  • Trac - o Trac além de ser um sistema de gerenciamento de bugs, possui a funcionalidade de wiki para documentação. Sua interface é web, e também está sobre a licença GPL. Dentre os seus usuários está o Laboratório de Propulsão a Jato da NASA. (site oficial)
  • Zephyr - uma aplicação com interface Web, feita em Flash, especifica para equipes de Testes. Dentre suas principais funcionalidades estão: criação de testes suites,  execução de testes, geração de relatórios e o gerenciamento de bugs. Sua licença é gratuita até 3 usuários.  (site oficial)

O Eventum é o software que utilizamos na empresa em que trabalho, após analisar vários outros softwares, chegamos a decisão de utilizar-lo por vários motivos, sendo o principal: o fato dele conseguir ser, ao mesmo tempo, simples e oferecer várias funcionalidades, que possibilitam um eficaz gerenciamento de bugs.

Em próximos artigos, trarei um tutorial que abordará, desde a instalação do Eventum até o reporte de bugs utilizando-o. Até mais!

Fique por dentro das novidades, assine o feed do QualidadeBR.
Assine o feed

Saiba mais

Quem ficou curioso em conhecer mais algumas ferramentas de bug tracking, segue abaixo, alguns links contendo comparações e informações mais detalhadas sobre tais softwares:

Comparações

http://www.issue-tracking-software.de/

http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems

http://www.pronus.eng.br/artigos_tutoriais/analises/ferramentasControleMudanca.php

Lista das melhores ferramentas Open Source para gestão e automação de testes.  (Cristiano Caetano)

http://www.linhadecodigo.com.br/Artigo.aspx?id=1392

Mind Map das ferramentas Open Source gratuitas (Cristiano Caetano)

http://www.mindomo.com/view?m=d1535d37f8b0aa6df765a1db90bfa317

Apresentação TCC

Na semana passada, para ser mais exato, na sexta-feira dia 12 do 12 (que coisa, hein), fiz a minha apresentação da defesa de trabalho de conclusão de curso.

Na apresentação, para variar, fiquei “hiper” nervoso, mas segundo o pessoal que estava presente, foi legal a apresentação. A parte que eu gostei, foi a das perguntas. Todo mundo se preocupa muito nessa hora, mas eu estava tranquilo, afinal acredito que ninguém sabia mais do assunto do que eu e o Jayson, minha dupla de TCC. E nós gostamos bastante do assunto, então seria até legal confrontar opiniões com o pessoal da banca.

As perguntas foram bem legais, gerou bastante discussão. Duas delas eu achei bem interessante, uma foi sobre a usabilidade nos celulares e a outra sobre o impacto no hardware, causado por uma boa usabilidade.

Na primeira, a discussão gerada foi em torno da usabilidade do celular, que está num passo a frente da existente nos computadores. Fato que é justificado, devido ao número de usuários de celulares que é muito maior e mais diversificado que os de computador, logo, a preocupação com a usabilidade, se torna mais inerente no desenvolvimento dos softwares para celular.

A segunda questão tocou no assunto entre usabilidade versus desempenho. Muitos sistemas com uma usabilidade melhor, acabam sendo mais pesados e exigindo mais do hardware, exemplo o Pacote Office 2007, que mesmo tendo uma melhor usabilidade do que a versão 2003, ainda não emplacou. Ou seja, de nada vale uma interface mais usual, se ela não consegue ser processada pelo hardware. Mas, para ter uma interface com boa usabilidade não é preciso oferecer um design mais pesado, muitas vezes, a simplicidade resolve boa parte dos problemas de usabilidade, como exemplo temos o navegador do Google, o Chrome, e a distribuição Linux Linpus.

Quem quiser conferir a apresentação, ela está sendo disponibilizada no link abaixo, caso alguém tenha alguma dúvida, sugestão ou crítica, sinta-se à vontade em colocar nos comentários.

Download da apresentação

Para encerrar esse post, tenho alguns agradecimentos a fazer (hehehe), de pessoas que ajudaram no desenvolvimento desse trabalho:

- Ao Jayson, minha dupla de TCC, que sempre esteve preocupado com a qualidade do trabalho e mostrou grande dedicação, mesmo nos momentos difíceis.

- Ao André Pantalião, que é uma das pessoas que eu tenho um prazer enorme de trabalhar, e que me emprestou vários materiais sobre usabilidade e deu boas idéias para o trabalho.

- Ao Prof. Ms. Flávio Viotti, que mesmo com as dificuldades que tivemos, ainda estava sempre nos cobrando e se preocupando com o andamento do TCC.

- Por fim, a todos os alunos de ADS6, pelas risadas, conhecimentos, emoções e brigas, vividas nesses três anos, que com certeza ficarão na memória e no coração para toda a vida.

Fique por dentro das novidades, assine o feed do QualidadeBR.
Assine o feed

Técnicas de Integração de Sistema – Top Down

A Top Down, que em tradução literal seria algo como “de cima para baixo”, é uma das técnicas mais conhecidas para teste de Integração usando a abordagem incremental.

Como se pode perceber pelo próprio nome, usando a técnica Top-down, o teste começa do nível mais alto para o mais baixo, ou seja, os componentes de mais alto nível são integrados primeiro.

Para entender melhor, vamos pensar no exemplo abaixo:

Exemplo Top Down

Exemplo Top Down

Como pode ser percebido, o sistema nesse exemplo, é o álbum de música, que é formado por várias músicas, que serão chamadas de componentes. Por fim, uma música é formada pela junção de vários instrumentos, que serão chamados de módulos.

Pela técnica Top-down iremos primeiro testar os componentes de alto nível, que são as músicas, só para depois verificar cada módulo (instrumento) de cada componente (música).

Algo importante de se notar, é que no final do Teste de Integração teremos a integração dos módulos testados e não o sistema como um tudo. Na analogia apresentada, teríamos cada música verificada e não o álbum inteiro. O teste que verificaria o álbum inteiro seria o Teste de Sistema.

Vantagens

  • Permite verificação antecipada de comportamento de alto nível;
  • Módulos podem ser adicionados, um por vez, em cada passo, se desejado;
  • Permiti a busca em profundidade (depth-first search) e a busca em largura (breadth-first search).

Desvantagens

  • Retarda verificação de comportamento de baixo nível;
  • Entradas de casos de teste podem ser difíceis de formular, por geralmente, demandar de uma entrada maior de informações;
  • Saídas de casos de teste podem ser difíceis de interpretar, cada passo executado, pode gerar um resultado e o Tester deverá ficar atento a esses resultados, pois essas saídas intermediárias pode apresentar alguma inconsistência.

Bem, hoje vimos como que a técnica Top-down funciona na realização dos Testes de Integração, espero ter ajudado na compreensão dessa técnica, caso tenha ficado alguma dúvida, sinta-se à vontade em colocá-la nos comentários. Até a próxima!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Fonte:

Teste de Integração, Sistema e Aceitação, Alexandre Mota. (link)

Paixão ou dinheiro?

Caros leitores,

O pessoal que me conhece, sabe que uma das minhas paixões é a Formula 1 e como muitas devem ter ficado sabendo,  a equipe Honda deixou a categoria. Mas não será sobre a F1 que irei comentar nesse post e sim sobre algo que me preocupa: o prazer em fazer o que gosta. E aproveito para lhes fazer uma pergunta: Por que você trabalha?

Logicamente, que uma das primeiras respostas será para garantir o meu sustento e de minha família (aliás, essa seria minha resposta também), porém uma vez eu li em algum lugar (não me lembro onde), que o ser humano ao invés de viver está sobrevivendo. Para mim,  a diferença está na obrigação, quando fazemos algo por obrigação ou algo que não seja da nossa natureza estamos sobrevivendo. Já quando fazemos algo com amor e nos divertindo, aí sim estamos vivendo.

Bem, vou tentar “linkar” melhor essa história da F1, apresentada no início do post, com o nosso mundo (TI). Vejo muitos colegas meus buscando $$$ e mais $$$, é uma busca sem fim, pois quanto mais temos mais queremos ter. E vejo poucos buscando o prazer, afinal você irá passar mais de 86.400 horas (8 horas X 20 dias X 12 meses X 45 anos) da sua vida trabalhando, isso sem contar as horas extras, que é algo muito freqüente na nossa área.

Na F1 o cenário atual não é muito diferente, os chefões das equipes que antes eram os apaixonados por velocidade e pela F1, agora são os “manda-chuvas” de grandes corporações que estão mais preocupados com o lucro e aumento do marketing que conseguirão com a F1. E a maior diferença é o fato de quando as coisas vão mal eles são os primeiros a pularem fora do navio,  enquanto os apaixonados lutam até o fim para tentar manter a categoria, pois há certas coisas que só apaixonados conseguem fazer.

Esse é um dos motivos pelo qual diversos sistemas falham e muitos projetos não terminam. As pessoas não estão comprometidas e sim apenas envolvidas (a velha história do porco e da galinha). E a razão da falta de comprometimento muitas vezes é ausência da paixão, pois você não será comprometido com algo que você não gosta. Por isso, volto a frisar, que devemos sempre buscar fazer o que a gente gosta, pois me lembro muito bem, de uma palestra que assisti sobre a área de Jornalismo,  quando tinha uns 15 anos, onde uma jornalista, disse: “Se você for bom, com certeza você ganhará bem.”.

Para encerrar esse post, aqui fica uma dica, de alguém que ainda não encontrou a mina de ouro, mas que já descobriu a sua estrada: Siga os seus princípios, quando encontrar um atalho, siga o seu coração ao se deparar com uma bifurcação e siga a sua inteligência ao se deparar com os obstáculos.

Nota: Como vocês perceberam, estou tentando trazer assuntos diferentes e não apenas sobre Testes e Qualidade de Software, pois muitas vezes gosto de compartilhar pensamentos e opiniões, por isso sintam-se à vontade para comentarem. Mas não se preocupem, que o foco do QualidadeBR ainda será Testes e Qualidade de Software, afinal é uma área que eu tenho paixão em trabalhar e estudar. :D

Fique por dentro das novidades, assine o feed do QualidadeBR.
Subscribe

Técnicas de Integração de Sistema – Incremental

Ao realizar os testes de integração uma dúvida que pode surgir é a de como combinar os módulos do software. Existem 5 abordagens diferentes para realizar a junção dos módulos, a fim de obter a montagem de todo o sistema:

  • Incremental
  • Top down
  • Bottom up
  • Sandwich
  • Big bang

Neste post, irei falar sobre a abordagem Incremental, que como o próprio nome sugere ocorre aos poucos, módulo a módulo.

A interação ocorre através de uma série de ciclos de teste. Em cada ciclo de teste, os módulos vão se integrando com os já existentes e testados para gerar maiores módulos. A idéia é concluir um ciclo de testes, os desenvolvedores corrigirem todos os erros encontrados, e continuar o próximo ciclo de testes. O sistema completo é construído incrementalmente, ciclo por ciclo, até que o sistema esteja operacional e pronto para a realização dos testes de nível de sistema.

Uma aplicação da abordagem Incremental ocorre frequentemente na fabricação de bolos: a confeiteira degusta a massa do bolo antes de colocá-la no forno, e antes de colocar a cobertura ela verifica a sua consistência e sabor.

A seguir veremos as vantagens e desvantagens do uso da abordagem Incremental na realização dos testes de integração, sendo interessante notar que boa parte das vantagens e desvantagens apresentadas, também ocorre no desenvolvimento incremental.

Vantagens

  • O tester não precisa esperar até que todo o sistema esteja pronto, para iniciar os testes;
  • Há um menor risco de fracasso geral do projeto, já que cada módulo é verificado antes e caso algo esteja errado a correção será implementada já no próximo ciclo de teste;
  • A integração dos módulos só é realizada, após eles já terem sido verificados, ou seja, se algum erro acontecer a causa, provavelmente, será a comunicação entre esses módulos.

Desvantagens

  • A modulação pode ser uma tarefa difícil de ser realizada, pois os módulos necessitam ser pequenos, mas com alguma funcionalidade completa;
  • Em determinadas situações, a realização do teste só poderá ser feita com a utilização de Mock Object.

Considerações Finais

Na utilização da abordagem Incremental para a realização dos testes de integração, alguns aspectos devem ser considerados, tendo em vista o número de ciclos de testes:

  • O número de módulos do sistema;
  • A complexidade dos módulos;
  • A complexidade da interface entre os módulos;
  • O número de módulos a serem usados para o agrupamento em cada ciclo de teste;
  • Verificar se os módulos a serem integrados foram devidamente testados antes;
  • O tempo de resposta da equipe de desenvolvimento em cada ciclo de teste.

Por hoje é só pessoal. Em breve comentarei sobre a técnica Top-down, que é uma técnica de fazer a integração de forma incremental. Até lá!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Fonte:

NAIK, Kshirasagar; TRIPATHY, Priyadarshi. Software Testing and Quality Assurance. Hoboken (New Jersey): John Wiley & Sons, Inc., 2008.

alisson.brito.googlepages.com/ProcessoDeSoftware_AlissonBrito.ppt