INTELIGÊNCIA ARTIFICIAL APLICADA À QUALIDADE DE SOFTWARE

ARTIFICIAL INTELLIGENCE APPLIED TO SOFTWARE QUALITY

REGISTRO DOI: 10.69849/revistaft/th10249181506


George Daniel Marques Borges[1]
Sósthenes Oliveira Lima[2]


Resumo

O artigo explora a aplicação da Inteligência Artificial (IA) na melhoria da qualidade de software, abordando especificamente sua integração com processos tradicionais de desenvolvimento. A pesquisa tem como objetivo analisar como técnicas de IA podem ser utilizadas para aprimorar a automação de testes, a detecção de falhas e o monitoramento de desempenho em sistemas de software. O estudo utiliza uma revisão de literatura e análise de casos práticos para investigar os benefícios e desafios dessa integração. A pesquisa revela que a IA pode significativamente aumentar a eficiência e a precisão dos testes de software, embora a adaptação a sistemas legados e a necessidade de grandes volumes de dados sejam desafios importantes. Conclui-se que, apesar das vantagens promissoras, a implementação de IA exige mudanças substanciais nas práticas de desenvolvimento e um novo conjunto de habilidades dos engenheiros de software. O trabalho contribui para uma compreensão mais profunda das barreiras e soluções relacionadas à aplicação de IA na garantia de qualidade de software, oferecendo diretrizes para a integração eficaz dessas tecnologias.

Palavras-chave: Inteligência Artificial. Qualidade de Software. Automação de Testes. Sistemas Legados. Desenvolvimento de Software

Abstract

This paper examines the application of Artificial Intelligence (AI) in enhancing software quality, focusing particularly on its integration with traditional development processes. The study aims to analyze how AI techniques can be employed to improve test automation, defect detection, and performance monitoring in software systems. Utilizing a literature review and practical case analysis, the research investigates the benefits and challenges associated with this integration. Findings indicate that AI can significantly enhance the efficiency and accuracy of software testing, although adaptation to legacy systems and the need for substantial data volumes pose significant challenges. The study concludes that, despite the promising advantages, implementing AI requires substantial changes in development practices and a new skill set for software engineers. This work contributes to a deeper understanding of the barriers and solutions related to applying AI in software quality assurance, providing guidelines for the effective integration of these technologies.

Keywords: Artificial Intelligence. Software Quality. Test Automation. Legacy Systems. Software Development.

1        INTRODUÇÃO

A qualidade de software tem se tornado um fator determinante para o sucesso de produtos digitais em um ambiente onde a tecnologia evolui rapidamente e a competitividade é acirrada, assim, um software confiável, eficiente e seguro é essencial para atender às demandas dos usuários e garantir a continuidade dos negócios, todavia, garantir essa qualidade não é uma tarefa simples, especialmente em sistemas cada vez mais complexos e distribuídos e dentro deste conceito, a Inteligência Artificial (IA) tem emergido como uma ferramenta promissora para aprimorar os processos de desenvolvimento e manutenção de software, com foco particular na automação e melhoria da qualidade. (Pressman; Maxim, 2021)

A sua aplicação na qualidade de qualidade de software é um tema que tem ganhado relevância em virtude dos resultados alcançados por empresas que adotaram essa tecnologia para automatizar testes, detectar falhas e monitorar o desempenho de seus sistemas, e diante disso, Misaki, Cruz e Silva (2024) destacam que a integração de IA em processos de teste pode aumentar a eficiência e a cobertura dos testes, além de proporcionar maior precisão na detecção de defeitos.

Entretanto, apesar desses benefícios, ainda existem incertezas e desafios sobre a implementação efetiva de IA, especialmente no que diz respeito à adaptação a sistemas legados e à necessidade de grandes volumes de dados para treinar os modelos, fato que vai de encontro a problematização desta pesquisa, que reside na dificuldade de integrar técnicas de IA aos processos tradicionais de garantia de qualidade de software de forma eficaz e sustentável. (Sucena; Cury, 2024)

Assim, o seu uso, pode melhorar o processo de testes e reduzir o tempo de desenvolvimento, mas, ao mesmo tempo, exige mudanças substanciais nas práticas de desenvolvimento, o que pode gerar resistência dentro das equipes de TI e exigir um novo conjunto de habilidades dos engenheiros de software e além disso, há a questão de como essas tecnologias podem ser aplicadas em sistemas que não foram originalmente concebidos para suportar automação avançada, como sistemas legados, tornando essa pesquisa essencial para a compreensão das barreiras e soluções relacionadas à implementação dessa tecnologia na qualidade de software. (Maia, 2023)

Diante disso, a justificativa para a realização deste estudo baseia-se na necessidade de investigar mais profundamente os impactos da IA na qualidade de software e entender como essas ferramentas podem ser utilizadas de maneira eficiente em ambientes de desenvolvimento modernos e tradicionais, fato que segundo Baldin et al. (2019), é dado com um fator fundamental para que as novas tecnologias sejam adaptadas às necessidades reais das empresas, levando em conta seus sistemas existentes e seus recursos disponíveis. Dessa forma, a pesquisa pretende não apenas identificar as vantagens e limitações da IA nesse contexto, mas também propor diretrizes para a sua implementação prática.

A fim de responder a pergunta de pesquisa: Como a Inteligência Artificial pode ser aplicada para melhorar a qualidade do software, especificamente na automação de testes, detecção de falhas e monitoramento de desempenho, e quais são os principais benefícios e desafios dessa integração? O objetivo deste estudo é analisar a aplicação de técnicas de IA para a melhoria da qualidade de software, com foco na automação de testes, detecção de falhas e monitoramento de desempenho, buscando-se investigar como ela pode ser integrada aos processos tradicionais de desenvolvimento e quais os principais benefícios e desafios dessa integração. Ao final, espera-se que essa pesquisa contribua para uma melhor compreensão de como a IA pode otimizar a qualidade de software e ajudar as organizações a obterem melhor resultados em seus projetos.

Em síntese, este estudo se propõe a explorar como a Inteligência Artificial pode ser utilizada para resolver desafios críticos na garantia de qualidade de software, com uma abordagem que combina revisão de literatura e análise de casos práticos, além de fornecer informações que possam ser aplicadas tanto em novos desenvolvimentos, quanto na modernização de sistemas legados, tornando a qualidade do software mais robusta e confiável.

