Baixe o app para aproveitar ainda mais
Prévia do material em texto
Testes na Web O processo de teste na Web, abrangendo os tipos de testes e os elementos do projeto WebApp (Web Application). Os tipos de teste na Web são: 1. teste de conteúdo, 2. teste de interface com o usuário, 3. teste no nível de componente, 4. teste de navegação, 5. teste de configuração, 6. teste de segurança e 7. teste de desempenho da Web. . teste de conteúdo da Web busca descobrir erros sintáticos, erros semânticos e erros na estrutura do conteúdo que é apresentado ao usuário final; . teste de interface com o usuário testa a semântica, usabilidade e compatibilidade entre a Web e o ambiente do usuário; . teste no nível de componente Web também chamado teste de função por tentar descobrir erros em funções da WebApp. utiliza métodos de teste de caixa preta e caixa branca, além do método de teste de Erro Forçado, usado para derivar casos de teste que, premeditadamente, guiam o componente da Web para uma condição de erro; . teste de navegação na Web projetado par garantir que os mecanismos que permitem ao usuário navegar pela WebApp estejam todos em funcionamento e certificar-se de que cada unidade semântica de navegação (navigation semantic unit - NSU) possa ser alcançada pela categoria de usuário adequada; . teste de configuração da Web testa um conjunto de prováveis configurações do lado do cliente e do lado do servidor para garantir uso pelo usuário, isolando erros específicos de configuração; . teste de segurança na Web projetado para detectar vulnerabilidades no ambiente do lado do cliente, nas comunicações de rede que ocorrem quando dados são passados do cliente para o servidor e no ambiente do lado do servidor. a função do testador de segurança é descobrir fraquezas na WebApp; . teste de desempenho da Web identifica problemas resultantes da falta de recursos do servidor, da largura de banda de rede inadequada, da capacidade de banco de dados inadequada, da fragilidade do Sistema Operacional e da funcionalidade de WebApp mal projetada que podem levar à degradação do desempenho da Web. ++++++++++++++++++++++++++++++++++++++++++++++ Testes na implantação do sistema *Teste de Unidade Quem testa o programa, o programador ou o analista? . estratégias para teste de software utilização da estrutura em espiral para teste integrado do software; . definição de teste de unidade é o menor componente executável do sistema. mesmo tendo sido testado pelo implementador na fábrica de software, deve ser validado frente às interfaces; . procedimentos de teste de unidade valida cada módulo ou componente do software antes de entregá-lo ao sistema para ser integrado. utiliza módulo pseudocontrolador (Driver) e módulo pseudocontrolado (Stub), necessários para o adequado teste de unidade; . teste de unidade no contexto OO o encapsulamento guia a definição de classes e objetos, sendo que cada classe e cada instância de classe (objetos) empacotam os atributos (dados) e os métodos ou operações (funções) que manipulam os dados, fazendo com que a classe encapsulada seja o foco do teste de unidade. * Teste de Integração Como juntar os programas para fazer o sistema? . definição de teste de integração o acoplamento de módulos no sistema deve ser previamente planejado, validando suas interfaces. A dimensão e complexidade dos softwares, podem recomendar estratégias de teste de forma a não deixar acoplamento de módulos sem validação bem como não superpor testes desnecessariamente; . estratégias de teste de integração de software a integração deve ser incremental, passo a passo, para obter o sucesso esperado. a técnica incremental no software convencional pode ser de forma ascendente ou descendente. Nos testes com integração descendente, pode-se utilizar a integração, primeiro em profundidade ou a integração primeiro em largura. Os módulos subordinados ao módulo de controle principal são incorporados à estrutura de uma maneira depth-first (primeiro pela profundidade) ou breadth-first (primeiramente pela largura). Nos testes com integração ascendente, os módulos são combinados em agregados, denominados Clusters; . teste de regressão e teste fumaça o teste de regressão ajuda a garantir que modificações no software, devidas ao teste ou a outras razões, não introduzam comportamento indesejável ou erros adicionais. o teste fumaça é uma abordagem usada quando o software está ainda sendo desenvolvido, possibilitando, para projetos críticos, que a equipe de software e os testadores possam avaliar seu projeto em bases frequentes, denominado mecanismo marca-passo; . teste de integração de software no contexto OO as estratégias de integração usadas em sistemas OO são: - teste baseado no caminho de execução.(Thread-base testing), onde cada caminho de execução, constituído; pelas classes necessárias para responder a uma entrada ou atender a um evento é testado individualmente; - teste baseado no uso (Use-based testing), onde o teste começa com as classes independentes, depois testa-se as classes dependentes na segunda camada e, assim, sucessivamente, até que todas as camadas de classes do sistema sejam testadas.. * Teste de Validação Fazer certo o sistema ou fazer o sistema certo? . conceito de verificação e validação na validação do software é visto se o mesmo atende às expectativas do usuário, ou seja, faz o que o usuário quer. na verificação é visto se o software foi construído com a técnica e com as ferramentas adequadas ou seja, faz certo o que o usuário quer; . critério de teste de validação constata se as especificações do software foram atendidas, através de testes que demonstram a conformidade com os requisitos do sistema. as deficiências constatadas devem ser corrigidas e novamente testadas, antes do software ser liberado para ser testado pelos usuários; . revisão da configuração verifica se o software construído atende às especificações técnicas previstas na sua concepção, necessárias para que o software possa ser adequadamente utilizado pelos usuários; . testes alfa e beta o software recém construído deve ser testado e validado pelo usuário. A ocorrência desses testes ocorre em duas fases sucessivas denominadas testes alfa e teste beta: teste alfa, o sistema que acabou de ser construído é testado pelo usuário gestor ainda no ambiente de desenvolvimento, com a assistência da equipe desenvolvedora. Após a conclusão do teste alfa, realiza-se teste beta, quando o software é, então, disponibilizado para testes no ambiente de produção pelos usuários finais. Nestes testes, as sugestões e reclamações são analisadas e, caso necessário, incorporadas ao software a ser liberado para a produção. * Teste de Sistema . Treino é treino, jogo é jogo. . definição de teste de sistema mostra o comportamento do sistema recém construído em ambiente de produção, compartilhando o mesmo ambiente computacional com os demais sistemas em produção da empresa; . tipos de testes de sistemas o novo aplicativo deve ser submetido aos quatro tipos de teste de sistema para verificar atendimento às regras de negócio para o qual foi construído e se atende, também, às características técnicas em vigor na empresa. Os testes são de: - recuperação, - segurança, - desempenho e - estresse; . teste de recuperação - o sistema é forçado a falhar por diversas causas e é verificada se a recuperação do sistema é adequadamente realizada, no tempo e nas condições estabelecidas; . teste de segurança - verifica seos mecanismos de proteção incorporados ao sistema vão, de fato, protegê-lo de ameaças internas e externas, riscos e invasões; . teste de desempenho - projetado para testar o desempenho do software durante a execução no contexto de um sistema integrado da empresa e em um ambiente de produção de toda a organização, observando-se tempos de respostas e alocações adequadas ao uso do sistema; . teste de estresse - submete o sistema a condições extremas de operação, de forma a identificar seus limites operacionais, verificando se os mesmos estão dentro de limites toleráveis e previstos quando da especificação do sistema. * Teste na migração . Como trocar o sistema sem parar a empresa? . definição de teste de migração necessidade da adequada sintonia entre os dados armazenados no sistema anterior e os dados sob novo formato, com tecnologia moderna, tratados pelo novo sistema; . verificação dos procedimentos operacionais e legais para a migração preparação prévia da migração, com simulação e verificação dos procedimentos operacionais, financeiros e legais usados no sistema antigo e seu rebatimento no novo sistema, sempre com a concordância do usuário gestor, face a questão básica da manutenção do negócio, ou seja, mudar para melhor dentro dos requisitos de negócio estabelecido; . validação do novo formato de banco de dados o novo formato do banco de dados para o novo sistema deve possibilitar a migração de dados do antigo sistema . Os campos de dados no sistema novo que não existem no banco de dados antigo, deve ter estratégia de povoamento; . teste de migração dos dados do banco de dados simular a migração do acervo de dados, aplicando os necessários testes de validação entre os dados originados no Software Gerenciador de Banco de Dados (SGBD) do sistema antigo e os novos dados armazenados no novo SGBD do novo sistema; . simulação do novo sistema em substituição ao sistema antigo em paralelo ao antigo sistema, simular o novo sistema em condições reais de funcionamento para que o usuário gestor possa avaliar possíveis necessidades de ajustes do fluxo operacional e computacional de forma a trazer benefícios com a instalação do novo sistema. ++++++++++++++++++++++++++++++++++++++++++++++ Teste de software em sistema em produção. . Existe software perfeito, sem erro? . tipos de manutenção existem 4 tipos de manutenção que um sistema, em produção, pode sofrer: 1. corretiva, 2. perfectiva, 3. adaptativa, e 4. preventiva; . teste em manutenção de software os testes de software aplicados na manutenção de sistemas em produção demandam cuidados adicionais, notadamente quanto à corretude e ao tempo reduzido para realizar os testes, depurar os erros e validar os resultados, uma vez que os sistemas são ativos da empresa e suas interrupções podem causar danos e prejuízos; . teste em manutenção corretiva os testes na manutenção corretiva de um software em produção são os mais exigidos uma vez que se trabalha sobre um produto com vícios de construção, o que pode demandar esforço significativo para identificação e correção adequada do erro, sendo indispensável testes de validação de forma a evitar possível propagação ou derivação de erro pela correção realizada; tudo isso em diminuto espaço de tempo; . teste em manutenção perfectiva o teste na manutenção perfectiva se assemelha ao teste na construção do software, pois testa-se novas funções, incluídas pelo usuário, que serão iniciadas no sistema; . teste em manutenção adaptativa o teste em manutenção adaptativa, por validar mudanças impositivas quer legais, quer tecnológicas, mesmo com tempo limitado, são previsíveis, podendo, assim como a perfectiva e a preventiva, serem planejadas, o que facilita a atividade de teste de software; .teste em manutenção preventiva é o mais previsível, pois busca identificar, antecipadamente, possíveis erros ou falhas no aplicativo que está sendo usado na empresa. Muito pouco utilizado. Teste de software em sistema em produção. Confiabilidade e Disponibilidade . O que é um sistema disponível e um sistema confiável? . definição de falha - diferença de falha em hardware e falha em software. Como em software não existe desgaste físico, a falha é decorrente de problema no projeto ou na implementação do aplicativo que pode surgir apenas durante a produção do sistema; . definição de confiabilidade de software baseia-se na execução do sistema em determinada unidade de tempo sem falhas. A confiabilidade de software é uma medida direta da qualidade do sistema, pois considera, também, o tempo de reparo do sistema até voltar a ficar operativo; . definição de disponibilidade de software baseia-se na oferta do software em determinada unidade de tempo, considerando-se, proporcionalmente, o tempo útil de uso e o tempo de reparo de falhas. A disponibilidade, além de medida de qualidade de software, é uma medida indireta de manutenibilidade do sistema; . medida de confiabilidade de software a medida de confiabilidade MTBF (mean time between failure) é tempo médio entre falhas, resulta da soma de duas medidas diretas: 1. MTTF (mean time to failure) tempo médio de uso até a falha do software, e 2. MTTR (mean time to repair) tempo médio de reparo da falha no software. Quanto maior for o MTBF e o MTTF em relação ao MTTR mais tempo o sistema ficou operativo; . medida de disponibilidade de software a medida de disponibilidade de software considera as medidas MTTF e MTTR, sendo mais sensível ao MTTR ou seja, tempo de correção da falha, pois a disponibilidade é obtida através de: MTTF / (MTTF + MTTR) Logo, quanto mais próximo de 1 for a disponibilidade mais produtivo foi o software no período. +++++++++++++++++++++++++++++++++++++++++++++++++ Ferramentas de teste de software 1. Ferramentas de teste no desenvolvimento de sistema 2. Ferramentas de teste para o programa 3. Ferramentas de teste para o ambiente Web 4. Ferramentas de teste para sistemas em produção
Compartilhar