what is sdet know difference between tester
Este tutorial discute todos os aspectos de um SDET (Engenheiro de desenvolvimento de software em teste), incluindo qualificação, funções e responsabilidades, salário e plano de carreira:
Discutiremos o papel SDET em profundidade, as expectativas e responsabilidades deste papel que as empresas esperam, o conjunto de habilidades que um SDET deve possuir, ferramentas e tecnologias que o candidato deve ter em mãos e também os salários em geral oferecido.
O que você aprenderá:
Compreendendo a função SDET
A forma expandida de SDET é - Engenheiro de desenvolvimento de software em teste
Em palavras muito simples, essa função é uma combinação de um intermediário entre uma função pura de desenvolvedor e uma função pura de testador. Os SDETs são profissionais qualificados tanto em Engenharia de Qualidade quanto em Desenvolvimento de Software.
O termo SDET foi inventado pela Microsoft, que foi seguido e usado pela maioria dos grandes nomes de produtos como Google, Amazon, Adobe, Expedia, etc. As principais expectativas das funções eram substituir tarefas manuais repetitivas por alguma automação para aumentar a eficiência, bem como confiabilidade para as aplicações em teste.
Comparação entre SDET e QA manual
Os testadores de controle de qualidade manuais concentram-se principalmente na caixa preta ou no teste de aplicativos. O que isso significa é, para um testador de controle de qualidade, o que importa é uma especificação de como um aplicativo deve se comportar quando recebe uma determinada entrada.
como executar arquivos .jar
O testador de controle de qualidade usaria apenas o aplicativo / sistema em teste como qualquer usuário / cliente normal usaria, mas com foco em detalhes mais minuciosos, bem como em cenários avançados, tentando diferentes combinações de entrada, etc.
O SDET concentra-se na aplicação de testes de caixa branca e caixa preta. Em outras palavras, eles também estariam cientes do funcionamento interno do aplicativo, o que lhes permite escrever testes de automação usando técnicas de teste de caixa branca ou caixa preta.
Em essência, um Engenheiro de Desenvolvimento de Software em Teste deve estar ciente de todas as técnicas de teste Black Box junto com o desenvolvimento prático / conhecimento de codificação para entender o funcionamento interno do aplicativo, o que garante melhores padrões de qualidade, bem como um produto de software com menos defeitos.
Essencialmente, um SDET deve atuar como um facilitador para um controle de qualidade eficaz por qualquer meio. O que isso também significa que o indivíduo usaria suas habilidades para garantir que todas as partes do software em teste sejam validadas da melhor maneira possível, o que deve incluir o teste de áreas funcionais e não funcionais.
Vamos ver SDET e comparação do testador manual em diferentes parâmetros
Parâmetro | SDET | Testador Manual |
---|---|---|
Escopo de Teste | Concentra-se em uma ampla variedade de técnicas e tipos de teste. Exemplo: Funcional, não funcional, segurança, desempenho etc. | Geralmente, concentre-se na perspectiva da funcionalidade do aplicativo em teste. Um testador manual se comporta como um usuário / cliente do aplicativo em teste e o valida dessa perspectiva. |
Automação | Os SDETs se concentram principalmente na automação de cenários repetitivos para garantir que os testadores manuais possam se concentrar em cenários mais complexos e avançados e usar sua largura de banda e habilidades com mais eficiência. | Os testadores manuais possuem algumas ou nenhuma habilidade para automação. No entanto, é necessário que os testadores manuais estejam cientes do uso de ferramentas que auxiliam no teste manual Exemplo: Usando o Postman para executar endpoints de API, usando provedores de nuvem como laboratórios de molho para executar testes em diferentes versões de plataforma, etc. |
Conjunto de habilidades primárias | Os SDETs são os principais responsáveis por automatizar casos de teste, bem como escrever scripts / ferramentas reutilizáveis que ajudam a equipe a reduzir esforços repetitivos. Um membro sênior da equipe SDET também é responsável por criar estruturas de automação e permitir que outros SDETs escrevam testes usando a estrutura. | Os testadores manuais se concentram principalmente na funcionalidade do aplicativo, em cenários de casos extremos e em casos de teste complexos. Por exemplo: Um testador manual que testa um aplicativo móvel, além de todos os cenários funcionais, pensaria em cenários como - E se eu fechar o aplicativo quando houver uma operação de back-end / chamada de rede em andamento. - O que acontece se o celular for desligado repentinamente quando o cliente estiver em uma página específica do aplicativo. - O que acontece se a Internet desligar no meio do upload de um documento em um aplicativo, etc. |
Salários | Os SDETs geralmente recebem salários mais altos (~ 40-50% mais altos do que os testadores manuais), devido às habilidades que possuem e à experiência que possuem. | Funções puras de teste manual geram um salário mais baixo em comparação a uma função híbrida, em que um testador manual também se esforça para aprender novas ferramentas e agregar valor ao produto que está sendo entregue. |
Engenheiro de desenvolvimento de software em Skillset de teste
Listados abaixo estão os conjuntos de habilidades que um SDET deve possuir:
# 1) Mentalidade aberta
O primeiro e mais importante conjunto de habilidades é que qualquer Engenheiro de Desenvolvimento de Software em Teste deve estar aberto para aprender qualquer linguagem / ferramentas de script que sejam necessárias para permitir um teste completo do aplicativo em teste.
É muito provável que, como SDET em uma empresa, você possa acabar trabalhando usando a pilha de tecnologia Microsoft / .NET, mas em outra empresa, a linguagem de desenvolvimento é principalmente Java - portanto, espera-se que o SDET tenha uma mentalidade aberta para aprender novas coisas / tecnologias conforme e quando necessário.
# 2) Adaptável
Um Engenheiro de Desenvolvimento de Software em Teste deve se adaptar às necessidades do projeto, ferramentas e tecnologias, bancos de dados, etc. Por exemplo - como um SDET, você pode ter experiência em fazer testes de API, mas outra função requer que você teste a interface do usuário ou front-end. Portanto, a função exige que você se adapte às necessidades do projeto, para entregar um produto padrão de alta qualidade.
# 3) Multitarefa
Na maioria das empresas de produtos, muitas vezes a relação DEV e QA fica distorcida em grande medida. Isso significa que é comum ver equipes com uma proporção DEV: QA de 4: 1 ou mesmo 5: 1. Portanto, é imperativo que se espere que um SDET esteja envolvido em várias coisas e entregue.
Estas são algumas das responsabilidades que se espera que um SDET trabalhe:
- Participar de reuniões com as partes interessadas: Um SDET deve manter contato próximo com os desenvolvedores e também com o pessoal do produto para entender o produto tanto dos desenvolvedores quanto do ponto de vista do produto e, em seguida, planejar / sugerir uma estratégia de automação.
- Criar framework / ferramentas
- Estratégias de planejamento de teste
- Levantar / investigar defeitos
- Às vezes, pode ser necessário contribuir para o teste de unidade junto com os desenvolvedores.
# 4) Mentalidade Exploratória
Cada SDET deve se lembrar dessas linhas o tempo todo - “ Se você está repetindo as mesmas ações o tempo todo, considere automatizar '
A pessoa deve ter uma mentalidade de reduzir o esforço para qualquer coisa que apareça em seu caminho com a ajuda de ferramentas para aumentar a produtividade, bem como para garantir produtos de software de alta qualidade.
Além de todo o trabalho de automação, o trabalho principal da SDET é entregar produtos de alta qualidade com o que for preciso, portanto, ele / ela também precisaria se concentrar em testar produtos por meio de maneiras exploratórias para descobrir mais e mais bugs e defeitos ocultos.
Nº 5) Colabore, contribua e comunique-se
O papel do SDET exige a ligação entre diferentes partes interessadas, como desenvolvedores, produtos, testadores manuais, etc.
É importante que os SDETs colaborem com todas as partes interessadas necessárias, bem como comuniquem todos os detalhes necessários como e quando apropriado.
Os SDETs e a equipe de QA detêm os portões de qualidade de um produto antes que ele seja aberto ao público e, portanto, desempenham um papel importante em termos de considerar um produto adequado para ser lançado aos clientes ou não.
Papéis e responsabilidades
Então, vamos tentar entender quais são as tarefas e responsabilidades do dia a dia dos SDETs e as diferentes tarefas que se espera que façam.
- Trabalhe junto com os desenvolvedores e também com as partes interessadas do negócio e se esforce para automatizar os critérios de aceitação. Isso significa em palavras simples é - um SDET primeiro entende os requisitos da perspectiva de aceitação / cliente e também tem que entender a forma como o produto é desenvolvido em termos de linguagem de codificação, bancos de dados, etc, e então planeja uma estratégia para automatizar o máximo de cenários possível .
- Responsável por criar soluções de automação de teste robustas e de alta qualidade para testes funcionais, de regressão e de desempenho.
- Crie scripts / ferramentas reutilizáveis sempre que necessário.
- Contribua com as áreas funcionais e não funcionais de teste. O teste funcional inclui o teste da perspectiva da funcionalidade / requisitos e é amplamente orientado por critérios de aceitação ou histórias de usuário.
No entanto, o teste não funcional também é igualmente importante. Por exemplo, qual o desempenho do aplicativo, se o aplicativo é seguro o suficiente, certifique-se de que não haja mais hacks no aplicativo que possam prejudicar a segurança do aplicativo e causar uma grande perda para os clientes e para a organização. - Eles também participam das discussões sobre design e arquitetura, além de fornecer feedback eficaz nas revisões de código.
Torne-se um ótimo SDET
Para se tornar um ótimo SDET, vamos ver algumas dicas / ferramentas básicas e habilidades técnicas que devem ser aprendidas para melhor desempenho em suas funções.
Na seção anterior, aprendemos sobre as qualidades que um Engenheiro de Desenvolvimento de Software em Teste deve possuir para se tornar excelente em suas funções. Eles devem ter uma mentalidade aberta, ser adaptáveis e ser capazes de se comunicar, colaborar e contribuir da maneira que for determinada pelo produto ou equipe.
Vamos ver uma lista de algumas ferramentas e tecnologias comuns que os SDETs devem aprender:
- Deve ter um conhecimento sólido dos princípios de teste, tipos de teste e metodologias.
- Altamente proficiente em problemas de depuração - aprenda ferramentas de depuração como - Chrome Web Debugger que são extremamente úteis para depurar aplicativos da web, bem como investigar logs de rede para um aplicativo em teste.
- Eles devem ser capazes de escrever códigos / scripts reutilizáveis e, portanto, devem ser proficientes em pelo menos uma linguagem de script. O mais fácil de aprender é Python, que pode ser aplicado a uma ampla variedade de tarefas, estruturas de automação, etc.
- Familiarize-se com clientes de teste de API, como CARTEIRO
- Deve estar ciente das ferramentas e técnicas de teste de caixa branca - como frameworks de simulação ( Mockito ), etc, já que se espera que eles também contribuam com a escrita de testes de unidade, quando necessário.
- Eles devem estar cientes das ferramentas de controle de versão, como Vai . Além disso, eles devem estar familiarizados com os conceitos de Solicitações de pull , revisões de código, etc.
- Compreensão da arquitetura de aplicações web e modelo geral cliente-servidor.
- Deve estar ciente dos conceitos básicos de Programação Orientada a Objetos e compreensão de SÓLIDO modelo ( S Responsabilidade total, OU caneta / Princípio Fechado, eu Substituição de iskov, Eu segregação de interface, D Inversão de dependência)
- Compreensão básica de Integração contínua / Entrega Contínua conceitos (CI / CD) e também deve estar ciente de ferramentas de CI como Jenkins / Bamboo, etc.
Geralmente, espera-se que os SDETs cuidem dos problemas de implantação e, portanto, é fundamental compreender essas ferramentas. - Eles devem estar familiarizados com pelo menos uma estrutura de automação de front-end. O mais fácil e o mais usado em Selênio . É o Santo Graal do teste de front end para aplicativos da web e quase todas as organizações usam a estrutura Selenium para automatizar testes de IU.
- Aprender os conceitos básicos de teste de desempenho, bem como escrever scripts simples usando ferramentas de teste de desempenho de código aberto como JMeter é muito útil e você pode se referir a isso Tutorial Jmeter . Isso é útil porque os SDETs também devem cuidar de requisitos não funcionais, como testes de desempenho.
- Eles também devem estar cientes dos conceitos fundamentais dos testes de segurança. Isso também inclui ter conhecimento dos padrões básicos de codificação, o que garante que não haja falhas de segurança básicas deixadas sem solução no aplicativo. OWASP é uma ótima referência para todos esses conceitos fundamentais.
- Espera-se que os SDETs conheçam, entendam e implementem metodologias de desenvolvimento ágil e estejam confortáveis para trabalhar com equipes que usam a metodologia ágil Sprint / Scrum.
- Deve estar ciente de qualquer plataforma de tecnologia em nuvem como - Amazon AWS , Google GCP , ou Microsoft Azure .
Como a maioria das empresas agora está mudando para uma infraestrutura baseada em nuvem, ter um conhecimento básico de ferramentas e tecnologias de nuvem geralmente é útil para começar.
Certificação para SDETs
Em geral, não há certificações específicas disponíveis para SDETs
Se alguém quiser iniciar sua jornada de Engenheiro de Desenvolvimento de Software na jornada de teste, pode apenas se concentrar nos pontos mencionados na seção 'Como se tornar um ótimo SDET' deste tutorial e, em seguida, os SDETs com sua mentalidade aberta devem continuar sua jornada de aprendizagem no trabalho.
Para testar a terminologia e noções básicas, é bom ter todos que estão na profissão de teste de software para serem certificados com o Certificado de teste ISTQB Foundation .
Esta certificação cobre todos os conceitos básicos de teste de software como,
- Tipos de teste - funcional / não funcional
- Teste de caixa preta / caixa branca / caixa cinza
- Planejamento de teste / gerenciamento de defeitos
- Técnicas de teste - particionamento de equivalência, matriz de rastreabilidade, etc.
Existem também outras certificações internacionais de teste de software disponíveis, mas a maioria delas não são critérios de seleção muito importantes para as empresas contratarem SDETs.
Uma lista de todas essas certificações está disponível aqui.
Entrevistas
Com a maioria das grandes empresas de produtos, o engenheiro de desenvolvimento de software em entrevista de teste é muito mais comparado àqueles com entrevistas de desenvolvedor, pois se espera que eles saibam a maior parte do desenvolvimento de metodologias e conceitos relacionados.
No entanto, as entrevistas são um pouco tolerantes em comparação com os desenvolvedores. O que é enfatizado aqui é como o candidato aborda um problema e quão ampla uma pessoa pode pensar sobre o problema.
Em geral, as entrevistas SDET consistem em seguintes rodadas / tipos de perguntas em quase todas as grandes organizações de produtos como - Amazon, Microsoft, Adobe, Expedia, etc.
- Rodada escrita: Escrever casos de teste para um determinado produto. Aqui, a intenção é ter uma ideia de como a pessoa pode pensar em todas as facetas do teste sobre o candidato, como se ele pensa / lista todos os cenários funcionais, cenários de casos extremos, é o candidato com foco em testes de segurança, testes de desempenho, etc.
- Rodada de codificação: Um pequeno exercício de codificação é fornecido e também se espera que o candidato anote todos os cenários de teste de unidade e de teste funcional. Aqui, a área ou habilidade que está sendo testada é - conhecimento / construções básicas de codificação, escrita de código testável e conhecimento sobre técnicas de teste de caixa branca como teste de unidade, simulação, etc.
- Rodada de Design: Uma questão de design de sistema é lançada, exemplo , como você projetaria o youtube
Esse tipo de pergunta geralmente é mais relevante para desenvolvedores, mas para SDETs, o entrevistador está procurando saber quão amplamente a pessoa pode pensar, se o candidato sabe sobre os conceitos de OOPs, se o candidato é capaz de pensar sobre escalabilidade, robustez, balanceamento de carga, etc. , o candidato pode usar bancos de dados corretos para o aplicativo que será projetado - Rodada de RH / Gerente: Aqui, coisas como aptidão da equipe, aptidão cultural, etc. são observadas sobre o candidato, bem como discussões salariais e negociações também são feitas.
Leitura Recomendada => Perguntas da entrevista SDET
como criar um arquivo xml testng no eclipse
Salário SDET
Conforme discutimos em nossas seções anteriores, SDETs geram salários mais altos do que a maioria das funções de teste manual. Em muitos casos, os salários são comparáveis aos de desenvolvedores com um nível de experiência semelhante.
Você pode se referir aqui para saber mais sobre a gama de salários em diferentes perfis SDET em diferentes organizações. Em geral, o salário SDET difere por faixa de experiência, bem como pela organização.
Abaixo está uma comparação dos salários SDET para empresas importantes, como Microsoft, Expedia.
Nível | Microsoft ($) | Expedia ($) |
---|---|---|
SDET - I | 65.000 - 80000 | 60000 - 70000 |
SDET - II | 75.000 - 11.000 | 70000 - 100000 |
Sr. SDET | 100.000 - 150.000 | 90000 - 130.000 |
Plano de carreira
Em geral, a escada de carreira SDET começa e cresce da seguinte maneira:
- SDET-1 - SDET de nível júnior capaz de escrever scripts de automação.
- SDET-2 - SDET experiente, capaz de escrever ferramentas reutilizáveis e estruturas de automação.
- Sr. SDET - SDET de nível sênior capaz de ser um contribuidor individual como SDET 1 e SDET 2, mas também é capaz de
- Conduzindo revisões de código.
- Participe das discussões de design e faça sugestões para mudanças apropriadas no design.
- Participe da estratégia geral de teste do produto.
- Participar de modelos de entrega de CI / CD, criar pipelines de execução, etc.
- SDET Manager - Depois de SDET2, você pode escolher o Caminho Sr SDET ou SDET Manager. Um gerente SDET tem responsabilidades de gestão / liderança, além do trabalho SDET central.
- Arquiteto de teste / engenheiro de soluções - Arquiteto de teste ou engenheiro de soluções é alguém que principalmente projeta / arquiteta uma estrutura geral para vários projetos, especificações de teste de estruturas, também pode atuar como um gerente de entrega. Essas pessoas são indivíduos goto e ajudam vários projetos a atingir os resultados de seus testes e enviar um produto amplamente testado e sem defeitos.
Aqui está uma representação em nível de bloco do Plano de Carreira SDET:
Conclusão
Neste tutorial, aprendemos profundamente sobre o que é um SDET em termos de funções e responsabilidades, habilidades essenciais, qual é a diferença entre SDETs e testadores manuais e o que é necessário para se tornar um grande Engenheiro de Desenvolvimento de Software em Teste.
Em geral, SDET é uma função que está em alta demanda e quase todas as empresas de bons produtos têm essa função em suas equipes e são altamente valorizadas.
Leitura recomendada
- Perguntas e respostas da entrevista SDET (guia completo)
- 10 MELHORES empresas e serviços de desenvolvimento de software personalizado em 2021
- 20 MELHORES ferramentas de desenvolvimento de software (classificações de 2021)
- Medidas para SSDLC (ciclo de vida de desenvolvimento de software seguro)
- SDLC (ciclo de vida de desenvolvimento de software) Fases, metodologias, processos e modelos
- Desenvolvimento de software e metodologias de teste (com prós e contras)
- 5 coisas que um desenvolvedor iniciante (e testador) deve saber sobre teste de software
- 5 maneiras de ser um testador de software ousado e confiante