2        REVISÃO DE LITERATURA
2.1  Conceitos de Qualidade de Software

A qualidade de software é um conceito multidimensional que abrange aspectos como funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade, sendo esses fatores, cruciais para o seu desenvolvimento, pois, determinam a satisfação do cliente, a competitividade no mercado e a longevidade do produto, fato que de acordo com Ignácio, Oliveira e Francez (2024), volta-se a garantia de que o produto atenda às expectativas do cliente e funcione de maneira consistente em diferentes ambientes operacionais. Isso exige um planejamento rigoroso desde o início do ciclo de vida do software, com práticas que incluem análise de requisitos, design robusto, codificação cuidadosa e testes exaustivos.

Sendo assim, a importância da qualidade de software vai além da funcionalidade básica do sistema, fato que segundo Wazlawick (2019) afirma, é fundamental para garantir que o software funcione corretamente sob diferentes condições, minimizando o risco de falhas críticas, contudo deve-se ressaltar que a eficiência desse processo relaciona-se ao uso de recursos computacionais, como memória e tempo de processamento, que impactam diretamente no desempenho do sistema, que conforme observado por Pressman e Maxim (2021) um software com baixa eficiência pode causar insatisfação ao usuário e resultar em custos operacionais elevados, especialmente em ambientes de produção que exigem alta performance.

Outro aspecto essencial da qualidade de software é a usabilidade, que define a facilidade com que os usuários podem interagir com o sistema, que, de acordo com Gupta, Epihaniou e Maple (2023), um sistema com boa usabilidade permite que os usuários realizem suas tarefas de maneira intuitiva e sem erros frequentes, portanto, a qualidade de software deve abranger tanto os aspectos técnicos quanto a experiência do usuário, sendo necessário um equilíbrio entre esses dois fatores para alcançar um produto de sucesso.

O processo de garantir a qualidade, segundo Pinho (2022) envolve uma abordagem sistemática para identificar e corrigir defeitos ao longo do ciclo de vida do software, o que inclui a aplicação de revisões, testes automatizados e validações contínuas para garantir que o sistema atenda aos requisitos especificados, onde, a ausência de um processo formal de garantia de qualidade pode resultar em um produto com defeitos, o que compromete sua integridade e funcionalidade, levando a falhas graves em produção.

Segundo Descovi et al. (2023), a norma ISO/IEC 25010, oferece um modelo de referência amplamente adotado para avaliar a qualidade de software, identificando oito características principais, como funcionalidade, confiabilidade e segurança, atributos que são críticos para o desenvolvimento de sistemas de alta qualidade e servem como guia para as práticas de engenharia de software voltadas à garantia de qualidade, onde a sua adoção permite uma avaliação objetiva e comparável da qualidade de diferentes sistemas, o que é essencial para o sucesso do projeto.

Com o aumento da complexidade dos sistemas modernos, a abordagem tradicional de garantia de qualidade tornou-se insuficiente para lidar com os desafios emergentes, como aponta Boni (2024), a dependência de métodos manuais para teste e validação de software não é mais eficaz em sistemas que possuem milhões de linhas de código e estão distribuídos em múltiplas plataformas e a partir dessa limitação, novas abordagens baseadas em automação e inteligência artificial começaram a ganhar relevância na engenharia de software, proporcionando maior eficiência e cobertura de testes.

A mudança para sistemas distribuídos e complexos, como os baseados em microserviços, também ampliou a necessidade de ferramentas avançadas de teste e validação, pois, a integração contínua e a entrega contínua (CI/CD) exigem que os testes sejam executados de forma rápida e automatizada, o que muitas vezes ultrapassa a capacidade das equipes de teste manual , nesse contexto Syllabus (2023) destaca que a aplicação de técnicas de IA para automatizar testes e melhorar a precisão na detecção de defeitos é essencial para garantir a qualidade dos sistemas.

Portanto, garantir a qualidade de software é um desafio cada vez mais complexo, que exige o uso de ferramentas automatizadas e técnicas avançadas para assegurar que o sistema funcione conforme o esperado e diante dessa questão, a aplicação da IA na qualidade de software surge como uma resposta a essas demandas crescentes, oferecendo a capacidade de testar grandes sistemas de maneira mais eficiente e precisa, conforme será abordado nos próximos tópicos. (Silva et al., 2023)

2.2  Inteligência Artificial e suas Aplicações na Engenharia de Software

A inteligência artificial (IA) tem revolucionado diversos setores, e a engenharia de software não é exceção, onde esse fato, ela é definida como a capacidade das máquinas em realizar tarefas que requerem inteligência humana, como aprendizado, raciocínio e solução de problemas, contudo, no contexto da engenharia de software, essas capacidades têm sido exploradas para aprimorar o processo de desenvolvimento, particularmente em atividades como teste, depuração e manutenção de sistemas complexos. (Amershi et al., 2019).

Segundo Pressman e Maxim (2021), o seu uso, permite que os sistemas aprendam com dados e experiências anteriores, tornando o desenvolvimento de software mais eficiente e menos propenso a erros humanos e a sua adoção na a engenharia de software pode ser vista em diversas áreas, como o aprendizado de máquina, que é amplamente utilizado para prever defeitos em sistemas com base em dados históricos e, de encontro a isso, Misaki, Cruz e Silva (2024), destacam o fato de que os modelos preditivos treinados com IA podem identificar padrões que indicam a probabilidade de um componente do software falhar, permitindo ações preventivas antes que ocorram falhas críticas. O que é especialmente útil em sistemas complexos, onde a depuração manual seria extremamente demorada e sujeita a erros.

Além da previsão de defeitos, a sua utilização também se volta à melhoria da automação de testes de software através da utilização das ferramentas baseadas nessa tecnologia, como os frameworks de teste adaptativos, ajustam automaticamente os casos de teste conforme o código-fonte do software evolui, garantindo que os testes permaneçam relevantes e eficazes, fato que Gupta, Epiphaniou e Maple (2023), destacam como uma questão relacionada a redução significativa do esforço necessário para manter um conjunto de testes atualizado, além de melhorar a cobertura dos testes e aumentar a probabilidade de detectar defeitos antes que o software seja lançado.

