Pular para o conteúdo principal

Testes destrutivos

Testes destrutivos são testes com o intuito de causar falhas de maneira não controlada em um determinado 'pedaço' de uma aplicação. O objetivo desse tipo de teste é verificar a robustez de um sistema.

Um exemplo de teste destrutivo é tentarmos causar uma negação de serviço (denial of service) de um sistema web. Ou seja, tentar tornar os recursos da aplicação indisponíveis para seus utilizadores. Tais recursos seriam invalidados por sobrecarga. Por exemplo, sobrecarga de memória.

Ao sobrecarregar a memória, o sistema não seria capaz de fornecer determinado tipo de serviço.

Testes de estresse (Stress Tests)

Dependendo da forma que os testes de estresse são conduzidos, podemos classificá-los como testes destrutivos. Tais testes tem por objetivo testar a estabilidade de um sistema inteiro ou de determinada entidade do mesmo.

Testes de estresse envolvem o consumo anormal (acima) das capacidades de um sistema, para testar a robustez, a confiabilidade e a capacidade do sistema, ou de determinado trecho do mesmo, de lidar com erros.

Como todo tipo de teste, temos os resultados esperados para que possamos considerar tais testes satisfatórios. No caso, o resultado esperado é que o sistema, ou a parte do sistema em teste, não venha a ficar indisponível, ou que o sistema ‘quebre’.

E qual a diferença entre testes de estresse e testes de carga?

Simples. Testes de estresse são utilizados para determinar em quais situações o sistema fica indisponível, ‘quebra’. Testes de carga servem para medir tempos de resposta de um sistema, diante da variação da carga de usuários, dados e transações.

Testes de estresse servem para encontrar os elos mais fracos do sistema.

Ainda comparando testes de estresse e carga, podemos fazer as seguintes observações:

1. Durante os testes de estresse, quando as transações são seletivamente ‘estressadas’, o banco de dados não necessariamente estará recebendo excesso carga.
2. Da mesma forma que, durante os testes de carga, o banco de dados pode ter uma carga pesada de dados, sem que isso signifique que as transações estejam sendo ‘estressadas’.

Não consideramos testes de carga como testes destrutivos pois dentre os objetivos, como citados anteriormente, não estão a busca por pontos fracos, nem a ‘quebra’ do sistema.

Para ilustrarmos melhor o conceito de testes destrutivos, podemos pensar em testes destrutivos de automóveis, conhecidos como crash tests.

Crash Tests nada mais são que testes de colisão para detectar se automóveis atendem as especificações de segurança necessárias. Caso não as atendam, isso significa que existem pontos fracos que foram destruídos e o automóvel precisará de ajustes na fabricação.

Foto de um Peugeot 307 durante um teste de colisão:



Exemplo de relatório de Crash Test:

http://www.euroncap.com/tests/peugeot_307_2001/107.aspx



Bom, é isso!

Comentários? Dúvidas? Sintam-se em casa!

Comentários

  1. Boa tarde! Tenho uma pergunta. Gostaria de saber a opinião de vcs sobre:

    Qual a melhor alternativa para evitar a repetitividade que nos leva ao paradoxo do pesticida? Qual o melhor teste para pegar os bugs desprevenidos?

    Além disso, o que diferencia os testes de estresse dos testes destrutivos?

    Muito obrigada e um grande abraço!

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

FURPS

Olá! Nesse post, pretendo falar um pouco sobre o modelo FURPS para ilustrar atributos que estão envolvidos em Qualidade de Software : Vamos começar pela sigla FURPS: o que significa cada uma dessas letras? Do F temos Functionality, traduzimos como Funcionalidade: Representa basicamente os requisitos funcionais do sistema. Do U temos Usability, traduzimos como Usabilidade: Representa basicamente a interface sistema-usuário. Do R temos Reliability, traduzimos como Confiabilidade: Representa basicamente a eficiência e o índice de falhas do sistema. Do P temos Performance, traduzimos como Desempenho: Representa basicamente tempos de resposta e capacidade de processamento do sistema. Do S temos Supportability, traduzimos como Suportabilidade: Representa basicamente esforços necessários para manutenção e configuração do sistema. As definições acima representam o básico de cada uma das letras que compõem a sigla FURPS. A seguir entraremos em detalhes sobre cada uma das categorias, não ante...

O + do FURPS+

Segue a continuação do assunto FURPS: Posteriormente à definição do modelo FURPS, notou-se a necessidade da inclusão de mais atributos para encorpar e aumentar a cobertura do modelo. A partir dessa extensão, o acrônimo passou a ser mais comumente chamado de FURPS+ . Quais são os atributos do “+”? O + do FURPS refere-se a especificação de restrições que definirão determinados limites que deverão ser atendidos quando construímos um sistema. O + é composto dos seguintes requisitos não-funcionais: Design constraints – restrições de design: design nesse caso refere-se ao projeto, diretrizes e não a layout. A definição da utilização um banco de dados relacional no projeto é uma restrição de design, por exemplo. Implementation constraints – restrições de implementação: relacionado a limites impostos a código e construções. Como exemplo podemos citar a linguagem de programação que será utilizada para a codificação de um sistema. Interface constraints – restrições de interface: diretamente l...

Testes no RUP (Parte 1)

Nesse post, falarei sobre a disciplina de Testes dentro do modelo RUP (Rational Unified Process). Antes de abordar a aplicação da disciplina de Testes no RUP, apresento aqui uma visão geral do processo. A seguinte ilustração sobre o RUP é, por si só, bastante elucidativa: (fonte: http://www.devmedia.com.br/) Na imagem acima, temos as fases e as disciplinas que compõem o RUP: Fases: Concepção Elaboração Construção Transição Disciplinas: Modelagem de Negócio Requisitos Análise e Projeto Implementação Testes Implantação Gerência de Configuração e Mudanças Gerência do Projeto Ambiente Como o foco é falar sobre Testes, não entrarei em questões relativas a outras disciplinas. Para outras informações sobre RUP, indico os seguintes links: http://www.ibm.com/developerworks/rational/library/content/RationalEdge/jan01/WhatIstheRationalUnifiedProcessJan01.pdf http://www-01.ibm.com/software/rational/ Como nota-se na imagem anterior, a nuvem da disciplina de Testes está presente em cada uma das 4 fa...