Qualidade de Software: Um fator em constante crescimento

May 24, 2017 | Autor: William Malvezzi | Categoria: Software Quality Engineering
Share Embed


Descrição do Produto

Anais do Encontro Regional de Computação e Sistemas de Informação

Qualidade de Software: Um fator em constante crescimento Ayrton Romero Silva1, João de Jesus P. Souza1, Willian R. Malvezzi2 1

Pós-Graduação em Residência em Engenharia de Software – Centro de Pós-Graduação e Extensão (CPGE) FUCAPI – Av. Gov. Danilo de Mattos Areosa, 381 – Distrito Industrial – Cep: 69075-351 Manaus – AM – Brasil [email protected], [email protected] Abstract. This article describes the importance of aggregate production quality software, addressing improvements in the process of thesis-based software that guides us on Software Engineering, in order to produce higher quality software, on a market that is increasingly growing and demanding. In this context, we discussed issues relating to quality, as well as ways to acquire it and the importance of improving software testing activities is a key factor to achieve a result with a higher degree of customer satisfaction. Resumo. Este artigo descreve a importância de agregar qualidade na produção de softwares, abordando melhorias no processo de tese de software com base no que a Engenharia de Software nos orienta, a fim de produzirmos softwares com maior qualidade, diante de um mercado cada vez mais crescente e exigente. Diante desse contexto, foram abordados assuntos referentes à Qualidade, bem como caminhos para adquiri-la e a importância de melhorarmos as atividades de teste de software como fator primordial para se atingir um resultado com maior grau de satisfação do cliente.

1. Introdução Com o crescimento do setor de informática durante o início da década de 90, considerando a constante evolução da tecnologia nos campos da Comunicação/Informação, a procura por software que atendam as novas tendências por parte das Instituições se tornou uma constante no mercado de software brasileiro e com isso agregou-se valor nessa área. “Em 2010 a participação de programas de computador desenvolvidos no país (Standard e sob encomenda) atingiu 35% do total do mercado brasileiro de software reforçando a tendência de crescimento que vem sendo apontada desde 2004” (ABES, 2011). Levando em consideração a adaptação das Fábricas de Software às exigências cada vez mais complexas em desenvolver softwares mais robustos e qualificados, o desenvolvimento de software tornouse uma pauta bastante discutida, pois a exigência de melhoria na qualidade é constate. Um dos gargalos que atrapalham a qualidade do software é a quantidade de defeitos encontrados durante a fase de testes, os quais ao serem identificados, são registrados e retornam novamente para serem corrigidos. Isso implica em retrabalho para os desenvolvedores e aumento no tempo de execução do projeto. Nesse contexto, apresentamos uma proposta que possa otimizar o processo de qualidade dos softwares, tendo como base, melhoria no processo de testes.

Manaus, 31 de maio a 02 de junho de 2012

1

ISSN 2238-5096 (CDR)

Anais do Encontro Regional de Computação e Sistemas de Informação