Outro campo promissor para a IA na engenharia de software é o diagnóstico automatizado de problemas, já que essas fermentas são capazes de analisar grandes volumes de logs de execução, além de identificar anomalias que podem indicar falhas no sistema. Diante, disso, Anandakumar e Arulmurugan (2019), ressaltam em sua pesquisa que os algoritmos de aprendizado profundo podem ser treinados para reconhecer padrões anômalos em logs de sistemas, acelerando o processo de identificação de falhas e reduzindo o tempo de inatividade causado por bugs não detectados.

A IA também tem se mostrado eficaz na geração de código, com ferramentas como o GPT-3 demonstrando capacidade de gerar snippets de código em linguagens como Python e Java, o que representa um avanço significativo na produtividade dos desenvolvedores, permitindo que tarefas repetitivas e padronizadas sejam automatizadas, liberando os programadores para focar em aspectos mais criativos e estratégicos do desenvolvimento de software. (Maia, 2023)

Contudo, a sua introdução na engenharia de software não está isenta de desafios, pois, um dos principais obstáculos é a integração eficaz de soluções baseadas em IA com sistemas legados, que podem não ter sido projetados para suportar tais tecnologias, conforme apontado por Barenkamp, Rebstadt e Thomas (2020), onde ressalta-se que a sua integração em sistemas antigos requer um esforço considerável de refatoração e adaptação, o que pode ser custoso e demorado.

Além disso, a qualidade dos dados utilizados para treinar os modelos de IA é um fator crítico para o sucesso de sua aplicação, pois os seus modelos são altamente dependentes de dados de alta qualidade para gerar previsões precisas e relevantes, ondem, a ausência de dados adequados ou a presença de dados enviesados pode comprometer seriamente os resultados e levar a falhas no processo de garantia de qualidade. (Boni, 2024)

A ética também é uma questão emergente no uso de IA na engenharia de software, dado o fato destacado por Sucena e Cury (2024), ao qual remonta o fator de que a automatização de tarefas críticas pode levantar preocupações sobre a responsabilidade em caso de falhas, sendo fundamental compreender e garantir que as decisões tomadas por sistemas de IA sejam transparentes e que os desenvolvedores entendam os critérios utilizados pelos algoritmos para evitar consequências indesejadas.

Por fim, Learduzzi et al. (2021), ressaltam que a aplicação de IA na engenharia de software promete transformar profundamente as práticas de desenvolvimento, proporcionando ganhos de eficiência, precisão e confiabilidade, no entanto, a adoção bem-sucedida dessas tecnologias depende da resolução de questões técnicas, éticas e de integração com sistemas existentes, fatos que serão apresentados no próximo item.

2.3  Automação de Testes de Software com IA

A automação de testes de software é uma prática fundamental para garantir a qualidade em projetos de desenvolvimento, especialmente em sistemas de grande escala e com o avanço das tecnologias de IA, o processo de automação de testes tem se tornado mais eficiente e abrangente, sendo assim, Pressman e Maxim (2021), destacam que a automação tradicional de testes já oferecia benefícios como a redução de tempo e esforço manual, mas a aplicação de IA traz novas possibilidades, como a criação dinâmica de casos de teste e a detecção proativa de defeitos em estágios iniciais de desenvolvimento.

Uma das principais contribuições da IA na automação de testes é a capacidade de gerar casos de teste automaticamente, com base no comportamento do sistema em tempo real, e, de encontro a isso Silva et al. (2023), ressaltam que as ferramentas de aprendizado de máquina podem aprender padrões de uso do software e criar cenários de teste que imitam situações reais, melhorando a cobertura e a relevância dos testes, sendo esse tipo de abordagem considerada útil em sistemas complexos, onde o comportamento emergente pode ser difícil de prever ou simular manualmente.

Além da geração de casos de teste, a sua utilização pode ocorrer na otimização dos testes e da sua execução, identificando quais partes do código precisam de mais atenção, fato que pode ocorrer através da utilização de ferramentas nessa tecnologia, voltadas a priorizar os testes de acordo com o risco de falha, usando algoritmos que avaliam a probabilidade de um determinado módulo conter defeitos. Dessa forma, o esforço de teste pode ser direcionado de maneira mais eficiente, economizando tempo e recursos enquanto mantém altos níveis de qualidade. (Gao et al., 2019).

A capacidade de IA de realizar testes de regressão também é um avanço significativo conforme afirmam Amershi et al. (2019), em sus estudos, onde ressalta a questão da utilização da regressão contínua em sistemas em desenvolvimento, fato que é dado pelo autor como crucial a fim de garantir que as alterações no código não introduzam novos defeitos em funcionalidades existentes. Sendo assim, ao utilizar IA para monitorar automaticamente as mudanças no código e selecionar os testes mais adequados a serem executados, é possível evitar a execução redundante de testes, melhorando o desempenho da pipeline de integração contínua. (Barenkamp; Rebstadt; Thomas, 2020)

Quanto a automação em testes, Baldin et al. (2019) consideram que o uso da inteligência artificial é promissor ao que se tange a automação de testes e a detecção de anomalias em sistemas de produção, que, neste caso, aplicam-se os algoritmos de aprendizado profundo, que podem ser treinados para identificar padrões anômalos em grandes volumes de dados, como logs de execução e métricas de desempenho, o que também vai de encontro a visão de Maia (2023), a qual volta-se a questão dessas técnicas permitirem que os problemas sejam detectados e corrigidos antes que afetem negativamente os usuários, reduzindo o tempo de inatividade e aumentando a confiança na estabilidade do sistema.

A automação de testes com IA também tem se expandido para áreas como a verificação de interfaces gráficas de usuário (GUIs), diante disso, as suas ferramentas podem analisar interfaces automaticamente e identificar problemas de usabilidade ou inconsistências visuais, sendo importantes em aplicativos voltados ao consumidor, onde a experiência do usuário desempenha um papel crítico na aceitação do produto. (Guabareva; Lopes, 2020)

