• Nenhum resultado encontrado

aula 6

N/A
N/A
Protected

Academic year: 2021

Share "aula 6"

Copied!
41
0
0

Texto

(1)

Avaliação de Qualidade

Teste de Software

Engenharia de Software

(2)

–Jaime Silveira

“Qualidade de software é a conformidade a ! requisitos funcionais e de desempenho que ! foram explicitamente declarados, a padrões !

de desenvolvimento claramente !

documentados, e a características implícitas ! que são esperadas de todo software !

(3)

Avaliação da Qualidade

Objetivos

• Aprimorar o processo de desenvolvimento e, em

conseqüência, melhorar a qualidade do produto resultante!

!

• Avaliar a qualidade do produto visando emitir

documento oficial sobre a qualidade de um

software e sua conformidade em relação a uma norma ou padrão!

!

• Adquirir um software, com o intuito de escolher

o produto mais adequado dentre um conjunto de produtos selecionados

(4)

Aprimoramento do Processo de Software

Algumas iniciativas visando melhorias do processo de software:!

!

SEI/CMM (Capability Maturity Model), modelo desenvolvido pelo Instituto de

Engenharia de Ss (SEI) da Universidade Carnegie- Mellon, EUA, visando dar às organizações diretrizes sobre como aprimorar o processo.!

ISO/SPICE (Software Process Improvement & Capability dEtermination), cujo

objetivo é gerar normas ISO/IEC para a avaliação de processos de software.!

Norma ISO/IEC 12207, define um processo de ciclo de vida do software.!

Norma ISO/IEC 9000-3, apresenta diretrizes para a aplicação da ISO 9001 (voltada

para indústria), por empresas que desenvolvem software, para o processo de desenvolvimento e manutenção de software.!

(5)

–CMM

“Conjunto de atividades, !

métodos, práticas e tecnologias que as pessoas ! utilizam para desenvolver e manter software e !

produtos relacionados”

(6)

Avaliação da Qualidade do Produto

Algumas normas:!

!

ISO/IEC 9126 (NBR 13596), define as características de qualidade

de software que devem estar presentes em todos os produtos.!

ISO/IEC 12119, estabelece os requisitos de qualidade para pacotes

de software e instruções para teste, considerando esses requisitos.!

ISO/IEC 14598-5, define um processo de avaliação da qualidade

(7)

Avaliação da Qualidade do Produto

Como fazer:!

!

Organismos de certificação:!

No Brasil, para fornecer o certificado ISO 9000, existem empresas credenciadas pelo INMETRO.!

!

Avaliar in-house:!

Utilizar equipe multidisciplinar com especialistas da área de tecnologia e especialistas da área que se

utilizará do software (ie, que vão olhar para o software a partir do ponto de vista do cliente) → grupo de Garantia da Qualidade do Software.!

!

Contratar empresas para avaliação!

Existem empresas que fazem avaliação do software mas, por não serem credenciadas pelo INMETRO, não emitem certificado oficial. São no entanto mais acessíveis e mais ágeis que os organismos credenciados.!

(8)

Entraves à Qualidade

[IEEE610.12-1990]

Engano Ação humana que produz resultado

incorreto Mistake

Falha

Incorreção de um passo, processo ou definição de dados; Manifestação no software de um engano cometido pelo

desenvolvedor

Bug

Erro

Diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado

inesperado na execução do software

Error

Defeito Incapacidade de fornecer o serviço

(9)

Porque Surgem as Falhas?

Alterações!

Alterações degradam a estrutura do software, tornando-o cada vez mais difícil de alterar.!

!

Tempo!

Com o tempo os custos da implementação de alterações aumenta, e a capacidade do sistema em prestar os serviços esperados diminui.!

!

Complexidade!

• difícil de desenvolver: um único desenvolvedor não é capaz de entender o sistema

como um todo;!

• difícil de usar;!

(10)

Garantia de Qualidade do Software

É um padrão sistemático e planejado de ações que são exigidas para garantir a qualidade do software. [Pressman, 1992]!

!

Visa responder às seguintes questões:!

• O software atende às características de qualidade desejadas ?! • O desenvolvimento do software foi conduzido conforme os

padrões pré- estabelecidos ?!

• As disciplinas técnicas cumpriram adequadamente seus

(11)

Atividades da Garantia de Qualidade

Aplicação de métodos, técnicas e ferramentas!

