what is thread testing software testing
Este tutorial explica o que é Thread Testing, quando e como realizá-lo, tipos de teste baseado em thread e desafios enfrentados:
O teste de thread é uma técnica de teste de software usada para testar os aplicativos que são baseados no servidor cliente.
O teste baseado em thread deve ser executado nos estágios iniciais do teste de integração para que as funções principais possam ser testadas / verificadas para uma tarefa / programa ou thread específico.
O que você aprenderá:
- Por que testar thread
- Quando e como o teste de thread é realizado
- Tipos de teste baseado em thread
- Diferença entre thread e processos
- Diferença entre teste baseado em thread e baseado em usuário
- Conclusão
Por que testar thread
Quando os componentes são integrados, é necessário verificar se o sistema funcionará conforme o esperado ou não e todas as transações ocorrerão conforme a exigência ou não. Assim, o teste baseado em thread vem para testar o mesmo.
Esse teste é feito integrando os threads progressivamente em todos os níveis, começando do subsistema até o sistema completo, ou seja, todo o sistema. Todas as atividades do sistema avançam apenas com os threads.
A definição de thread ajuda a compartilhar o histórico funcional e os detalhes de execução de thread entre os desenvolvedores e os desenvolvedores para os testadores.
Sobre Tópicos
Um thread é o fluxo de controle em um processo. É a menor tarefa do sistema que pode ser executada.
dfs e bfs c ++
Exemplo
Um navegador da web pode ter um ou mais threads executando viz. um thread para exibir imagens e texto e outro thread para recuperar dados. Em certos casos, um único aplicativo deve ser exigido para atender a todos os processos.
Criar multi-threads é a melhor solução para o mesmo, caso contrário, várias solicitações serão enviadas ao servidor pelo cliente e levará tempo para reconhecer as solicitações uma por uma. Multi-thread ajudará a responder às solicitações simultaneamente.
Quando e como o teste de thread é realizado
Deve ser feito no estágio inicial do teste de integração do sistema.
O teste de integração é realizado integrando diferentes módulos de forma planejada. O plano de integração é seguido pelo mesmo que especifica a ordem em que os módulos serão integrados para fazer o sistema completo.
Listadas abaixo estão as técnicas para executar o teste de integração:
- Abordagem Big-Bang
- Abordagem de cima para baixo
- Abordagem de baixo para cima
- Abordagem mista
Vamos ver cada técnica em detalhes.
# 1) Abordagem Big-Bang
A abordagem big bang é usada apenas para sistemas pequenos, pois todos os módulos são integrados e testados de uma só vez.
Qualquer problema encontrado durante esta abordagem é difícil de localizar, pois o problema pode ser de qualquer um dos módulos integrados. Portanto, os problemas de depuração encontrados são muito caros para corrigir nesta abordagem.
# 2) Abordagem de cima para baixo
A abordagem de cima para baixo é feita usando os stubs, ou seja, uma vez que o módulo de nível superior foi testado, as sub-rotinas imediatas são integradas e testadas.
Stubs são programas que simulam o efeito de rotinas de nível inferior e são chamados pelas rotinas em teste. O teste de thread usa uma abordagem de cima para baixo.
# 3) Abordagem de baixo para cima
Na abordagem ascendente, todos os subsistemas são testados individualmente e, em seguida, o sistema completo é testado. A razão para testar todos os subsistemas separadamente é testar a interface entre todos os módulos que fazem parte do subsistema.
Essa técnica requer drivers de teste, ou seja, o programa que chama os outros módulos e fornece a mesma saída do produto real.
# 4) Teste de integração mista
Esta técnica é uma combinação das abordagens de cima para baixo e de baixo para cima. Por isso é chamado de Teste de Integração Misto.
Pontos principais para realizar testes baseados em threads
- Durante a execução de testes de thread, threads ou pequenas funcionalidades são integrados e testados. O teste feito é um teste incremental em um nível de subsistema e, em seguida, como um sistema completo.
- No próprio estágio inicial, os testadores de integração têm uma boa ideia e conhecimento sobre o que testar posteriormente.
- Os testadores de integração devem aplicar e executar cenários positivos e negativos apenas dentro dos limites do thread. Eles precisam decidir sobre uma abordagem de teste de thread a ser seguida para cobrir casos excepcionais e também casos limite.
- A definição de encadeamento fornecida pelo desenvolvedor ao testador ajuda a testar o encadeamento de acordo com os testadores integradores. Qualquer informação adicional exigida pelo testador pode ser respondida no processo de revisão do thread.
- Os processos de thread funcionam para processos de integração e não para processos de desenvolvimento de ponta a ponta.
- Para testar a funcionalidade multithread, deixe que as várias instâncias do aplicativo ou programa a ser testado estejam ativas ao mesmo tempo.
- Execute o programa multi-thread em hardware diferente.
- O teste de thread é uma forma de teste de sessão para a qual as sessões são formadas por threads. Não é necessário que um segmento formado seja uma sessão.
Tipos de teste baseado em thread
Dois tipos de teste baseado em thread são realizados:
- Teste de thread único
- Teste Multi-Thread
# 1) Teste de thread único
O teste de thread único testa uma transação por vez. O tempo de espera para o cliente obter uma resposta à sua solicitação pode ser um pouco mais longo, pois ele poderá atender ou responder a um cliente por vez.
Esse teste ajuda o testador a entender e testar a lógica do programa ou código escrito.
# 2) Teste Multi-Thread
O teste multi-thread testa várias transações ativas ao mesmo tempo. Nesse caso, threads separados são criados para as solicitações do cliente. Sempre que uma solicitação é feita, um thread é criado para o serviço ou responde à solicitação.
Uma transação que estava funcionando bem no teste de thread único pode falhar durante o teste em multi-thread e também pode interferir com outros threads e funcionalidades e impedi-los de funcionar conforme o esperado.
É uma abordagem multithread melhor do que uma abordagem de thread único?
Aplicativos multithread são melhores do que single-threaded, pois melhoram o desempenho do aplicativo. O multi-threading permite que vários recursos trabalhem em uma questão / solicitação ao mesmo tempo.
Desafios ao fazer testes baseados em threads
Ao realizar o teste baseado em thread, o testador enfrenta vários desafios que afetam o desempenho, o tempo e o custo do teste.
- Escrever casos de teste de unidade para código multithread é desafiador.
- Quando o teste multi-thread está sendo feito em hardware diferente, ele varia em tamanho, capacidade de armazenamento, memória, problemas, etc.
- Os cenários de teste para thread único e vários threads são diferentes.
- No teste de thread múltiplo, testes reproduzíveis para testes de unidade devem ser programados.
Vantagens / desvantagens do Multi-Threading
O multi-threading tem muitas vantagens e desvantagens. Como um testador, saber o mesmo os ajuda a testar e interromper o processo de teste de acordo.
Vantagens
- Multi-threading aumenta a capacidade de resposta ao usuário. O aplicativo pode permitir que o programa seja executado mesmo se parte do aplicativo for bloqueado.
- O compartilhamento de recursos é outra vantagem, pois os threads compartilham os recursos do processo ao qual estão relacionados ou ao qual pertencem.
- Criar threads é econômico, pois compartilha os recursos aos quais pertencem.
Desvantagens
- Processo de teste complexo
- Os resultados são muito imprevisíveis.
- Escrever um programa se torna mais difícil.
- Ocorrência de deadlock.
O que é impasse
Quando o multi-threading é feito, o thread entra em um estado de espera se o recurso não estiver disponível.
O estado de espera pode não ser alterado para o encadeamento, pois o recurso solicitado é mantido por outros encadeamentos em espera. Quando tal situação surge, isso é chamado de Deadlock.
Diferença entre thread e processos
Vamos entender as diferenças entre Thread e Processes:
S.No | Fio | Processar |
---|---|---|
7 | Os tópicos não podem ser divididos mais. | Os processos podem ter vários threads. |
1 | Thread é um processo leve. | O processo é um processo pesado. |
dois | Se o encadeamento do servidor for bloqueado, um segundo encadeamento da mesma tarefa pode ser executado e concluir o processo. | Se o processo do servidor for bloqueado, outros processos não poderão ser executados até que o processo do servidor bloqueado seja desbloqueado. |
3 | Threads não isolam, eles compartilham memória. | O processo é isolado. |
4 | A criação de threads, troca de contexto e terminação levam menos tempo na thread. | A criação de threads, troca de contexto e terminação levam mais tempo nos processos. |
5 | Thread se refere à tarefa específica de um processo. | Processo refere-se à execução de qualquer programa. |
6 | Os recursos utilizados são muito poucos no segmento. | Os recursos utilizados nos processos são mais. |
Diferença entre teste baseado em thread e baseado em usuário
S.No. | Teste baseado em thread | Teste baseado em uso |
---|---|---|
1 | Os fios são integrados e testados individualmente. | O teste começa com classes que não são dependentes umas das outras, ou seja, são independentes. |
dois | O teste de regressão é executado para garantir que nada seja afetado. | Depois que o teste de classes independentes é feito, as classes dependentes são testadas. Dependentes são aqueles que dependem das classes independentes. Esta série continua até o momento em que o sistema completo é construído. |
3 | O teste baseado em thread integra as classes que são essenciais para reconhecer a entrada ou evento do sistema. | O teste de base de uso integra as classes que são essenciais para responder ou reconhecer o caso de uso. |
perguntas frequentes
P # 1) O que é Thread Testing?
Responda: O teste baseado em thread é uma metodologia executada durante a fase inicial de teste de integração. Threads ou programas são integrados e testados de forma incremental em um subsistema e depois como um sistema completo.
P # 2) Qual teste é feito primeiro?
Responda : Normalmente, o teste ascendente é feito primeiro e, em seguida, o teste descendente é executado.
P # 3) O que é teste de cima para baixo?
consultas sql praticam perguntas com respostas
Responda: Top-down é uma técnica de teste de integração onde o teste é feito usando stubs, ou seja, quando os componentes de nível inferior ainda não estão prontos para testar a integração, stubs (módulos temporários) são criados para obter a mesma saída que no caso dos módulos reais.
Conclusão
O teste de integração baseado em thread desempenha um papel importante no teste das principais funcionalidades ou da tarefa ou thread específica. Esta metodologia é melhor para arquitetura baseada em servidor cliente.
Ao realizar o teste de thread, o testador enfrenta muitos desafios, mas também apresenta muitas vantagens, o que o torna fácil e confiável de realizar. Ele permite que os testadores testem todas as transações e verifiquem se estão funcionando conforme o esperado e de acordo com o requisito.
É impossível testar todas as transações / eventos para completar o teste de thread, por isso ele é dividido em tipos de thread único e multi-thread.
Leitura recomendada
- Escolhendo o teste de software como sua carreira
- Algumas perguntas interessantes da entrevista de teste de software
- O teste de software é uma tarefa emocional?
- Java sincronizado: o que é sincronização de thread em Java
- Threads Java com métodos e ciclo de vida
- Multithreading em C ++ com exemplos
- Multithreading em Java - Tutorial com exemplos
- Thread.Sleep () - Método Thread Sleep () em Java com exemplos