Por outro lado, a sua aplicação na automação de testes ainda enfrenta desafios técnicos e práticos, onde, um dos principais problemas é a dificuldade de treinar algoritmos de IA com dados representativos e de qualidade suficiente, fato que segundo Barenkamp, Rebstatdt e Thomas (2020) ressaltam quando aos dados e sua incompletude ocasional quanto ao treinamento da inteligência artificial, que s caro acontecer, poderão gerar uma automação de testes ineficaz, que não consegue detectar certos tipos de defeitos ou se concentra excessivamente em áreas de menor risco.

Outro desafio importante é o custo de implementação, já que, ao integrar IA em uma infraestrutura de testes existente pode ser uma tarefa complexa e custosa, especialmente para empresas que operam com sistemas legados, pois, além disso, a manutenção de modelos de IA exige conhecimentos especializados, o que pode dificultar a adoção em larga escala por equipes de desenvolvimento que não possuem experiência em inteligência artificial. (Gao et al., 2019)

Apesar desses desafios, os benefícios da automação de testes com IA são evidentes, e a tendência é que seu uso se torne cada vez mais comum nos próximos anos com a evolução contínua dos algoritmos dessa tecnologia, com o aumento da capacidade de processamento de dados, espera-se que as ferramentas de teste automatizado se tornem mais acessíveis e eficazes, permitindo que equipes de desenvolvimento garantam a qualidade de seus produtos de forma mais eficiente e precisa. (Golendukhina; Learduzzi; Felderer, 2022).

DE acordo com Tao, Gao e Wang (2019), essa evolução tecnológica oferece uma oportunidade única para as empresas otimizarem seus processos de garantia de qualidade, reduzindo o tempo de lançamento de novos produtos e melhorando a satisfação dos clientes. Sendo assim, na próxima seção, serão apresentados os desafios e limitações da aplicação da IA para garantir a qualidade do software, ressaltando as áreas em que a IA ainda enfrenta barreiras significativas.

2.4  Desafios e Limitações na Aplicação de IA para Garantia de Qualidade de Software

Um dos principais obstáculos em relação a qualidade de software e a sua implementação junto a IA, está na necessidade de dados de alta qualidade para treinar modelos dessa tecnologia, fato que Kothamali, Karne e Dandyala (2024), ressaltam quanto ao aprimoramento da eficiência de um modelo de IA, que depende fortemente da qualidade dos dados de treinamento, e dados incompletos, enviesados ou irrelevantes podem comprometer a precisão das previsões. Isso significa que, sem uma preparação cuidadosa dos dados, a IA pode falhar em detectar defeitos críticos ou gerar falsos positivos, prejudicando o processo de garantia de qualidade.

Outro desafio importante é a integração da IA com sistemas legados. Conforme discutido por Kothmali, Karne e Dandyala (2024), muitas empresas operam com infraestruturas de software antigas, que não foram projetadas para suportar tecnologias modernas o que requer esforços significativos de refatoração e adaptação, o que pode aumentar o custo e o tempo de implementação e além disso, a sua integração em sistemas existentes pode enfrentar resistência por parte das equipes de desenvolvimento, que podem não ter familiaridade com essas tecnologias.

A interpretabilidade dos modelos de IA também é uma limitação relevante, para Golendukhina; Learduzzi e Felderer (2022), pois, acreditam que os algoritmos de aprendizado profundo, em particular, são muitas vezes tratados como “caixas pretas”, ou seja, é difícil para os desenvolvedores entenderem como o sistema chegou a uma determinada conclusão, o que pode ser problemático em cenários críticos, onde é essencial que os resultados sejam interpretáveis e auditáveis, onde a falta de transparência pode levar à desconfiança na automação baseada em IA e dificultar sua adoção em larga escala.

A escalabilidade é outro fator que limita o uso de IA na garantia de qualidade de software, embora ela seja eficaz em muitos cenários, sua aplicação em sistemas de grande escala pode exigir recursos computacionais significativos, fato que vai de encontro a visão de Pinho (2022), a qual volta-se a treinar e executar modelos de IA em ambientes de produção pode ser um processo intensivo em termos de computação e armazenamento, o que pode representar uma barreira para empresas com recursos limitados.

Além disso, há questões éticas envolvidas na aplicação da IA na garantia de qualidade, conforme apontado por Boni (2024), onde, neste caso, a automação de tarefas críticas levanta preocupações sobre a responsabilidade em caso de falhas, ou seja, se um sistema de IA falhar em detectar um defeito crítico, por exemplo, quem será responsabilizado? Essa falta de clareza pode gerar implicações legais e de responsabilidade, especialmente em setores regulamentados, como o de saúde e finanças.

Outro desafio está relacionado à manutenção dos modelos, pois assim como o software tradicional, os modelos de IA precisam ser atualizados e mantidos regularmente para garantir que continuem eficazes à medida que o sistema evolui, o que requer uma equipe com conhecimentos especializados, o que pode aumentar os custos operacionais para empresas que adotam essa tecnologia. (Guabareva; Lopes, 2020)

Apesar desses desafios, os avanços contínuos na pesquisa em IA prometem resolver muitas dessas limitações e, a fim de mitigar problemas relacionados à ssa tecnologia, as ferramentas de IA explicável (XAI), estão sendo desenvolvidas para tornar os algoritmos de aprendizado profundo mais interpretáveis e transparentes, o que pode aumentar a confiança dos desenvolvedores em sua aplicação e além disso, as melhorias na eficiência computacional e na infraestrutura de dados estão tornando-a mais acessível e escalável para empresas de todos os tamanhos. (Amershi et al., 2019).

Em conclusão, enquanto a inteligência artificial oferece um enorme potencial para melhorar a garantia de qualidade de software, sua implementação bem-sucedida depende da superação de desafios técnicos, éticos e organizacionais, fato que instiga as empresas a lidarem com tais obstáculos que, se mitigados as colocarão m posições de destaque ao que se tange ao aproveitamento dos benefícios da automação inteligente, melhorando a qualidade e a eficiência de seus processos de desenvolvimento de software. (Malik et al., 2018)

3        METODOLOGIA