• Uso pelos desenvolvedores de métodos e ferramentas que ajudem

a conseguir especificações, projetos, etc, de maior qualidade.!

!

Aplicação de padrões!

• Padrões podem ser usados: para documentos, documentação do

código e estilo de codificação (como usar a linguagem de programação)!

• Padrões podem ser determinados pelo cliente, por normas

(12)

Atividades de Garantia de Qualidade

Controle de alterações!

Toda mudança no software tem potencial para introduzir erros ou criar efeitos colaterais que propagam erros ⇒controle de mudanças durante desenvolvimento e manutenção é essencial para garantir a qualidade do software.!

!

Medição!

Obtenção de métricas para rastrear a qualidade do software e para avaliar o impacto de mudanças nos métodos e procedimentos usados para desenvolvimento e manutenção.!

!

Anotação e manutenção de registros!

Manter histórico com resultados de revisões, auditorias, controle de alterações e outras atividades de garantia de qualidade, que devem ser levados ao conhecimento dos

(13)

Teste de Software

O que é?

Teste de software é o processo de execução de um produto para determinar se ele atingiu

suas especificações e funcionou corretamente no ambiente para o qual foi projetado.!

!

O seu objetivo é revelar falhas em um

produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas pela equipe de desenvolvimento antes da entrega final.

(14)

Teste de Software - Conceito

!

De uma forma simples, testar um software significa

verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O

objetivo principal desta tarefa é revelar o número máximo

de falhas dispondo do mínimo de esforço, ou seja,

mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.!

(15)

Terminologias

[IEEE610.12-1990]

Engano Ação humana que produz resultado

incorreto Mistake

Falha

Incorreção de um passo, processo ou definição de dados; Manifestação no software de um engano cometido pelo

desenvolvedor

Bug

Erro

Diferença entre o valor obtido e o valor esperado, ou seja, qualquer estado intermediário incorreto ou resultado

inesperado na execução do software

Error

Defeito Incapacidade de fornecer o serviço

(16)

Teste de Software - Componentes

• Caso de Teste!

• Procedimento de Teste!

• Critério de Teste!

• Critério de Cobertura dos Testes!

• Critério de Adequação de Caso de Teste!

(17)

Caso de Teste

Descreve uma condição particular a ser testada e é composto por valores de entrada, restrições para a sua execução e um resultado ou comportamento esperado.!

(18)

Procedimento de Teste

É uma descrição dos passos necessários para executar um caso (ou um grupo de casos) de teste.!

(19)

Critério de Teste

Serve para selecionar e avaliar casos de teste de forma a aumentar as possibilidades de provocar falhas ou, quando isso não ocorre, estabelecer um nível elevado de confiança na correção do produto.!

(20)

Critério de Cobertura dos Testes

Permitem a identificação de partes do programa que devem ser executadas para garantir a qualidade do software e indicar quando o mesmo foi suficientemente testado (RAPPS e WEYUKER, 1982). Ou seja, determinar o percentual de elementos necessários por um critério de teste que foram executados pelo conjunto de casos de teste.

(21)

Critério de Adequação de Casos de Teste

Quando, a partir de um conjunto de casos de teste T qualquer, ele é utilizado para verificar se T satisfaz os requisitos de teste estabelecidos pelo critério. Ou seja, este critério avalia se os casos de teste definidos são suficientes ou não para avaliação de um produto ou uma função.!

(22)

Critério de Geração de Casos de Teste

Quando o critério é utilizado para gerar um conjunto de casos de teste T adequado para um produto ou função, ou seja, este critério define as regras e diretrizes para geração dos casos de teste de um produto que esteja de acordo com o critério de adequação definido anteriormente.!

(23)

Defeitos em Software

No processo de desenvolvimento de software, todos os defeitos são humanos e, apesar do uso dos melhores métodos de desenvolvimento, ferramentas ou profissionais, permanecem presentes nos produtos, o que torna a atividade de teste fundamental durante o desenvolvimento de um software.

(24)

Defeitos em Software

Por exemplo, quando um usuário da linha de produção efetua consultas no sistema das quais só a gerência deveria ter acesso. Esse tipo de falha pode ser originado por diversos motivos…

• A especificação pode estar errada ou incompleta;!

• A especificação pode conter requisitos impossíveis de

serem implementados devido a limitações de hardware ou software;!

• A base de dados pode estar organizada de forma que não

