,

Sejam bem-vindos ao GUTS-PB, o Grupo de Usuários de Teste de Software da Paraíba

Esse grupo foi criado voltado para todas as pessoas da área de TI que tenham interesse em obter informações em Testes de Softwares, com o intuito de divulgar, expandir, disseminar, promover e tornar prático as atividades de testes de software para esses profissionais paraibanos. Sentindo um grande deficit de especialistas nessa área, em nosso estado, criei esse grupo para que possamos trocar conhecimentos e tornar as práticas de Teste de Software cada vez mais comum. Seja bem-vindo e sinta-se à vontade em comentar, assim como sugerir posts para que o nosso Blog seja utilizado cada vez mais.

Oportunidades de Emprego

Veja aqui quais as oportunidades de emprego que estão sendo oferecidas para as áreas de teste de software.

Cursos e Treinamentos

Está a fim de se especializar ainda mais em Teste de Software, então acesso esse link e veja quais os cursos de testes mais próximo de você

O GUTS-PB irá realizar em João Pessoa o 1º Testing Dojo Paraíba. Ficou curioso em saber? Acesse e participe.

quarta-feira, 27 de fevereiro de 2013

Introdução a Teste de Software - Parte 01

Estou iniciando um bateria de publicações, falando sobre Teste de Software, onde iremos  introduzir o conceito de Teste de Software, suas metodologias, estratégias, técnicas, tipos e muito mais, espero que gostem.

Atualmente os sistemas de software estão se tornando mais presente, e até mesmo alguns sendo indispensáveis em nossas vidas, sejam em celulares, internet, televisões, bancos, aviões, hospitais, entre outros. Contudo, nos deparamos cada vez mais com sistemas mais complexos, ou sistemas que tenham funções críticas (como sistemas de controlador de voos, sistemas cirúrgico, sistemas bancários, entre outros), sistemas esses que não podem ocorrer erros. A maioria das pessoas já teve alguma experiência com software que não funcionou como esperado [1], ou não expressara confiança, ou qualidade suficiente ao usuário. Há vários exemplos de problemas em sistemas que geraram transtornos há várias pessoas, onde esses sistemas já estavam em produção, trazendo danos materiais, gerando altos custos financeiros, causando má reputação a esses serviços. Um exemplo foi a falha no site do SISU, em janeiro deste ano, onde o site estava permitindo aos usuários obter dados pessoais de outros candidatos, uma falha gravíssima de segurança do sistema [3]. Um outro exemplo, foi uma falha no sistema de processamento de um Banco que descontou valores das contas dos usuários, o Banco logo de retratou reconhecendo a falha, e prometendo a solução do problema. Mas é uma situação muito desagradável, que para os clientes do Banco, o InternetBank se torna menos confiável.

Uma forma de tentar evitar esses problemas é investindo em testes, pois a implantação de um processo de testes no sistema reduz, consideravelmente, a possibilidade de ocorrência de novos defeitos, em ambiente de produção (sistema à disposição do cliente final). Com essa redução cresce a qualidade do sistema e satisfação do cliente. Vale salientar que não existe um sistema 100% livre de bugs, mas quanto mais cedo forem implantados os testes nos sistemas, menor o custo para corrigi-los, e menos a possibilidade de ocorrer defeitos em ambiente de produção.

Como implementar, planejar, arquitetar esses testes são os desafios que devemos encarar, para que o nosso software seja produzido com qualidade em um curto espaço de tempo, baixo custo e com extrema satisfação do cliente.

A implementação de um projeto de teste a partir de um projeto de desenvolvimento é importante para se obter um nível de cobertura mais aceitável dos testes. Nessa cobertura é que vamos definir quais os pontos mais importantes para o negócio, quais os pontos mais críticos a serem mais explorados, quais os objetivos do teste. Muito preciosismo ou uma falta de controle de cobertura pode tornar os testes muito onerosos, tornando-os inviáveis para a empresa, podendo até desconsiderá-los, chegando à sua para interrupção.