A metodologia adotada para a realização desta pesquisa baseou-se em uma revisão de literatura, que de acordo com Gil (2010), essa é uma abordagem amplamente utilizada em pesquisas acadêmicas com o objetivo de analisar, sintetizar e avaliar criticamente os estudos já existentes sobre um tema específico e no presente e trabalho, o foco da revisão foi a aplicação de técnicas de inteligência artificial (IA) na garantia de qualidade de software, uma área em crescimento que tem atraído cada vez mais atenção nos últimos anos, o que de encontro a Martins (2010) permitiu a identificação das principais contribuições, lacunas e tendências no campo estudado, proporcionando uma visão ampla e detalhada do estado da arte sobre o tema.

Este trabalho caracteriza-se como uma pesquisa qualitativa, pois visa a análise profunda dos estudos disponíveis, sem se limitar a dados quantitativos, buscando uma interpretação crítica das informações encontradas, assim, Lakatos e Marconi (2010), afirmam que a natureza qualitativa da pesquisa é adequada para este tipo de revisão, uma vez que permite uma reflexão detalhada sobre as práticas descritas nos estudos analisados e suas implicações para o campo da engenharia de software.

Para garantir a relevância e a confiabilidade das fontes utilizadas, a pesquisa foi realizada em bases de dados acadêmicas renomadas, como IEEE Xplore, ACM Digital Library, ScienceDirect e Google Scholar, que são amplamente reconhecidas por fornecerem acesso a artigos de alta qualidade revisados por pares.

Quanto a seleção das bases, essa ocorreu por sua importância na área de ciência da computação e engenharia de software, especialmente no que diz respeito à aplicação de IA em processos de software, seguindo critérios rigorosos, buscando garantir que os estudos incluídos fossem recentes e relevantes, refletindo o estado mais atual das inovações tecnológicas na área de estudo.

A coleta de dados foi conduzida por meio de buscas utilizando palavras-chave diretamente relacionadas ao tema, tais como “inteligência artificial”, “qualidade de software”, “automação de testes”, “aprendizado de máquina” e “detecção de defeitos” e, para assegurar que os estudos analisados fossem relevantes para o cenário atual, foram considerados majoritariamente artigos publicados entre 2018 e 2024, contudo, estudos mais antigos foram incluídos quando considerados fundamentais para a compreensão histórica ou técnica do tema.

Os critérios de inclusão dos estudos na revisão foram baseados na clareza metodológica dos artigos, na apresentação de dados empíricos e na relação direta com o uso de IA em garantia de qualidade de software, onde, os estudos que abordavam tanto técnicas tradicionais quanto inovações, como aprendizado supervisionado, redes neurais e algoritmos genéticos, foram considerados. Por outro lado, artigos que não apresentavam dados empíricos ou que não tratavam diretamente da relação entre a Inteligência Artificial e a qualidade de software foram excluídos, garantindo que o foco da pesquisa permanecesse alinhado aos seus objetivos principais.

A análise dos dados coletados foi feita qualitativamente, com o intuito de identificar padrões, tendências e recorrências nos estudos revisados e permitiu uma interpretação detalhada dos diferentes métodos e técnicas de IA aplicados à garantia de qualidade de software, evidenciando tanto os benefícios quanto os desafios dessas aplicações. Ainda, quanto a análise quantitativa, essa, foi especialmente importante para compreender as dinâmicas envolvidas na integração de IA em processos de software, destacando as melhorias observadas e as limitações enfrentadas pelos profissionais da área.

Os resultados foram organizados em categorias temáticas que facilitam a compreensão dos diferentes aspectos abordados pelos estudos, onde as principais categorias identificadas foram as técnicas de IA utilizadas, os benefícios observados com a aplicação delas, na garantia de qualidade de software, os desafios enfrentados na implementação dessas tecnologias e os estudos de caso que ilustram o sucesso da sua adoção, permitindo uma base crítica e comparativa das diferentes abordagens, oferecendo insights valiosos sobre as práticas mais eficazes e as áreas que ainda necessitam de aprimoramento.

Para garantir a validade e a confiabilidade dos resultados obtidos, foi realizado um rigoroso processo de triangulação das fontes, cruzando dados e informações de diferentes estudos através da utilização de múltiplas fontes e a análise detalhada dos dados permitiram uma visão mais robusta e precisa sobre a aplicação da IA na garantia de qualidade de software, onde a escolha dos estudos revisados por pares assegurou a credibilidade das informações utilizadas na pesquisa.

Por fim, é importante ressaltar que a principal limitação desta metodologia reside na natureza retrospectiva da revisão de literatura, que se baseia exclusivamente em estudos previamente publicados, dessa forma, haver inovações emergentes que ainda não foram amplamente documentadas na literatura e, além disso, a diversidade de contextos e métodos utilizados nos estudos analisados pode limitar a generalização dos resultados, exigindo uma interpretação cuidadosa e específica de cada caso estudado.

4        RESULTADOS E DISCUSSÕES
4.1  Aplicação de Inteligência Artificial na Garantia de Qualidade de Software

A aplicação de Inteligência Artificial (IA) nos processos de garantia de qualidade de software vem revolucionando o campo da engenharia de software, sobretudo ao permitir a automação e a otimização de tarefas antes realizadas de maneira intensiva em recursos humanos, e, diante desse fato, a literatura aponta que a IA, especialmente quando associada a métodos de aprendizado de máquina (machine learning), proporciona um ganho substancial na eficiência e na precisão dos testes de software (Boni, 2024).

Esse cenário representa uma ruptura paradigmática em relação aos métodos tradicionais, pois a IA pode identificar padrões e prever potenciais falhas com base em dados históricos, o que resulta em uma alocação mais estratégica dos recursos durante o processo de desenvolvimento e junto a isso, estudos como os Baldin et al. (2019) corroboram com a utilização de algoritmos genéticos e redes neurais como ferramentas robustas na otimização dos testes, adaptando-se de forma contínua conforme novos dados são incorporados ao sistema, que permite a otimização das estratégias de teste, direcionando-as para áreas mais suscetíveis a erros, e é especialmente relevante em ambientes ágeis e de desenvolvimento contínuo, onde a demanda por flexibilidade é essencial.

No entanto, como apontado por Sucena e Cury (2024), a adoção da IA em processos de garantia de qualidade de software ainda enfrenta uma série de barreiras Um dos principais entraves está relacionado à complexidade técnica envolvida no desenvolvimento e implementação de soluções baseadas em IA, o que exige das equipes de desenvolvimento uma combinação de expertise em ciência de dados e engenharia de software. Essa demanda técnica, muitas vezes, restringe a utilização da IA a empresas de grande porte, que possuem os recursos financeiros e humanos para tal implementação.

