minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
se você é umengenheiro de testes de software , o que você enfrenta todos os dias são aqueles bugs “complicados”, são como inimigos escondidos no escuro, saltando de vez em quando para te dar uma “surpresa”. Então, como você pode analisar e lidar com esses bugs de maneira eficaz e tornar seu trabalho de teste eficiente e interessante? Hoje falaremos sobre esse assunto.
Vejamos primeiro um caso clássico.Xiao Li é um experienteEngenheiro de testes , ele foi recentemente responsável por testar um sistema financeiro. Durante um teste, Xiao Li descobriu um bug grave: ocorria um erro no valor quando o usuário realizava uma operação de transferência. Se esse bug fosse colocado em um ambiente de produção, as consequências seriam desastrosas.
Assim, Xiao Li iniciou sua “jornada de detetive”. Ele começou com a causa raiz e analisou vários fatores que podem ter causado o bug. Após alguma investigação, Xiao Li descobriu que o problema estava na análise incompleta da demanda e em problemas de código do programa. Algumas condições de contorno não são especificadas no documento de requisitos, causando erros no programa ao lidar com cenários especiais.
Nesse caso, Xiao Li não só precisa corrigir o bug, mas também melhorar a análise de requisitos e o processo de revisão de código para evitar que problemas semelhantes aconteçam novamente.
Vejamos outro caso. Xiao Wang é colega de Xiao Li e eles participaram conjuntamente dos testes de um projeto de comércio eletrônico. Xiao Wang descobriu um bug: a quantidade de estoque de alguns itens no carrinho de compras não podia ser exibida corretamente. Este bug parece simples, mas a razão por trás dele é complicada.
Após análise detalhada, Xiao Wang descobriu que os programadores consideravam apenas cenários normais ao codificar e ignoravam situações anormais. Por exemplo, quando a quantidade de estoque é zero, o programa não a trata adequadamente, resultando em um erro de exibição. Este bug lembra a Xiao Wang que ao escrever casos de teste, você não deve apenas cobrir cenários normais, mas também considerar várias situações anormais.
Para ajudar todos a entender melhor, Xiao Wang também escreveu especialmente um código de exemplo:
def check_inventory(item_id):
inventory = get_inventory(item_id)
if inventory > 0:
return f"库存数量:{inventory}"
else:
return "商品已售罄"
# 测试用例
assert check_inventory(101) == "库存数量:10"
assert check_inventory(102) == "商品已售罄"
Este código usa julgamento condicional simples para garantir que as informações possam ser exibidas corretamente mesmo quando o estoque é zero. Isto é o que Xiao Wang aprendeu através da análise de bugs.
Ao analisar bugs, também precisamos prestar atenção em qual estágio do processo de desenvolvimento eles foram descobertos. De modo geral, a fase de descoberta de bugs pode ser dividida em fase de análise de teste e fase de execução de teste.
A fase de análise de teste revisa principalmente os documentos de requisitos e descreve os documentos de design. Os bugs descobertos nesta fase geralmente estão relacionados a problemas de documentação e de revisão. A fase de execução do teste, incluindo testes de fumaça, testes funcionais, testes de regressão, etc., consiste em verificar de forma abrangente o software para garantir a operação normal de cada módulo funcional.
Por exemplo, Xiao Li e Xiao Wang descobriram muitos problemas de documentação nos estágios iniciais do projeto. Se esses problemas não forem resolvidos a tempo, é provável que causem mais bugs nos testes subsequentes. Portanto, eles controlam rigorosamente todas as etapas dos testes para garantir que toda a documentação e código sejam totalmente revisados.
Às vezes, a ocorrência de bugs está relacionada à complexidade e quantidade de modificações de um determinado sistema. Em um grande projeto envolvendo múltiplos sistemas, alguns sistemas podem se tornar “áreas de alta incidência” de bugs devido a modificações pesadas. Por exemplo, nos projetos de Xiao Li e Xiao Wang, o Sistema 2 e o Sistema 3 tiveram a maior quantidade de modificações, portanto também tiveram o maior número de bugs.
Ao calcular a densidade de defeitos de cada sistema (ou seja, o número de defeitos por mil linhas de código), eles descobriram que embora o Sistema 4 tivesse uma grande quantidade de modificações, o número de defeitos era relativamente pequeno. Isso indica que o Sistema 4 possui maior qualidade de código, enquanto o Sistema 2 e o Sistema 3 precisam de otimização adicional.
Finalmente, também precisamos prestar atenção ao problema das detecções perdidas nos testes. Não importa quão cuidadosos sejam os testadores, alguns bugs ainda podem “vazar” durante a fase de teste e entrar no ambiente de produção. Para reduzir esta situação, Xiao Li e Xiao Wang revisam regularmente o processo de teste, analisam quais links podem ter omissões e fazem melhorias oportunas.
Por exemplo, após o lançamento de um projeto, eles descobriram que alguns bugs apareceram no ambiente de produção, um terço dos quais foram causados por detecções perdidas durante o processo de teste. Alguns desses bugs se devem à cobertura insuficiente dos casos de teste e outros se devem a dados de teste de baixa qualidade.
Através de uma análise abrangente de bugs, podemos não apenas encontrar a causa raiz do problema, mas também obter inspiração para melhorias. Quer se trate de análise de requisitos, qualidade de código ou processo de teste, cada aspecto requer nossa atenção cuidadosa e otimização contínua. Somente desta forma a qualidade do software pode ser melhorada e a ocorrência de bugs reduzida.
Por fim, gostaria de agradecer a todos que leram meu artigo com atenção, olhando para o aumento de fãs e de atenção, sempre há alguma cortesia. Embora não seja algo muito valioso, se você puder usá-lo, poderá levá-lo diretamente.
Devemos estudar para encontrar um emprego bem remunerado. As perguntas da entrevista a seguir são dos materiais de entrevista mais recentes de empresas de Internet de primeira linha, como Alibaba, Tencent, Byte, etc., e alguns chefes da Byte deram respostas confiáveis. set Acredito que todos podem encontrar um emprego satisfatório com base nas informações da entrevista.