aplicação de conceitos formais de teste e métricas para garantia da qualidade de software

13
Aplicação de Conceitos Formais de Teste e Métricas para Garantia da Qualidade de Software Daniel Vitor de Lucena 1 , Edwagney Luz 2 1 Departamento de Computação – Pontifícia Universidade Católica de Goiás – GO – Brasil [email protected] 2 Departamento de Computação – Pontifícia Universidade Católica de Goiás – GO – Brasil [email protected] Abstract. This paper presents an application of the V-model test and quality metrics in an application of multimedia services, based on the quality requirements in order to demonstrate the efficiency of these techniques for fault detection and quality assurance. It’s done a short explanation of software quality and test theory. The results provide means to verify the behavior of application with the specified quality requirements. Resumo. Este artigo apresenta uma aplicação do modelo de teste em V e métricas de qualidade em um aplicativo de serviços multimídia, baseado nos requisitos de qualidade a fim de demonstrar a eficiência destas técnicas para detecção de falhas e garantia da qualidade. É feito uma breve explanação sobre as teorias de qualidade e teste de software. Os resultados obtidos provêem meios de verificar a conformidade do comportamento do aplicativo com os requisitos de qualidade especificados. Palavras chaves: Teste de Software, Métricas, Garantia da qualidade. 1. Introdução Segundo MYERS (2004, p.6), “Teste de Software é o processo de execução de um programa ou sistema com a intenção de encontrar erros”. Esta definição serve para afirmar que, ao contrário do que muitos imaginam, o teste de software é voltado para a detecção de defeitos com a finalidade de corrigi-los e não para demonstrar que um software não possui falhas. De acordo com MOLINARI (2008), para obter sucesso no processo de teste de software, é necessário uma elaboração detalhada de todas as atividades que serão executadas durante o processo, determinação de prazos e custos, recursos humanos, equipamentos, entre outros. O objetivo deste trabalho é demonstrar como garantir a qualidade de um software através da aplicação de uma metodologia de testes e uso de métricas para validação de requisitos de qualidade. O modelo de teste utilizado no decorrer deste trabalho é chamado de modelo de teste em V.

Upload: daniel-lucena

Post on 09-Nov-2015

213 views

Category:

Documents


1 download

DESCRIPTION

Qualidade, Software, Teste