Outro aspecto que merece destaque, conforme Silva et al. (2023), é a interpretação dos resultados gerados pela IA, assim, a “caixa-preta” que caracteriza muitos algoritmos de aprendizado de máquina apresenta desafios em termos de explicabilidade, dificultando a compreensão e a validação dos resultados por parte das equipes de desenvolvimento. Esse problema é exacerbado em sistemas críticos, onde a transparência nos testes e validações é essencial para o cumprimento de normas regulatórias e padrões de segurança.

Ainda que existam desafios consideráveis, os benefícios da automação de testes com IA são amplamente reconhecidos, pois, em cenários de integração e entrega contínuas (CI/CD), a IA se mostrou capaz de executar testes em ciclos curtos, garantindo que as alterações no código sejam validadas de forma eficiente e constante, conforme um estudo conduzido por Golendukhina; Learduzzi e Felderer (2022), relata que empresas que adotaram IA em seus pipelines de desenvolvimento apresentaram uma redução significativa no tempo de detecção de falhas e maior confiabilidade em seus sistemas, o que contribui diretamente para a melhoria da qualidade final do software e, consequentemente, da satisfação dos usuários.

Além disso, a utilização de IA na análise de logs de sistemas e na detecção de anomalias oferece uma vantagem adicional ao identificar padrões de comportamento fora do comum em grandes volumes de dados, onde tal abordagem tem sido particularmente útil em ambientes de computação em nuvem, onde a monitorização contínua dos recursos e a identificação de falhas emergentes são cruciais para garantir a alta disponibilidade dos sistemas, segundo afirmam Souza e Tomazela (2020) que diante desse contexto, a IA permite a detecção precoce de problemas que, de outra forma, poderiam passar despercebidos pelos métodos tradicionais de monitoramento.

Por fim, cabe ressaltar que a adoção dessa tecnologia em processos de garantia de qualidade não se restringe a grandes corporações, porém, ao adotar iniciativas voltadas à sua democratização, como desenvolvimento de ferramentas de IA explicável (Explainable AI) e a criação de algoritmos mais acessíveis, têm possibilitado que empresas de pequeno e médio porte também usufruam dos benefícios da automação, fato que é destacado por Tao, Gao, Wang (2019) e Kunduru (2023), onde busca-se mitigar o problema da “caixa-preta” e proporcionar uma maior transparência nos processos, facilitando a validação dos resultados pelos desenvolvedores.

4.2  Limitações e Desafios na Aplicação de IA em Garantia de Qualidade

Ainda que os avanços no uso da IA sejam inegáveis, a sua aplicação na garantia de qualidade de software encontra limitações importantes, conforme discutido por Barenkamp, Rebstadt e Thomas (2020), onde um dos principais desafios está na necessidade de grandes volumes de dados para o treinamento eficaz dos modelos de aprendizado de máquina, pois de encontro a isso, Gao et al. (2019) afirmam que muitas organizações, particularmente startups e pequenas empresas, não possuem a quantidade de dados necessária para extrair padrões significativos, limitando a aplicabilidade das soluções baseadas em IA, o que restringe a escalabilidade dessas soluções em contextos com recursos limitados, dificultando a adoção em larga escala.

A questão da integração com sistemas legados também surge como um obstáculo crítico que, conforme observado por Waslawick (2019), grande parte das empresas ainda depende de ferramentas tradicionais de desenvolvimento, que não foram projetadas para interagir com tecnologias avançadas de IA, o que gera uma resistência à inovação, já que a integração dessas soluções com IA exige, muitas vezes, a reestruturação de processos e investimentos elevados, que junto com o treinamento das equipes volta-se a visão de que o seu treinamento para utilização de novas tecnologias é um fator que pode desmotivar a transição para ferramentas baseadas em IA.

Outro desafio mencionado por Maia (2023) é a questão da confiabilidade dos modelos de IA em diferentes contextos de desenvolvimento de software, sendo assim, a eficácia desses modelos pode variar substancialmente em função da complexidade do software e das especificidades do ambiente em que estão sendo aplicados, fato que levanta preocupações sobre a generalização dos modelos e a necessidade de personalização para cada projeto, aumentando o custo e o tempo de implementação. Onde, neste caso, Kothamali, Karne e Dandyala (2024) afirmam que a falta de um modelo universal, adaptável a diferentes contextos, ainda é um fator limitante para o uso de IA na qualidade de software.

A ética no uso da IA também emerge como uma questão relevante na literatura, já que com o aumento da autonomia dos sistemas, surge a dúvida sobre quem deve ser responsabilizado em casos de falhas graves, fato que Boni (2024) relaciona ao fato da transparência e a responsabilidade serem questões cruciais deste processo, especialmente quando a IA é utilizada em sistemas críticos, como software médico ou financeiro, no entanto, a falta de clareza na cadeia de responsabilidade pode gerar insegurança quanto à adoção dessas tecnologias, limitando sua aplicação em áreas regulamentadas.

O armazenamento e o uso de dados sensíveis para treinar algoritmos de IA também são preocupações recorrentes, assim, a conformidade com regulamentações como a Lei Geral de Proteção de Dados (LGPD) é imprescindível para garantir que os dados utilizados sejam processados de forma segura e ética, contudo, a falta de políticas claras de governança de dados e a possibilidade de ataques cibernéticos colocam em risco a integridade dos sistemas de IA, especialmente quando se trata de dados altamente sensíveis. (Silva, 2023)

A explicabilidade dos modelos de IA surge como uma solução potencial para mitigar alguns dos desafios apresentados, através da utilização das ferramentas que possibilitam a compreensão dos processos decisórios dos algoritmos são fundamentais para aumentar a confiança na IA, especialmente em contextos onde a responsabilidade precisa ser claramente definida, conforme defendem Hourani, Hammad e Lafi (2019) e Anandakumar e Atulmurugan (2019) sobre o fato de que as iniciativas voltadas para o desenvolvimento de algoritmos mais interpretáveis estão em pleno desenvolvimento, e espera-se que, em breve, essas soluções proporcionem uma maior transparência.