Mas o que é testar afinal? Testar não é somente executar um roteiro pré-definido, com intuito de encontrar defeitos nos sistemas. Testar é um processo realizado pelo testador de software, que engloba outros processos da engenharia de software, e que envolve ações que vão do levantamento de requisitos até a execução do teste propriamente dito [5]. A maioria das pessoas pensa que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para encontrar defeitos.

Algumas pessoas confundem a atividade de depuração (debbuging) com a atividade de teste, mas elas diferem. Atividade de teste pode demonstrar falhas que são causadas por defeitos, enquanto a depuração é uma atividade de desenvolvimento que repara o código e checa se os defeitos foram corrigidos corretamente, para então ser feito um teste de confirmação por um testador com a intenção de certificar-se se o mesmo foi eliminado. [1]

Outros conceitos chaves utilizados em testes são listados a seguir:

  • Defeito: É o resultado de um erro encontrado em um código ou em um documento.
  • Erro: É um engano cometido por seres humanos.
  • Falha: É o resultado ou manifestação de um ou mais defeitos.
  • Bug: É um erro de lógica na programação de um determinado software.
  • Testware: Define toda a documentação de teste.
  • Caso de Teste: É uma descrição de um teste a ser executado. Um ou mais casos de teste costumam estar relacionados a um caso de uso.
  • Suíte de Testes: Pacote de casos de teste relacionados. Por exemplo: Suíte de cadastro, suíte de consulta.
  • Plano de Teste: É o documento de planejamento do projeto de teste é equivalente ao Plano de Projeto definido pelo PMI (Project Management Institute).
  • Script de Teste: É uma automação da execução de um caso de teste.

No Próximo post iremos nos aprofundar mais nesses conceitos e nas técnicas de testes de software...


Referências:

[1] BSTQB – Brazilian Software Testing Qualifications Board. http://www.bstqb.org.br/uploads/docs/syllabus_2007br.pdf.

[2] Carla Almeida. Introdução a  Testes de Software

[3] G1. Falha no site do Sisu permite acesso a dados de outros candidatos”. http://g1.globo.com/educacao/noticia/2013/01/falha-no-site-do-sisu-permite-acesso-dados-de-outros-candidatos.html. Publicado em 07/01/2013.

[4] Paulo Tozelli. Teste de Software

[5] Wikipédia. “Teste de Software”. http://pt.wikipedia.org/wiki/Teste_de_software.



Referências:

[1] BSTQB – Brazilian Software Testing Qualifications Board. http://www.bstqb.org.br/uploads/docs/syllabus_2007br.pdf.

[2] Carla Almeida. Introdução a  Testes de Software

[3] G1. Falha no site do Sisu permite acesso a dados de outros candidatos”. http://g1.globo.com/educacao/noticia/2013/01/falha-no-site-do-sisu-permite-acesso-dados-de-outros-candidatos.html. Publicado em 07/01/2013.

[4] Paulo Tozelli. Teste de Software

[5] Wikipédia. “Teste de Software”. http://pt.wikipedia.org/wiki/Teste_de_software.




Post enviado por: Jeremias Araujo, Analista de Teste Sr. da Indra/Politec

segunda-feira, 25 de fevereiro de 2013

Oportunidade de Emprego - C.E.S.A.R. - Recife(PE)

O C.E.S.A.R é um dos principais provedores de soluções de Tecnologias de Informação e Comunicação (TICs) do mercado brasileiro; instituto de inovação ganhador dos prêmios FINEP de Mais Inovadora Instituição de Pesquisa do Brasil (2010 e 2004), Empresas Mais Inovadoras (Época Negócios, 2009) e Info200 de Melhor empresa de serviços de software (Revista Info, 2005).


O C.E.S.A.R está buscando profissional ENGENHEIRO DE TESTES para trabalhar na sede, em Recife-PE.


Requisitos Necessários:
- Superior Completo em Ciência da Computação, Engenharia ou Áreas Afins;
- Sólido conhecimento na área de testes;
- Experiência em análise de requisitos;
- Conhecimento em linguagens de programação;
- Conhecimento no uso de ferramentas de automação de testes;
- Inglês Avançado.