2. Qualidade de Software Qualidade é um tema bastante complexo, pois é constituída por várias características, porém quando citamos qualidade de software, idealizamos um software de alto nível que atenda as necessidades requisitadas pelo cliente. Visando este aspecto, Qualidade pode ser considerada como: “Qualidade é a ausência de deficiências, ou seja, quanto menos defeitos, melhor a qualidade” (SALDANHA Apud JURAN, 1992). “Qualidade é desenvolver, projetar, produzir e comercializar um produto de qualidade que é mais econômico, mais útil e sempre satisfatório para o consumidor” (SALDANHA, 2009 apud ISHIKAWA, 1993). “Qualidade é conformidade com os requisitos” (GUERRA, COLOMBO 2009 apud CROSBY 1979). Conforme conceitos apresentados, a qualidade se dá em diferentes aspectos, ou seja, ela pode estar inserida no contexto de conformidade aos requisitos estipulados pelo cliente, na materialização do produto e até mesmo, no processo de desenvolvimento do software. 3. Como medir a Qualidade de um Software? Com o amadurecimento da Engenharia de Software, o uso de mecanismos que medem a qualidade com que se produzem software é crescente e torna-se cada vez mais pré-requisito para o reconhecimento no cenário profissional. Com isso, surgiram modelos de qualidade que ajudam a parametrizar níveis aceitáveis de estágios relativos à funcionalidade, usabilidade, confiabilidade, eficiência, manutenibilidade e portabilidade do software a ser desenvolvido. Essas fontes de análise proporcionam embasamento para realizar todos os tipos de testes necessários durante o ciclo de vida do software e com isso obter respostas sobre a qualidade do software. Dentre os modelos de qualidade podemos citar:  ISO 9126 que referencia as características de qualidade de produto de software;  ISO 12207 que normatiza a qualidade dos processos de ciclo de vida do desenvolvimento de software;  CMM - Capability Maturity Model. Modelo da SEI (Instituto de Engenharia de Software do Departamento de Defesa dos EEUU) para avaliação da qualidade do processo de desenvolvimento de software. Ainda não é uma norma ISO, mas é muito bem aceita no mercado. “A qualidade é incorporada ao software em todo o processo de engenharia de software [...]” (PRESSMAN, 1995). 4. Atividade de Testes como filtros para qualidade Atividades de testes são apresentadas nos diversos modelos de desenvolvimento de software como importantes para minimizar possibilidades de se entregar produto com defeito. O ciclo de teste deve ser executado de forma paralela ao processo de desenvolvimento do software, pois o quanto antes se encontrar um defeito, menor será o custo do projeto. “O esforço relativo devotado a inspeções e teste depende do tipo de sistema que está sendo desenvolvido e da habilidade organizacional. Quanto maior for à importância de um sistema, mais esforço deve ser dedicado [...]” (SOMMERVILLE, 2005). É importante encontrar o maior número de inconsistências nas fases iniciais do projeto, pois à medida que o tempo vai passando a tendência é que as correções se tornem cada vez mais caras, aumentando assim o custo do projeto e muitas vezes acarretando prejuízo. Myers em 1979, já afirmava a importância das atividades de testes serem executadas de forma paralela a todas as outras fases de desenvolvimento de software criando a regra 10 de Myers que estabelece o custo de correção de defeitos conforme figura 2.

Manaus, 31 de maio a 02 de junho de 2012

2

ISSN 2238-5096 (CDR)

Anais do Encontro Regional de Computação e Sistemas de Informação

Figura 1: Regra 10 de Myers Fonte: Bases de Conhecimento em Teste de Software, 2007. A figura 1 demonstra que à medida com que os erros vão migrando nas fases de desenvolvimento, o custo em corrigi-las aumenta em 10 x mais. “Um defeito encontrado durante a elaboração de um modelo ou nos requisitos custa menos do que quando encontrados durante a fase de implementação do sistema” (BASTOS apud MYERS, 2007). Ao executar os testes, são registrados os defeitos e enviados para correção até que se tenha um melhor resultado, pois apesar de se utilizar todos os recursos possíveis para encontrar defeitos o projeto poderá apresentar possíveis falhas futuras. Na maioria dos processos, a fase de teste é realizada durante todo o processo de desenvolvimento, porém a projeção de casos de testes, só inicia após a definição da Especificação dos Casos de Uso, ou seja, após a fase de Requisitos. A proposta desse artigo é a antecipação da atividade de projeção dos Casos de Testes (CT) para que as mesmas se iniciem paralelamente as atividades de projeção dos Casos de Uso (UC) realizada pela equipe de análise, ou seja, o Analista de Requisitos e o Analista de Testes projetariam juntos tanto os Casos de Uso (UC) quanto os Casos de Testes (CT). Essa nova proposta ajudaria o entendimento dos desenvolvedores no que tange a visão de como os testes seriam realizados, fazendo com que boa parte dos erros de desenvolvimento, fosse eliminada antes mesmo de chegarem à execução dos testes de sistema. A figura 2 demonstra exatamente o que foi relatado anteriormente, ressaltando que não seria modificado totalmente o processo de testes, apenas a antecipação da atividade de Projetar Casos de Testes (CT).