Por fim, abordagens como o few-shot learning, que buscam minimizar a quantidade de dados necessários para o treinamento de modelos, estão sendo investigadas para permitir que mesmo empresas com dados limitados possam se beneficiar da IA.( Nashid; Sintaha. Mesbah, 2023)

5        CONCLUSÃO

Este estudo confirma que a Inteligência Artificial (IA) tem um impacto significativo na melhoria da qualidade de software, particularmente na automação de testes, detecção de falhas e monitoramento de desempenho, atingindo os seus objetivos ao demonstrar que a integração de IA nos processos de desenvolvimento de software pode aumentar a eficiência e a cobertura dos testes, além de aprimorar a precisão na identificação de defeitos, além dos resultados que corroboram com a hipótese de que a aplicação de técnicas de IA pode proporcionar uma maior confiabilidade nos sistemas de software.

A análise mostra que, apesar dos benefícios, existem desafios substanciais na implementação de IA, especialmente relacionados à adaptação a sistemas legados e à necessidade de grandes volumes de dados para treinar os modelos, onde esses desafios demonstram a problemática identificada na introdução, indicando que a integração eficaz de IA nos processos tradicionais de garantia de qualidade ainda enfrenta obstáculos significativos.

A pesquisa destaca que a adoção de IA pode melhorar os processos de teste e reduzir o tempo de desenvolvimento, mas também exige mudanças substanciais nas práticas de desenvolvimento e um novo conjunto de habilidades para os engenheiros de software, o que revela a necessidade de uma adaptação cuidadosa e gradual das equipes de TI e dos sistemas existentes para tirar pleno proveito das vantagens dessa tecnologia, contudo, embora ela ofereça soluções promissoras para a melhoria da qualidade de software, sua implementação deve ser acompanhada de estratégias que contemplem as particularidades dos sistemas legados e as restrições de dados.

Essa pesquisa então, contribui para a compreensão das barreiras e propõe diretrizes para a implementação prática da IA, sugerindo que a tecnologia deve ser adaptada às necessidades reais das organizações e aos recursos disponíveis e os resultados deste estudo não apenas confirmam que a IA pode otimizar a qualidade de software, mas também que há uma necessidade urgente de mais pesquisas e desenvolvimentos para superar as limitações identificadas, recomendando-se para futuras pesquisas, a exploração de novas abordagens para integrar IA em sistemas legados e a pesquisa contínua sobre métodos para reduzir a dependência de grandes volumes de dados.

REFERÊNCIAS

ANANDAKUMAR, H.; ARULMURUGAN, R. Artificial Intelligence and Machine Learning for Enterprise Management. In: 2019 International Conference on Smart Systems and Inventive Technology (ICSSIT). IEEE, 2019. p. 1265-1269. Disponível em: https://ieeexplore.ieee.org/abstract/document/8987964/. Acesso em 18 ago. 2024.

BALDIN, Cleison Pinter et al. A inteligência artificial na Automatização de Processos. 2019. Trabalho de Conclusão de Curso. Instituto Catarinense de Pós-graduação, 2019. Disponível em: https://egov.ufsc.br/portal/sites/default/files/a_inteligencia_artificial_na_automatizacao_de_pr ocessos.pdf. Acesso em: 02 mar. 2024.

BARENKAMP, Marco; REBSTADT, Jonas; THOMAS, Oliver. Applications of AI in classical software engineering. AI Perspectives, v. 2, n. 1, p. 1, 2020. Disponível em: https://link.springer.com/article/10.1186/s42467-020-00005-4. Acesso em 01 ago. 2024.

BONI, Nathaelly. Inteligência artificial para testes de software. 2024.Trabalho de Conclusão de Curso, Monografia. Universidade Federal de São Carlos, Curso de Ciências da Computação, 2024. Disponível em: https://repositorio.ufscar.br/handle/ufscar/19407. Acesso em: 10 ago. 2024.

DESCOVI, Lucieli Martins Gonçalves et al. Avaliação da usabilidade do agente conversacional Cerebrum com professores em formação: uma abordagem educacional aplicada às equações algébricas. Revista Iberoamericana de Tecnología en Educación y Educación en Tecnología, n. 36, p. e3-e3, 2023. Disponível em: Aceso em: 04 jun. 2024.

GIL, A. C. Como elaborar projetos de pesquisa. 5ª ed. São Paulo: Atlas, 2010.

GAO, Jerry et al. What is AI software testing? and why. In: 2019 IEEE International Conference on Service-Oriented System Engineering (SOSE). IEEE, 2019. p. 27-2709.Disponível em: https://ieeexplore.ieee.org/abstract/document/8705808/. Acesso em 28 ago.2024.

GOLENDUKHINA, Valentina. LENARDUZZI, Valentina; FELDERER, Michael. What is Software Quality for AI Engineers? Towards a Thinning of the Fog. Proceedings of the 1st International Conference on AI Engineering: Software Engineering for AI. 1–9.Disponível em: https://www.researchgate.net/publication/359055078_What_is_Software_Quality_for_AI_En gineers_Towards_a_Thinning_of_the_Fog.Acesso em: 10 ago. 2024.

GUBAREVA, Regina; LOPES, Rui Pedro. Virtual Assistants for Learning: A Systematic Literature Review. CSEDU (1), p. 97-103, 2020. Disponível em:https://www.scitepress.org/PublishedPapers/2020/94176/94176.pdf . Acesso em 01 set. 2024.

GUPTA, Sandeep; EPIPHANIOU, Gregory; MAPLE, Carsten. AI-augmented usability evaluation framework for software requirements specification in cyber physical human systems. Internet of Things, v. 23, p. 100841, 2023. Disponível em: https://www.sciencedirect.com/science/article/pii/S2542660523001646. Acesso em 10 jul. 2024.

HOURANI, Hussam; HAMMAD, Ahmad; LAFI, Mohammad. The impact of artificial intelligence on software testing. In: 2019 IEEE Jordan International Joint Conference on Electrical Engineering and Information Technology (JEEIT). IEEE, 2019. p. 565-570.Disponível em: https://ieeexplore.ieee.org/abstract/document/8717439/. Acesso em 10 ago. 2024.