Requisitos Desejáveis:
- Conhecimento em testes exploratórios;
- Métricas de testes;
- Experiência em automação de testes.


Principais responsabilidades:
- Análise e interpretação de requisitos;
- Planejamento de testes;
- Escrita de casos de testes;
- Desenvolvimento de testes automáticos;
- Execução dos testes e análise de resultados;
- Uso de ferramentas de automação.


Interessados entre no site: http://www.cesar.org.br/site/trabalhe-no-cesar/, Cadastre-se no Banco de Currículos, Selecione a opção/cargo: “Engenheiro de Testes”


Oportunidade de Emprego - Neurotech - Recife(PE)

A NEUROTECH é uma empresa pioneiro no Brasil no desenvolvimento de soluções avançadas para automação de todo o ciclo de decisão em operações de crédito e risco com as melhores soluções práticas, processos e ferramentas tecnológicas do mercado


A NEUROTECH convida você para participar da sua equipe na sua sede em Recife, como:


ANALISTA DE TESTE


ATIVIDADES:
Instalações e atualizações dos produtos (ambiente de teste)| Identificar e elaborar os casos de teste manuais, automáticos, de performance| Disseminação do conhecimento e orientações técnicas junto à equipe| Executar e reportar testes dos diversos tipos, estágios, abordagens, técnicas | Promoção de melhorias nos produtos, processos internos, ferramentas, ambiente de trabalho e capacitação da equipe.

FORMAÇÃO:
Nível superior completo na área de TI.

Requisitos Essenciais:

No mínimo 2 anos de experiência;
Ter conhecimento em linguagens de programação, banco de dados, ferramentas de gestão de teste, ferramentas de controle de versão (SVN), ferramentas de controle de mudanças, especificação/Documentação;
Ter conhecimento em ferramentas de teste de performance e automação, processo de teste, técnicas de modelagem de testes.


Procuramos profissionais com o seguinte perfil:
Determinação - Pró-atividade - Disponibilidade - Agilidade - Comprometimento – Organização
- trabalhar sob pressão;
Espírito de Equipe - Integridade - Comportamento ético - Cooperação - Relacionamento Interpessoal – Respeito;
Capacidade analítica - Análise de problemas - conhecimento do negócio.


Enviar currículo para rh@neurotech.com.br
IMPORTANTE: Colocar no título do e-mail o nome da vaga "ANALISTA DE TESTE – NEUROTECH".
E-mails sem essa identificação não serão considerados.

domingo, 24 de fevereiro de 2013

Nova Parceria - VSOFT

Com muita alegria e satisfação que anuncio a todos mais um parceiro para o GUTS-PB. Acertamos com a VSOFT uma nova parceria. 


A Vsoft Tecnologia é uma empresa que atua no segmento de software, como fornecedora independente especializada em Segurança, Internet e Mobilidade. Foi desenvolvida a fim de atender a crescente necessidade de mercado, uma vez que as empresas convencionais com a globalização precisavam se modernizar para continuarem competitivas. Além da questão mencionada, a Vsoft foi estruturada visando suprir a carência visível por serviços condizentes com as reais necessidades e expectativas dos públicos que abrange.

Com o crescimento de parceiros o GUTS-PB está ganhando mais apoiadores e crescendo cada vez mais para que juntos possamos colocar o Teste de Software com maior visibilidade dentre os profissionais de TI.


sexta-feira, 22 de fevereiro de 2013

Nova Parceria - PBSOFT


É com grande prazer que anuncio que o GUTS-PB está com uma nova parceria, para expandir a área de Teste de Software na nossa região. O novo parceiro é a PBSOFT.

A PBSOFT é uma empresa especializada em desenvolvimento de web sites para internet e aplicativos para entidades públicas e empresas privadas. Fornecendo serviços com preços competitivos, e softwares eficientes com excelente aceitação no mercado. Nossa empresa conta com uma equipe especializada com experiência em diversas áreas de desenvolvimento, o que otimiza o processo de criação dos projetos com a melhor relação custo X benefício.