seja permitido distinguir os tipos de usuário;!

• Pode ser que haja um defeito no algoritmo de controle

(25)

Defeitos Software

Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software.

(26)
(27)

Níveis de teste de Software

• Teste de Unidade! • Teste de Integração! • Teste de Sistema! • Teste de Aceitação! • Teste de Regressão

(28)

Teste de Unidade

Também conhecido como testes unitários. Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. !

!

O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código.

(29)

Teste de Integração

Visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto.

(30)

Teste de Sistema

Avalia o software em busca de falhas por meio da

utilização do mesmo, como se fosse um usuário final.

Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software. Verifica se o produto

(31)

Teste de Aceitação

São realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.

(32)

Teste de Regressão

Teste de regressão não corresponde a um nível de teste, mas é uma estratégia importante para redução de “efeitos colaterais”. Consiste em se aplicar, a cada nova versão do

software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste.

(33)

Planejamento de Testes

1. Inicialmente é planejado o teste de aceitação a partir do documento de requisitos;!

2. Após isso é planejado o teste de sistema a partir do projeto de alto nível do software;!

3. Em seguida ocorre o planejamento dos testes de integração a partir o projeto detalhado;!

4. E por fim, o planejamento dos testes a partir da codificação.

(34)

Modelo V descrevendo o paralelismo entre as atividades de desenvolvimento e teste de software!

(35)

Técnicas de Teste de Software

Atualmente existem muitas maneiras de se testar um software. Mesmo assim, existem as técnicas que sempre foram muito utilizadas em sistemas desenvolvidos sobre linguagens estruturadas que ainda hoje têm grande valia para os sistemas orientados a objeto.

(36)

Teste Estrutural (Caixa Branca)

Técnica de teste que avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos.!

(37)

Teste Estrutural (Caixa Branca)

O testador tem acesso ao código fonte da aplicação e pode construir códigos para efetuar a ligação de bibliotecas e componentes.!

!

Este tipo de teste é desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do componente de software. Dessa maneira, todas as variações originadas por estruturas de condições são testadas.

(38)

Teste Estrutural (Caixa Branca)

A técnica de teste de Estrutural é recomendada para os níveis de Teste da Unidade e Teste da Integração, cuja responsabilidade principal fica a cargo dos

desenvolvedores do software, que são profissionais que

conhecem bem o código-fonte desenvolvido e dessa forma conseguem planejar os casos de teste com maior facilidade. Dessa forma, podemos auxiliar na redução dos problemas existentes nas pequenas funções ou unidades que compõem um software.

(39)

Teste Funcional (Caixa Preta)

Técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo.

(40)

Teste Funcional (Caixa Preta)

Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Haverá sucesso no teste se o resultado obtido for igual ao resultado esperado. O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas e/ou componentes ou mesmo uma funcionalidade. A técnica de teste funcional é aplicável a todos os níveis de teste.!

(41)

Atividade

Será que existem somente essas técnicas de teste de software ?!

!

Faça uma pesquisa sobre as seguintes técnicas:!

• Teste de desempenho! • Teste de usabilidade! • Teste de carga! • Teste de stress! • Teste de confiabilidade! • Teste de recuperação! !

Referências

Documentos relacionados

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

A fabricação dos demais componentes é separada da fabricação do flange, pois, devido ao alto número de técnicas aplicadas na fabricação do flange, é

Orientar o associado da AESSP quanto aos procedimentos para reembolso de despesas com lentes para óculos, lentes de contato (não descartáveis) e lentes graduadas para

É perceptível, desta forma, o constante aumento do aprofundamento dos personagens: os “príncipes” têm agora não só nome e falas, mas personalidades bem desenvolvidas,

A nutrição enteral (NE), segundo o Ministério da Saúde do Brasil, designa todo e qualquer “alimento para fins especiais, com ingestão controlada de nutrientes, na forma isolada

antecede a percepção moderna de escravidão negra a partir dos Europeus, já a partir dos Europeus, já que esse processo que esse processo iniciou se muito antes do mundo islâmico

Capítulo 7 – Novas contribuições para o conhecimento da composição química e atividade biológica de infusões, extratos e quassinóides obtidos de Picrolemma sprucei

Ensaio padronizado de campo pelo método de engenharia de acordo com a norma internacional ISO 16283-2 [ 1 ] para avaliação do desempenho acústico em campo ao sistema:.. ˆ