Figura 2: Processo adaptado para Projeção de Casos de Testes Fonte: Próprio Autor

Com esse ajuste no processo de testes, a quantidade de defeitos encontrados durante os testes de sistema, é menor e isso implica em menos retrabalho, utilizando o tempo de sobra em outras atividades ou até mesmo reduzindo os custos do projeto. Diante do que foi proposto, podem-se observar os resultados obtidos em um teste de sistema, fazendo uma comparação entre o modelo genérico à nova proposta de projeção de CT conforme tabela 1.

Manaus, 31 de maio a 02 de junho de 2012

3

ISSN 2238-5096 (CDR)

Anais do Encontro Regional de Computação e Sistemas de Informação

COM PARATIVO ENTRE M ODELOS DE PROCESSO DE TESTE DE SOFTWARE

25 20 15 10 5 0

20 20

17 12

MODELO GENÉRICO

8 3

QTD CT

Situação

MODELO PROPOSTO

60%85% % de Aprovação

CT – Caso de Teste

Figura 3: Comparativo entre modelos de Processo de Testes. Fonte: Próprio Autor O resultado foi obtido a partir da primeira iteração de testes de um sistema web. Podemos notar que o índice de aprovação do modelo proposto foi maior que o modelo genérico. É notório que precisamos amadurecer essa proposta verificando o comportamento dela em projetos de diferentes complexidades, porém, o que foi demonstrado é que cada vez mais devemos buscar melhores formas de produzirmos software com maior qualidade. 5. Conclusão A presente proposta contextualizou aspectos relativos à crescente demanda por software no mercado nacional, diante de um cenário onde a qualidade se torna um grande diferencial em um mercado altamente competitivo. Para melhorar a eficácia nos projetos de software, foram necessários ajustes específicos no processo das atividades de testes, tendo como objetivo minimizar os defeitos do software, antes de chegarem à execução dos testes de sistema e com isso melhorar consideravelmente a qualidade do produto final. É evidente que os ganhos apresentados dependem da complexidade a ser testada, porém se faz necessário a busca por métodos mais otimizados com base nos conceitos estabelecidos pela Engenharia de Software. Somente através de um processo bem definido, onde todos os papéis estejam comprometidos com as boas práticas é que de fato, a atividade de teste alcançará a excelência na construção de software. 6. Referências ABES - Associação Brasileira das Empresas de Software. Mercado Brasileiro de Software: panorama e tendências - Software Market: scenario and trends, 2011. ed. -- São Paulo: Disponível em BASTOS, Aderson; RIOS, Emerson; CIRSTALLI, Ricardo; TRAYAHÚ, Moreira.“Base de Conhecimento de Teste de Software”. 2ª Ed. São Paulo: Martins, 2007. GUERRA, Ana Cervigni.; COLOMBO, Regina Maria Thienne. Tecnologia da Informação: Qualidade de Produto de Software – Brasília PBQP Software. Ministério da Ciência e Tecnologia. N.6, 2009. PRESSMAN, Roger S. Engenharia de Software; tradução José Carlos Barbosa dos Santos ; revisão técnica José Carlos Maldonado, Paulo Cesar Masieiro, Rosely Sanches. – São Paulo: Makron Books, 1995. SALDANHA, Sara Alves.; Qualidade de software e a importância dos testes nas empresas de desenvolvimento de software – São Paulo, 2009 Disponível em: Acessado em: 27 Abr. 2012. 08:28h. SOMMERVILLE, Ian. Engenharia de Software; tradução: Selma Shin Shimizu Melnikoff, Reginaldo Arakaki, Edílson de Andrade Barbosa; - São Paulo: Pearson Addison Wesley, 2007.

Manaus, 31 de maio a 02 de junho de 2012

4

ISSN 2238-5096 (CDR)

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.