TRANSCRIPT

  • Aplicao de Conceitos Formais de Teste e Mtricas para Garantia da Qualidade de Software

    Daniel Vitor de Lucena1, Edwagney Luz2

    1Departamento de Computao Pontifcia Universidade Catlica de Gois GO Brasil

    [email protected] 2Departamento de Computao Pontifcia Universidade Catlica de Gois GO

    Brasil [email protected]

    Abstract. This paper presents an application of the V-model test and quality metrics in an application of multimedia services, based on the quality requirements in order to demonstrate the efficiency of these techniques for fault detection and quality assurance. Its done a short explanation of software quality and test theory. The results provide means to verify the behavior of application with the specified quality requirements.

    Resumo. Este artigo apresenta uma aplicao do modelo de teste em V e mtricas de qualidade em um aplicativo de servios multimdia, baseado nos requisitos de qualidade a fim de demonstrar a eficincia destas tcnicas para deteco de falhas e garantia da qualidade. feito uma breve explanao sobre as teorias de qualidade e teste de software. Os resultados obtidos provem meios de verificar a conformidade do comportamento do aplicativo com os requisitos de qualidade especificados.

    Palavras chaves: Teste de Software, Mtricas, Garantia da qualidade.

    1. Introduo

    Segundo MYERS (2004, p.6), Teste de Software o processo de execuo de um programa ou sistema com a inteno de encontrar erros. Esta definio serve para afirmar que, ao contrrio do que muitos imaginam, o teste de software voltado para a deteco de defeitos com a finalidade de corrigi-los e no para demonstrar que um software no possui falhas.

    De acordo com MOLINARI (2008), para obter sucesso no processo de teste de software, necessrio uma elaborao detalhada de todas as atividades que sero executadas durante o processo, determinao de prazos e custos, recursos humanos, equipamentos, entre outros.

    O objetivo deste trabalho demonstrar como garantir a qualidade de um software atravs da aplicao de uma metodologia de testes e uso de mtricas para validao de requisitos de qualidade.

    O modelo de teste utilizado no decorrer deste trabalho chamado de modelo de teste em V.

  • 2. Modelo de Teste em V

    O modelo de teste em V possui 2 fases conforme Figura 1, sendo a primeira fase de desenvolvimento e a fase posterior de validao. Estas fases podem ter outras nomenclaturas conforme a literatura adotada, como por exemplo: Desenvolvimento e Teste, Verificao e Validao, entre outras.

    Em sua primeira fase, o modelo sugere que o planejamento dos testes seja realizado em paralelo ao desenvolvimento nos diferentes nveis do processo, com o objetivo de ao trmino da fase, o plano de teste esteja concludo, permitindo o incio imediato do processo de validao, segunda fase.

    Figura 1 Estrutura do Modelo de Teste V descrevendo o paralelismo entre as atividades de desenvolvimento e teste de software [CRAIG, Rick .D., JASKIEL, Stefan.P. (2002)].

    Como mostrado na Figura 1, o planejamento dos testes realizado no sentido inverso sua execuo, com base na documentao de cada etapa da fase de desenvolvimento. Segundo ROCHA (2001) e, as principais etapas do teste de software so:

    Teste de Unidade: tambm conhecido como teste unitrio ou teste de mdulo, cujo objetivo testar a menor unidade desenvolvida no projeto, sendo uma pequena parte ou unidade do sistema. O Alvo deste tipo de teste detectar falhas em pequenos trechos de cdigo como mtodos dos objetos ou sub-rotinas [MYERS (2004, p.91)];

    Teste de Integrao: o conjunto de testes realizados quando componentes desenvolvidos separadamente so acoplados, conforme projetado. O objetivo detectar as falhas oriundas dessa integrao, referente troca de informaes entre esses componentes;

    Teste de Sistema: realizado diretamente no software, simulando o uso do sistema em produo sob o ponto de vista do usurio final, sendo submetido a condies reais ou similares as quais faro parte do uso no dia a dia. O objetivo detectar falhas nas funcionalidades para o qual foi projetado;

  • Teste de Aceitao: o conjunto de testes realizados com um grupo restrito de usurios finais do sistema, onde feito uma simulao das operaes de rotina, com o objetivo de avaliar o comportamento do sistema e verificar se est de acordo com o solicitado.

    Alm das etapas de teste j citadas, ainda existem outros 3 tipos:

    Teste de Regresso: trata-se de uma estratgia para reduo de falhas sempre que uma nova verso do software lanada ou a cada novo ciclo. Essa estratgia consiste na execuo de todos os testes que j foram executados em verses mais antigas;

    Teste de Operao: teste restrito a sistemas de informao prprios de uma organizao, no aplicado a sistemas de forma geral. Consiste em teste de instalao, restaurao de backup de banco de dados, etc. So realizadas simulaes afim de garantir o sucesso na implantao do novo sistema;

    Teste Alfa e Beta: so testes especficos de grandes sistemas como: Sistemas Operacionais, Sistemas de Gerenciamento de Banco de Dados e Sistemas distribudos em escala nacional ou internacional. De acordo com PRESSMAN (2005, p.375), o teste alfa realizado no ambiente de desenvolvimento sob orientao do cliente que simula o usurio e registra erros e problemas de uso. O teste alfa se d entre a fase final de desenvolvimento e a entrega do produto. Ainda PRESSMAN (2005, p.375), o teste beta realizado fora do ambiente de desenvolvimento, normalmente sem a presena do desenvolvedor, onde um ou mais clientes, instalam e utilizam a verso beta, registrando os problemas, reais ou imaginrios, que so encontrados durante o uso.

    4. Qualidade de Software

    A qualidade de software pode ser vista como um conjunto de caractersticas em uma aplicao, essenciais aos seus usurios e que devem ser satisfeitas.

    PRESSMAN (2005, p.716) define qualidade de software como sendo a conformidade dos requisitos funcionais e de desempenho explicitamente declarados, padres de desenvolvimento explicitamente documentados e as caractersticas implcitas que so esperadas de todos os softwares profissionalmente desenvolvidos.

    Para alcanar essa qualidade necessrio adotar um modelo de atividades planejadas e executadas de forma sistemtica objetivando garantir tanto a confiana no produto quanto no servio.

    Segundo a norma ISO/IEC 9126-1, a capacidade do software determinada por um conjunto de atributos internos, que podem ser medidos para cada caracterstica e subcaracterstica. Assim, define 6 atributos para qualidade de software, como visto na Figura 2.

  • Figura 2 Modelo de qualidade para qualidade externa e interna. [ISO 9126]

    5. Mtricas para uso em Qualidade

    Conforme a norma ISO/IEC 9126-4, temos 4 tipos de mtricas:

    Mtricas de Efetividade: tambm conhecida como mtricas de eficcia so usadas para saber se as tarefas executadas pelo usurio atingiram as metas especificadas com preciso e perfeio, sem levar em conta a forma como os objetivos foram alcanados;

    Mtricas de Produtividade: tem o objetivo de avaliar os recursos consumidos pelo usurio em relao a eficcia alcanada em um contexto de uso especificado. O principal recurso medido o tempo, podendo ser adicionado outros recursos pertinentes como: custo, esforo, materiais, etc;

    Mtricas de Segurana: so usadas para avaliar o risco de danos a pessoas, negcios, software, bens ou o ambiente em um contexto de uso especificado. Abrange desde a sade e segurana do usurio at as conseqncias fsicas ou econmicas;

    Mtricas de Satisfao: tem por fim avaliar as atitudes do usurio em relao utilizao do produto em um contexto de uso especificado. Essa satisfao influenciado pela percepo do usurio com relao as propriedades do produto de software e pela percepo da eficincia, produtividade e segurana em uso.

    6. Aplicao de Mtricas e Conceitos de Teste - Sistema TV nibus

    O sistema ao qual foram aplicados os conceitos acima introduzidos uma soluo cuja finalidade prover um servio de exibio de contedo multimdia em veculos, semelhante programao da TV aberta, com uma programao pr-definida. Tanto a programao quanto os arquivos de udio e vdeo so copiados da internet, atravs de um endereo especfico.

    Por ser um sistema desenvolvido para veculos, a forma de conexo com a internet mvel, o que ocasiona diversos tipos de instabilidade.

    Com a finalidade de garantir a qualidade desse servio e verificar se as solues desenvolvidas atendem os requisitos, foi feito uso dos conceitos de teste e qualidade acima citados.

  • Ser demonstrada apenas a etapa do teste de sistema, baseado no Modelo de Teste em V aplicado sobre os requisitos de qualidade e a validao desses requisitos atravs do uso de mtricas de satisfao.

    6.1 Requisitos de Qualidade

    Tabela 1. Identificao e descrio dos requisitos de qualidade.

    ID Caracterstica/ Sub caracterstica

    Descrio

    [REQUA 001] Confiabilidade/ Tolerncia a Falhas

    A exibio da programao e/ou contedo diversos deve ser transmitida ininterruptamente.

    [REQUA 002] Eficincia/ Comportamento com Relao ao Tempo

    A aplicao deve detectar perda de sinal e/ou falha na conexo com a internet em at 5 segundos.

    [REQUA 003] Eficincia/ Comportamento com Relao ao Tempo

    Em caso de perda de sinal ou falha de conexo com a internet, a aplicao deve restabelecer a conexo e reiniciar a recepo de dados em 15 segundos havendo disponibilidade de sinal.

    [REQUA 004]

    Confiabilidade/ Recuperabilidade

    A aplicao deve garantir a retomada da recepo de dados a partir do ltimo byte recebido.

    [REQUA 005]

    Eficincia/ Utilizao de Recursos

    A aplicao deve trafegar pelo menos 350MB de dados por hora.

    6.2 Casos de Teste

    Tabela 2. Identificao e descrio do caso de teste CT - 001.

    ID [CT - 001]

    Descrio Forar falha na conexo com a internet.

    Itens de Teste [REQUA 001], [REQUA 002]

    Detalhamento Interromper bruscamente a conexo com a internet.

    Precondies O Sistema deve estar em pleno funcionamento e conectado a internet com sinal estvel.

    Especificao de Entrada

    No se aplica.

  • Pontos de Observao 1. Verificar estabilidade da exibio do contedo.

    2. Verificar o tempo gasto para deteco da perda de sinal e/ou falha na conexo com a internet.

    Pontos de Controle 1. Mdulo de exibio de contedo.

    2. Mdulo de recepo de dados.

    Resultados Esperados 1. O Sistema deve manter o pleno funcionamento do mdulo de exibio de contedo multimdia, no podendo ocorre nenhum tipo de oscilao de udio ou vdeo. Caso os arquivos da programao no estejam disponveis para o momento da exibio, um contedo secundrio deve ser exibido, garantindo a no interrupo do sistema.

    2. A deteco da perda de sinal ou falha na conexo com a internet deve ser efetuada dentro do prazo estabelecido em [REQUA 002].

    Ps-condies O mdulo de recepo de dados deve iniciar imediatamente as tentativas de re-conexo.

    Interdependncias No Possui.

    Tabela 3. Identificao e descrio do caso de teste CT - 002.

    ID [CT - 002]

    Descrio Restabelecer conectividade com a internet.

    Itens de Teste [REQUA 003], [REQUA 004]

    Detalhamento O Sistema deve inicialmente tentar sucessivamente a re-conexo com a internet. Aps restabelecida a conexo, deve ser registrado o tempo gasto na ltima tentativa e retomar a recepo de dados do ponto em que foi interrompida.

    Precondies O Sistema deve estar em funcionamento sem conexo com a internet. O caso de teste [CT 001] deve ter sido aprovado.

    Especificao de Entrada

    No se aplica.

    Pontos de Observao 1. Verificar capacidade de re-conexo.

    2. Verificar tempo gasto para re-conexo.

    3. Verificar retomada da recepo.

  • Pontos de Controle 1. Mdulo de recepo de dados.

    Resultados Esperados 1. O Sistema deve conseguir restabelecer a conexo.

    2. A re-conexo deve ser efetuada dentro do prazo estabelecido em [REQUA 003].

    3. A recepo deve ser retomada a partir do ltimo byte recebido.

    Ps-condies O Sistema deve manter o pleno funcionamento de todos os mdulos.

    Interdependncias [CT - 001]

    Tabela 4. Identificao e descrio do caso de teste CT - 003.

    ID [CT - 003]

    Descrio Monitorar trfego de dados por 1 hora

    Itens de Teste [REQUA 005]

    Detalhamento O inicio da monitorao inicia-se automaticamente aps a inicializao do sistema e detectado a conexo com a internet. Aps 1 hora de monitoramento, interrompida automaticamente a conexo com a internet e verificado o total de bytes recebidos.

    Precondies O Sistema deve estar em pleno funcionamento e conectado a internet. O caso de teste [CT 002] deve ter sido aprovado.

    Especificao de Entrada

    No se aplica.

    Pontos de Observao 1. Verificar capacidade de trfego de dados.

    Pontos de Controle 1. Mdulo de recepo de dados.

    Resultados Esperados 1. O total de bytes trafegados seja igual ou superior os estabelecido em [REQUA 005]

    Ps-condies O Sistema deve manter o pleno funcionamento de todos os mdulos.

    Interdependncias [CT - 002]

  • 6.3 Mtricas de Satisfao para Validao dos Requisitos de Qualidade

    Tabela 5. Mtrica para validao do requisito de qualidade [REQUA 001]

    Requisito [REQUA 001]

    Caso de Teste [CT 001]

    Nome da Mtrica Exibio de contedo multimdia

    Propsito da Mtrica Como a estabilidade da exibio do contedo?

    Prioridade Essencial

    Modelo de Aplicao Observao da Utilizao

    Medida e Frmula Exibio Estvel, Exibio com Instabilidade, Exibio com Interrupes.

    Interpretao Exibio Estvel = Vlido Exibio com Instabilidade = No Vlido Exibio com Interrupes = No Vlido

    Tipo de Escala -

    Tipo de Medida -

    Entrada Resultado de um Roteiro de Teste

    Referncia ISO 12207 6.5 Validao; 5.3 Teste de Qualificao

    Pblico-Alvo Usurios

    Tabela 6. Mtrica para validao do requisito de qualidade [REQUA 002]

    Requisito [REQUA 002]

    Caso de Teste [CT 001]

    Nome da Mtrica Deteco de perda de sinal

    Propsito da Mtrica Quanto tempo necessrio para o mdulo de recepo de dados de detectar falha na conexo?

    Prioridade Tolervel

    Modelo de Aplicao Observao da Utilizao

    Medida e Frmula X = T T = tempo gasto para deteco da falha de conexo

    Interpretao 0

  • Tipo de Escala Tempo em segundos

    Tipo de Medida T = quantidade X = quantidade

    Entrada Resultado de um Roteiro de Teste

    Referncia ISO 12207 6.5 Validao; 5.3 Teste de Qualificao

    Pblico-Alvo Usurios

    Tabela 7. Mtrica para validao do requisito de qualidade [REQUA 003]

    Requisito [REQUA 003]

    Caso de Teste [CT 002]

    Nome da Mtrica Restabelecimento de conexo

    Propsito da Mtrica Quanto tempo necessrio para o mdulo de recepo de dados restabelecer a conexo com a internet, considerando a disponibilidade do sinal?

    Prioridade Tolervel

    Modelo de Aplicao Observao da Utilizao

    Medida e Frmula X = T T = tempo gasto para restabelecer conexo

    Interpretao 0

  • Propsito da Mtrica O mdulo de recepo de dados ao retomar o trfego de dados, recomea a partir do ltimo byte do arquivo recebido?

    Prioridade Essencial

    Modelo de Aplicao Observao da Utilizao

    Medida e Frmula SIM ou NO

    SIM = Vlido; NO = No Vlido.

    Tipo de Escala -

    Tipo de Medida -

    Entrada Resultado de um Roteiro de Teste

    Referncia ISO 12207 6.5 Validao; 5.3 Teste de Qualificao

    Pblico-Alvo Usurios

    Tabela 9. Mtrica para validao do requisito de qualidade [REQUA 005]

    Requisito [REQUA 005]

    Caso de Teste [CT 003]

    Nome da Mtrica Trfego de dados por hora

    Propsito da Mtrica Qual a quantidade de bytes trafegados em 1 hora?

    Prioridade Essencial

    Modelo de Aplicao Observao da Utilizao

    Medida e Frmula X = ((TB/1024)/1024) TB = Total de bytes recebidos

    Interpretao 0

  • 6.4 Critrios de Execuo dos Testes

    Os testes foram realizados em um ambiente similar ao de produo, dentro de um veculo em movimento e utilizando critrios e configuraes conforme Tabela 10.

    Tabela 10. Definio de configurao de equipamento e ambiente de teste

    Veculo Micro-nibus

    Velocidade Mdia (KM) 50

    Computador Processador Celeron 1.86 GHZ, 512 MB de RAM, HD 40GB.

    Dispositivo de Internet Mvel HUAWEI E220 USB Modem

    Velocidade Internet Mvel 1 Mbps (Nominal)

    Trajeto Avenida Anhanguera, entre o terminal Padre Pelgio e terminal Novo Mundo em ambos os sentidos, em Goinia, Gois.

    Foram realizados 3 ciclos de testes conforme definido na Tabela 11: Tabela 11. Horrios dos Ciclos

    N do Ciclo Horrio

    1 07:00 s 08:00

    2 12:30 s 13:30

    3 19:00 s 20:00

    6.5 Resultados

    Tabela 12. Resultados

    Caso de Teste Requisito N da Execuo do

    Caso de Teste

    Resultado Validao

    [CT - 001]

    [REQUA 001]

    1 Exibio estvel Vlido

    2 Exibio estvel Vlido

    3 Exibio estvel Vlido

    [REQUA 002]

    1 4 Segundos timo

    2 4 Segundos timo

    3 3 Segundos timo

  • [CT - 002]

    [REQUA 003]

    1 13 Segundos timo

    2 16 Segundos Tolervel

    3 14 Segundos timo

    [REQUA 004]

    1 SIM Vlido

    2 SIM Vlido

    3 SIM Vlido

    [CT - 003] [REQUA 005]

    1 396 MB Aceitvel

    2 322 MB Inaceitvel

    3 401 MB timo

    7. Concluso Foi apresentada uma sugesto, baseado em um projeto real, de como aplicar as tcnicas de teste de software e avaliar os resultados coletados utilizando mtricas para validao.

    visto que em um dos ciclos de teste, o requisito de qualidade [REQUA-005] reprovado. Esse indicador serve para mostrar a eficincia da tcnica aplicada no processo de validao, detectando uma inconformidade com o especificado no requisito. Serve tambm para apontar uma possvel falha funcional ou uma falha nas especificaes de uso do produto.

    Esse cenrio mostra quo eficaz planejar antecipadamente os casos de teste como sugere o modelo adotado, no caso o modelo em V, fazendo em paralelo as fases de desenvolvimento o planejamento para cada fase de teste. Essa prtica propicia uma melhor organizao e controle dos testes que sero efetuados, maior capacidade para estimar resultados e maior preciso e efetividade no processo de execuo dos testes e avaliao da qualidade do produto.

    No caso especfico da aplicao avaliada, cabe como sugesto de melhoria no processo de desenvolvimento, a especificao de uma mtrica para quantificar o tempo de disponibilidade mnima de sinal ou conexo estvel com a internet necessrio para que seja satisfeito o requisito de qualidade [REQUA-005], j que no foi medido por quanto tempo a aplicao se manteve com a conexo estvel com a internet em nenhum dos ciclos de testes realizados.

    Por fim conclui-se quo importante a garantia da qualidade em produtos de software visando a satisfao do usurio. A devida aplicao dos conceitos formais de teste de software associados a um conjunto de mtricas bem definidas, alm de oferecer meios de verificar se o comportamento da aplicao est em conformidade com os requisitos de qualidade especificados, prov indicadores que so dados valiosos para o

  • aperfeioamento do processo de desenvolvimento de software, visto que a qualidade do produto est diretamente ligada qualidade do processo.

    8. Referncias

    PRESSMAN, Roger. S., Software Engineering: A Practitioners approach, 6th ed, McGraw Hill, 2005.

    SOMERVILLE, Ian., Software Engineering, 8th ed, Addison-Wesley, 2007.

    MYERS, Glenford J., The Art of Software Testing Second Edition, John Wiley & Sons, New Jersey, 2004,ISBN 0-471-46912-2.

    CRAIG, Rick .D., JASKIEL, Stefan. P., Systematic Software Testing, Artech House Publishing, Norwood, MA, 2002, ISBN 1-58053-508-9.

    RIOS, E., BASTOS, A., CRISTALLI, R., MOREIRA, T., Martins Fontes, Base de conhecimento em teste de software, 2007.

    MOLINARI, Leonardo. Testes Funcionais de Software. Florianpolis: Visual Books, 2008.

    KOSCIANSKI, A., Soares, Novatec, M. S. Qualidade de Software, 2006.

    ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., Qualidade de software Teoria e prtica, Prentice Hall, So Paulo, 2001

    NBR ISO/IEC 9126-1, Engenharia de Software Qualidade de Produto - Modelo de Qualidade, Associao Brasileira de Normas Tcnicas, 2003.

    NBR ISO/IEC 12119, Tecnologia de Informao Pacotes de Software Testes e Requisitos de Qualidade, Associao Brasileira de Normas Tcnicas, 1998.

    NBR ISO/IEC 14598-1/5, Tecnologia de Informao Avaliao de Produto de Software, Associao Brasileira de Normas Tcnicas, 2001.

    ISO/IEC 9126-1, Software engineering Software product quality- Part 1: Quality model,2000.

    ISO/IEC 9126-4, Software engineering Software product quality- Part 4: Quality in use metrics,2000.

    ISO/IEC 12207, Systems and Software Engineering Software life cycle processes,2008.