IGNÁCIO, Andrew Carvalho; OLIVEIRA, Lucas da Silva; FRANCEZ, Marcos Paulo Moraes. Eficiência do Uso da Inteligência Artificial no Desenvolvimento de Software. Advances in Global Innovation & Technology, v. 2, n. 2, p. 06-16, 2024.Disponível em: http://revista.fateczl.edu.br/index.php/git/article/view/69. Acesso em 07 mai. 2024.

KOTHAMALI, Parameshwar Reddy; KARNE, Vinod Kumar; DANDYALA, Sai Surya Mounika. Integrating AI and Machine Learning in Quality Assurance for Automation Engineering. In: International Journal for Research Publication and Seminar. 2024. p. 93-102.Disponivel em: https://jrps.shodhsagar.com/index.php/j/article/view/1445 . Acesso em 01 ago. 2024.

KUNDURU, Arjun Reddy. Effective usage of artificial intelligence in enterprise resource planning applications. International Journal of Computer Trends and Technology, v. 71, n. 4, p. 73-80, 2023. Disponível em:https://www.academia.edu/download/102928816/IJCTT_V71I4P109.pdf. Acesso em 10 ago. 2024.

LAKATOS, E. M.; MARCONI, M. A. Fundamentos de metodologia científica. 7ª ed. São Paulo: Atlas, 2010.

LENARDUZZI, Valentina et al. Software quality for ai: Where we are now?. In: Software Quality: Future Perspectives on Software Engineering Quality: 13th International Conference, SWQD 2021, Vienna, Austria, January 19–21, 2021, Proceedings 13. Springer International Publishing, 2021. p. 43-53. Disponível em: https://link.springer.com/chapter/10.1007/978-3-030-65854-0_4. Acesso em: 30 ago. 2024.

MAIA, Caio Jordan de Lima. Teste de aceitação gerado por Inteligência Artificial: um estudo exploratório sobre seu potencial de uso por analistas de teste. 2023.Monografia. Trabalho de Conclusão de Curso. Universidade Federal da Paraíba, 2022. Disponível em: https://repositorio.ufpb.br/jspui/handle/123456789/31509. Acesso em 08 jul. 2024.

MALIK, Hasmat et al. Applications of artificial intelligence techniques in engineering. Sigma, v. 1, 2018. Disponível em: https://link.springer.com/content/pdf/10.1007/978-981-13-1819-1.pdf. Acesso em 08 jul. 2024.

MARTINS, A. G. Manual para elaboração de monografias e dissertações. 3ª ed. São Paulo: Atlas, 2010.

MISAKI, Lenita Takeda; CRUZ, Caio Gustavo Rodrigues; SILVA, Rodrigo Rocha. Aprimorando a qualidade de software: explorando requeriments smells com inteligência artificial generativa: uma investigação empírica.South American Development Society Journal, v. 10, n. 28, p. 20, 2024. Disponível em: http://www.sadsj.org/index.php/revista/article/view/692. Acesso em: 5 de jul. de 2024.

NASHID, Noor; SINTAHA, Mifta; MESBAH, Ali. Retrieval-based prompt selection for code-related few-shot learning. In: 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE). IEEE, 2023. p. 2450-2462. Disponível em: https://ieeexplore.ieee.org/abstract/document/10172590/Acesso em 10 ago. 2024.

PINHO, Rodrigo Finger de Carvalho. Inteligência artificial no processo de diagnóstico: utilização de software para comparação de imagens e perspectivas futuras. 2022. Tese de Doutorado. Universidade de São Paulo. Disponível em: . Acesso em: 03 ago. 2024.

PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software-9. McGraw Hill Brasil, 3ª Edição. 2021.

SILVA, Lidiane C., et al. Qualidade de Software para Engenheiros de IA: Um Estudo Inicial da Realidade Brasileira. In: Workshop Brasileiro de Engenharia de Software Inteligente (ISE), 2023, Campo Grande/MS. Anais do III Workshop Brasileiro de Engenharia de Software Inteligente. Porto Alegre: Sociedade Brasileira de Computação, 2023, p. 19-24. Disponível em: https://sol.sbc.org.br/index.php/ise/article/view/26118/25941.Acesso em 28 jul. 2024.

SOUZA, Fernanda Pereira dos Santos. TOMAZELA, Maria das Graças. Happypath: uma proposta de automação de testes utilizando inteligência artificial. 17th International Conference on Information Systems and Technology Management – Universidade de São Paulo/SP, 9 a 11 de Setembro de 2020.Disponível em: https://contecsi.submissao.com.br/arquivos/6520.pdf. Acesso em: 28 ago. 2024.

SUCENA, Marcelo Prado; CURY, Marcus Vinicius Quintella. Inteligência Artificial Aplicada para Avaliação da Percepção da Qualidade da Logística do E-Commerce: O Caso do Rio de

Janeiro. BBR. Brazilian Business Review, v. 21, p. e20211177, 2024. Disponível em:https://www.scielo.br/j/bbr/a/sVRWjLTjW83SDC5TVQX9tvp/?lang=pt. Acesso em: 04 mai. 2024.

SYLLABUS. Brazilian Software Testing Qualifications Board. Tradução realizada pelo GT Traduções do BSTQB do syllabus do ISTQB, 2023. https://bcr.bstqb.org.br/docs/syllabus_ctfl_4.0br.pdf. Acesso em: 29 mai. 2024.

TAO, Chuanqi; GAO, Jerry; WANG, Tiexin. Testing and quality validation for ai software–perspectives, issues, and practices. IEEE Access, v. 7, p. 120164-120175, 2019.Disponível em: https://ieeexplore.ieee.org/abstract/document/8811507/. Acesso em: 20 ago. 2024.

WAZLAWICK, Raul. Engenharia de software: conceitos e práticas. Elsevier Editora Ltda., 1ª Edição.2019.


[1] Discente do Curso Superior de Sistemas de Informação da Universidade Estadual do Tocantins Campus Palmas. e-mail: georgedaniel@unitins.br.

[2] Docente do Curso Superior de Sistemas de Informação da Universidade Estadual do Tocantins Campus Palmas. Especialista em Engenharia de Software. e-mail: sosthenes.ol@unitins.br.