A partir de agora o GUTS-PB e PBSOFT estão juntos para colocar os Testes de Software como projeto fundamental em um processo de desenvolvimento.


Selenium – Uma Boa Opção Open Source para Automação de Testes

Este post é a primeira contribuição do nosso coladorador Thiago Ferreira para o GUTS-PB. O mesmo espera ter colaborado com um pouco do seu conhecimento da área de Qualidade e Testes de Software, falando um pouco do Selenium IDE (ferramenta de automação de testes Open Source).

Antes de aprofundarmos mais no conhecimento da ferramenta, vamos falar um pouco sobre o projeto Selenium.

O Selenium (http://docs.seleniumhq.org/) é um projeto que reúne um conjunto de ferramentas usadas para a criação de scripts de automação de testes de regressão para aplicação Web. O Selenium foi escrito basicamente utilizando Javascript e DHTML. Os testes podem ser executados em qualquer navegador, desde que suporte Javascript.

Os testes são escritos basicamente através de tabelas HTML (isso mesmo, as velhas conhecidas tags <table> e </table>). Nas tabelas são informadas as operações ou asserções de um teste e os seus respectivos argumentos. O Selenium é responsável por interpretar os comandos das tabelas HTML e executar as ações, simulando um usuário real.

O projeto Selenium é dividido em 4 módulos diferentes:
  • Selenium IDE (http://docs.seleniumhq.org/projects/ide/): É o ambiente gráfico integrado ao navegador Firefox capaz de gravar e reproduzir os testes do Selenium. Utiliza o método Record/Playback, no qual registra todas as ações do usuário. Essas ações são convertidas para o Selenês automaticamente para que o teste possa ser salvo, reexecutado e depurado individualmente ou em conjunto com outros testes.
  • Selenium RC (Remote Control) (http://docs.seleniumhq.org/projects/remote-control/): Neste modo os testes são dirigidos por uma das linguagens suportadas pelo Selenium (Java, Ruby, Python, entre outros).
  • Selenium WebDriver (http://docs.seleniumhq.org/projects/webdriver/): Sucessor do Selenium RC, este módulo aceita comandos (escritos em Selenese) e os envia diretamente para o navegador que está sendo executado os testes. Para isso, é preciso de um driver específico para execução dos testes. Ao contrário do RC, ele não precisa de um servidor para executar os testes, pois, ele inicia uma instância do navegador e executa os comandos previamente programados no script de testes.
  • Selenium Grid (http://docs.seleniumhq.org/projects/grid/): Módulo do Selenium que permite a execução de vários navegadores web em diferentes máquinas, permitindo a execução em paralelo com diversas máquinas.

O Selenese (ou Selenês) é a sintaxe dos comandos gerados pelo Selenium, onde um teste escrito em Selenese é basicamente composto por uma tabela contendo três colunas. Uma coluna é usada para operação e as duas restantes são usadas para os argumentos: 
 
Figura 1: Exemplo de um caso de teste escrito em Selenese.

Na interface do Selenium IDE temos a seguinte estrutura:

Figura 2: Selenium IDE.
Onde no campo “Tabela” na interface temos:
  • Comando: Neste bloco da tabela se insere as instruções que serão executadas;
  • Alvo: Neste bloco é o primeiro parâmetro da função a ser executada. As funções do Selenium utilizam este parâmetro para informar qual é o elemento identificador (especificamente o ID ou o NAME da tag HTML, DOM (expressão Javascript) XPATH (expressão a ser aplicada) links, CSS, entre outros) a ser buscado;
  • Valor: Insere o valor, uma identificação. Nem sempre na criação dos casos de teste este campo será preenchido.

De modo similar, as Suítes de Testes (as chamadas “Test Suíte”, grupos de Casos de Testes executados em conjunto) também são representados em tabelas HTML. Cada Suíte de Testes referencia um ou mais casos de teste que são criados na interface do programa.

As operações suportadas pelo Selenês são divididas em três grupos distintos:
  • Actions: Representam as operações realizadas pelo usuário durante a utilização da aplicação Web. A maioria das Actions representam ações do tipo “clicar em determinado link ou botão, selecionar determinada opção”, entre outros. Se a execução de uma Action falhar, o status do teste é modificado para “Failed” e o teste é imediatamente paralisado. Adicionalmente, você poderá adicionar o sufixo “AndWait” para a maioria das Actions. Este sufixo informa ao Selenium que a ação gerou uma requisição do servidor e a execução do teste precisa esperar que a página seja recarregada.
  • Accessors: Executa uma asserção (compara o estado ou propriedade de um objeto da página contra um valor esperado) e armazena o resultado numa variável. O resultado negativo de uma Accessor não paralisa a execução do teste, no entanto, a falha é exibida no resultado dos testes.
  • Assertions: Executa uma asserção (compara o estado ou propriedade de um objeto da página contra um valor esperado) No entanto, a Assertion não armazena o resultado numa variável. O resultado negativo de uma Assertion não paralisa a execução do teste, no entanto, a falha é exibida no resultado dos testes.

Uma vez aberta a janela do Selenium IDE e clicado o botão de Record/Playback, qualquer ação que você executar nas páginas do navegador será convertida para uma operação em Selenês na aba “Tabela”. No entanto, o Selenium IDE não se limita apenas a reproduzir os cliques ou preenchimentos dos campos realizados durante a navegação. Pode-se também selecionar qualquer uma das operações suportadas pelo Selenês conforme a sua necessidade por meio do campo “Comando”. Pode-se também realizar a inserção manualmente, o que, em minha opinião, é bem melhor, pois, fazendo dessa forma, o analista de testes/testador mantém maior controle sobre os scripts de testes criados, fazendo assim com que tenha um conhecimento maior sobre o script gerado pela ferramenta.

Durante a gravação da navegação pode-se selecionar qualquer objeto da página e adicionar uma operação ou asserção de acordo com o contexto do objeto selecionado ou da ação que queira executar.

E por fim, assim que é finalizada a gravação da navegação da aplicação Web, todos os passos executados serão convertidos automaticamente em Selenês e estarão disponíveis na aba “Tabela”. O teste poderá ser salvo no formato HTML para que seja posteriormente executado. Também pode executar, pausar ou depurar o teste por meio da ferramenta.

É possível também testar aplicações Web baseada em AJAX (Uma página AJAX é capaz de realizar diversas operações, sem, no entanto, precisar buscar ou trocar muitas informações com o Web Server) utilizando o Selenium IDE.


E aí, se interessou pela ferramenta? Ótimo, pois, é uma excelente solução Open Source para testes de regressão. Mas, antes de pôr a mão na massa, veremos algumas diferenças entre os comandos que são executados pelo Selenium IDE, que para quem está iniciando é essencial compreender o seu funcionamento. Os comandos podem ser do tipo:
  • Assert: Todos os comandos relacionados ao Assert irão parar a execução sempre que ocorrer um erro. Bastante utilizado para verificar se o navegador encontra-se na página correta;
  • Verify: Registra o erro, caso exista, sem interromper a execução do teste. Bastante útil para analisar os itens da página;
  • WaitFor: Toda instrução que tiver o “WaitFor” ficará esperando até que uma outra instrução retorne um valor (true or false) para que o mesmo saia desta espera.
E por hoje é só pessoal!  Espero que tenham gostado dessa postagem. O Selenium IDE é uma ferramenta poderosa, desde que seja usada de forma correta. Trabalho há algum tempo e tenho obtido resultados satisfatórios na geração dos scripts de testes. O único problema do Selenium IDE são os relatórios de erro que são apontados na aba “Mensagem”, onde, a informação gerada (quando ocorre o erro ela fica destacada na cor vermelha) é muito confusa. Fora esse detalhe, é uma ferramenta muito boa para automação e execução de casos de testes. 
 
Precisando, estamos às ordens. Até o próximo post.


Post enviado por: Thiago Ferreira Barbosa, Pós-Graduado em Qualidade  e Testes de Sofware
Analista de Sistema na Confederação das Unimeds Norte/Nordeste.