
Há uma opinião de que a maneira mais simples de TI é através de testes. Como, você não precisa saber de nada, para poder fazer isso ainda mais, é suficiente desejo e vontade de não estremecer muito a dor e as lágrimas quando receber outro conjunto de casos de teste para testes de regressão.
Em parte, isso é verdade, mas para a situação que estava no mercado há 10 anos. Agora tudo é um pouco diferente. Existem muitas razões para isso e são muito diferentes. Se você notar a chave, talvez isso:
Aumento dos requisitos para testadores, seus conhecimentos e qualificações, pois as tarefas estão sendo cada vez mais abordadas um pouco mais complicadas do que "clique e clique na produção". O trabalho dos testadores está se tornando cada vez mais "engenharia", requer conhecimentos técnicos, conhecimentos específicos, habilidades e competências. Os testadores estão se tornando cada vez mais engenheiros de controle de qualidade (quem está no assunto entende a diferença).
O aumento da oferta no mercado quando a multidão de “civis” de ontem entrou no abismo da TI, alimentada por uma abundância de informações: de conferências e livros a artigos e cursos sobre testes de software. Seu humilde servo, ao mesmo tempo, também ajudou a criar um par de cursos geralmente acessíveis, devido ao desejo de replicar coisas básicas de seu campo profissional (veja
aqui e
aqui ).
Portanto, hoje em dia é cada vez menos possível confiar apenas nas qualidades moral-volitivas para ingressar na TI à luz do aumento do apetite do mercado e da abundância de conferências, cursos, treinamentos, literatura, artigos e outras fontes de informação que estão ao alcance de especialistas iniciantes.
Obviamente, mais e mais empresas estão tentando formar especialistas sob sua asa, regando os sortudos com novos conhecimentos e habilidades, ao mesmo tempo em que aumentam a lealdade à empresa. No entanto, neste caso, as empresas e seus especialistas enfrentam questões graves e agudas ...
Como não se perder na variedade de informações que são preenchidas com a Internet e o mundo ao redor?
O que ensinar a si mesmo ou o que ensinar a seus lutadores?
No meu artigo, tentarei descrever em termos gerais o que você precisa saber e poder trabalhar como especialista no campo de garantia de qualidade nas áreas mais populares e procuradas. Vamos lá!
As seguintes especialidades compõem a participação predominante no mercado de oferta e demanda de testadores e, portanto, (e devido à falta de experiência de trabalho suficiente e relevante), o artigo, infelizmente, não terá seções sobre desempenho e especialização em desktop.
O material deste artigo é baseado em minha própria experiência de trabalho com os brilhantes especialistas de minhas equipes, nos resultados do ensino na Universidade Estadual de Moscou, no MSTU e em um curso on-line, além de centenas de entrevistas e dezenas de especialistas em controle de qualidade contratados de vários perfis. Na minha opinião, não pretendo ser excepcional, mas acredito que minha experiência permita que meu ponto de vista seja bastante competente.
Traços de caráter
Seria estranho acreditar que, com o aumento dos requisitos para os aspectos técnicos do trabalho dos testadores, a importância das qualidades pessoais diminuiu ou desapareceu por completo. Além disso, tenho certeza de que os traços de caráter estão no coração de um especialista de sucesso e são cruciais para conhecimentos e habilidades semelhantes. Afinal, não estamos trabalhando com interfaces humanas para Stack Overflow e Wikipedia, mas com pessoas vivas que permanecem no escritório e em casa. Portanto, é muito importante levar em consideração os traços de personalidade no contexto da próxima escolha da indústria, profissão e especialidade.
Por que eu penso assim? Tudo é muito simples! Posso facilmente enviar um especialista para cursos ou conferências, encomendar livros ou realizar treinamentos sobre as nuances de design de testes, linguagens de programação, SQL, redes e outros aspectos técnicos, para que, depois de algum tempo, obtenha os primeiros resultados e os multiplique, consolidando as informações recebidas na prática . No entanto, você não pode enviar para o curso "Como parar de correr atrás de pães de escritório e começar a investir em seu próprio conhecimento", "Como deixar de ser um mentiroso irresponsável e começar a viver honestamente", "Como deixar de ser um rato cinza e se tornar uma pessoa entusiasmada", "Como parar de odiar pessoas e aprenda a trabalhar em equipe ”e conte com um resultado tangível depois de ouvir. Infelizmente, essa é a verdade da vida, a discordância interna com a qual permite que um amplo estrato de "empresários da informação" ganhe dos rebeldes, ansiosos por mudar seus pilares e traços de caráter fundamentais em uma única sessão de treinamento ou série de seminários on-line. É por isso que é tão importante ter no início a motivação e as qualidades certas para trabalhar na TI e no controle de qualidade em particular. Então, o que é importante?
Motivação para aprender e auto-aprendizagem
Responda honestamente à sua pergunta: você gosta de estudar? Não apenas uma vez, mas de forma contínua. Você está pronto para o único salto que magicamente o levará "às mulheres" ou realmente deseja absorver novos conhecimentos a cada hora e a cada minuto? A TI é uma área em que não dá para piscar, e você já está à margem do setor. Você não deve esperar que, depois de ler um livro sobre testes em um ano, abrirá para si a porta de entrada para o maravilhoso mundo de novos conhecimentos que permitirá que você esteja na tendência por uma década à frente. Idealmente, se você nem sempre precisa de um mentor e um professor sábios para estudar, é capaz de se preparar para um novo livro, webinar ou curso por conta própria.
Responsabilidade
Classifique seu nível de responsabilidade. Uma maneira simples: para começar, considere alguns dos seus maiores erros na vida. Não dá certo? Não se trata de sua impecabilidade, lembre-se de que apenas quem não faz nada não está enganado. Lembrou? Se apenas algumas pequenas coisas, então este é um indicador triste. Pior, se você se lembrar dos erros do passado, imediatamente os culpou por outra pessoa ou por circunstâncias e não reconheceu sua responsabilidade pelo que aconteceu. Mas se você se lembrou de algumas falhas grandes em que era você quem deveria culpar, e até lembrou como elas foram consertadas, as coisas sob sua responsabilidade são muito melhores. Uma torre é quando você não apenas corrige um erro, mas também se segura dele no futuro, para que não ocorra novamente. Uma abordagem responsável do trabalho é a chave para uma carreira de sucesso em qualquer campo e, portanto, para o testador, esse é um recurso extremamente importante. O principal é não ir muito longe e conhecer a medida, porque a hiperresponsabilidade nem sempre é boa.
Paixão
Você é uma pessoa apaixonada? Honestamente, do que você gosta? Nada de especial? Ou são muitos pequenos hobbies que você faz uma vez por ano? Talvez algo grande, mas o tempo está constantemente acabando, mas porque um hobby está esperando por tempos melhores. Uma pessoa continua sendo uma pessoa no escritório e quando sai. E se uma pessoa é realmente apaixonada por algo na vida cotidiana, isso significa que ele pode se deixar levar por algo que fica à noite ou estuda o assunto no fim de semana por sua própria iniciativa. A tarefa de um líder competente e do próprio especialista é encontrar essas tarefas. Obviamente, é importante, ao mesmo tempo, levar o que foi iniciado à sua conclusão lógica e não deixá-lo na metade. Um testador não pode ser um "cracker". Mas se ele queimar com seu trabalho e produto, a eficácia desse funcionário será maior.
Flexibilidade de comportamento
Um recurso importante para trabalhar em empresas modernas de TI e no controle de qualidade em particular é a flexibilidade. Novos conhecimentos e tendências vêm à velocidade dos ventos de Júpiter, para ficar no estilo de Gandalf Gray "Você não vai passar!" enfrentar o setor é extremamente difícil e nem sempre aconselhável. Portanto, é muito importante poder se adaptar às novas condições de trabalho, seja a linha geral da empresa, novos produtos, equipe, metodologias ou ferramentas de trabalho. Quanto mais flexível o funcionário, mais chances ele tem de desenvolver carreira em TI.
Sociabilidade e contato
Sem dúvida, você pode ser um especialista de sucesso, sendo bastante introvertido, mas profundamente imerso em sua tarefa, no entanto, aprender algo novo e educar os outros têm maior probabilidade de ser sociável e de contato. Não é necessário que todos sejam um grande orador e falem publicamente em eventos, mas é importante encontrar uma linguagem comum com os colegas, expressar corretamente seus pensamentos verbalmente e por escrito. No trabalho do testador, esses são recursos muito importantes, porque você precisa se comunicar muito e com frequência, e quanto mais você fala sobre controle de qualidade, mais profundo e detalhado você fica em áreas relacionadas, onde a capacidade de criar comunicação é metade do sucesso.
Trabalho em equipe
O testador precisa ser um jogador da equipe. Não importa se você trabalha em um modelo de teste de serviço ou se os testadores estão integrados a cada equipe. É muito importante que você dê um “senso de ombro” à sua equipe, para que eles possam confiar em você e você. Um não é um guerreiro em campo - para os testadores, essa também é uma história sobre o crescimento da carreira. Afinal, é a equipe, como seu ambiente imediato, a principal fonte de conhecimento que você receberá sobre o produto, processos e tecnologias. Se você é um jogador de equipe, em testes, você obterá maior sucesso do que um solitário.
Iniciativa e determinação
Como você sabe, a água não flui sob uma pedra que está mentindo e, portanto, a inércia chegará a você de lado na profissão de testador. Um bom testador é proativo, não espera um chute dos colegas e da cabeça, mas vem com novas soluções e sugestões. Se uma vez foi dito ao testador "isso não é um bug, mas um recurso", ele não deve desistir. Em vez disso, tome a iniciativa e exponha seu ponto de vista. Obviamente, você não deve ir ao extremo e argumentar por qualquer motivo, mas não deve concordar com tudo o que eles dizem. A base do trabalho de um bom testador não é apenas o pensamento crítico, que testa o mundo à nossa volta em busca de força, mas também a capacidade de formar nossa própria posição no momento certo e defendê-la na frente dos outros.
Esta lista pode ser continuada e complementada. Identifiquei os principais recursos com base em minha própria experiência. Obviamente, não estamos falando sobre o fato de que, se você não possui essas qualidades, não é adequado. Mas é seguro dizer que quanto menos qualidades declaradas estiverem em você, mais difícil será para você, sua equipe e seu líder. Quaisquer exceções são permitidas, o que apenas confirma a regra.
Noções básicas de teste
O conhecimento e as habilidades a seguir são necessários para absolutamente qualquer testador, independentemente de sua especialização. Essas coisas são a base do básico, elas aprendem rápida e facilmente, especialmente se forem imediatamente corrigidas pela prática. Eu recomendo fortemente que todos os iniciantes, sem exceção, mergulhem nos tópicos indicados abaixo. Armado com esse conhecimento, você pode descobrir o mundo infinito de testes de software, eventualmente dominando qualquer uma das áreas, mas o conhecimento estabelecido na fundação sempre permanecerá em demanda.
Classificação dos tipos de teste
Mesmo um testador iniciante deve ter um entendimento básico dos diferentes tipos de teste, quando eles são usados e para quê. Essa é uma teoria seca, que por si só não é necessária, mas sem ela, “colocar em prática” a prática pode ser dolorosamente doloroso e longo, e ao longo do caminho você também inventará bicicletas, mas coletará um ancinho conhecido. Não seja preguiçoso, confira, o benefício de muitas fontes. Mas então você pode facilmente passar nas tarefas do nível "lápis de teste" nas entrevistas.
Localização de erros e relatório de erros
Encontre um pequeno erro. É extremamente importante localizar o erro da maneira correta, definindo o maior número possível de circunstâncias e condições para sua reprodução estável. Além disso, você precisa adquirir a habilidade de compilar relatórios de erros de alta qualidade. Nas minhas palestras e ao trabalhar com uma equipe, costumo usar a seguinte comparação: “Seu relatório de bug é bom se você saiu, pegou a primeira avó que veio na mão e ela conseguiu reproduzir o defeito de acordo com sua descrição ou verificar sua ausência” .
Técnicas de Design de Teste
Itens básicos, que geralmente são verificados de uma forma ou de outra em entrevistas ou trabalhos de casa, dando tarefas do nível "testar o formulário para digitar números" e "escrever autotestes em nosso formulário de autorização". É importante não apenas memorizar o que são “classes de equivalência” ou “análise de valores de contorno”, mas também poder usar várias técnicas em qualquer condição, combinando-as.
Sistemas de rastreamento de erros, conhecimento e gerenciamento de testes
Aqueles momentos em que os relatórios de bugs eram escritos em folhas e a documentação de teste, as listas de verificação e os casos de teste foram realizados nas docas do Google desapareceram no esquecimento (sim, sim, eu sei que alguns ainda escrevem e, às vezes, é até conveniente ) Esse samopal foi substituído por ferramentas profissionais - sistemas de rastreamento de bugs (os mais populares são Jira, Redmine), sistemas de gerenciamento de conhecimento (Confluence, Wiki etc.) e sistemas de gerenciamento de casos de teste (TestRail, Zephyr, TestLink etc.) ) Os princípios básicos do trabalho com ferramentas podem ser obtidos ajustando-se a programas de teste beta abertos ou instalando software por conta própria (existem soluções gratuitas e shareware na escala de sessões de apuração de fatos no mercado).
Metodologias de Desenvolvimento de Software
O testador pode não precisar de um entendimento profundo das metodologias de desenvolvimento de software nos estágios iniciais; é importante entender as diferenças das mais populares (Waterfall, Scrum e Kanban) pelo menos nos dedos. Mas com o tempo, ele terá que mergulhar cada vez mais fundo na metodologia, escolhendo as abordagens e técnicas apropriadas ao testar no contexto de um processo de desenvolvimento específico. É importante estar preparado para isso e prestar atenção a esse lado da questão.
Arquitetura do servidor cliente
O software mais moderno é construído sobre as baleias da interação cliente-servidor. É importante que o testador esteja no contexto dessa arquitetura, para entender os princípios de seu trabalho, as principais vantagens e desvantagens. Isso permitirá não apenas realizar melhores testes no decorrer de seu trabalho, mas também, se necessário, entender como os defeitos encontrados devem ser localizados, determinando corretamente de que lado eles estão.
Sistemas operativos
Os princípios de operação dos sistemas operacionais, o que são e o que geralmente são - conhecimento geral, que, por via de regra, simplifica a vida de um testador. Mesmo entender as tendências de substituir o SO de desktop por móvel, além de dominar as habilidades de trabalhar com o SO no nível do usuário já é uma vantagem. E se você se aprofundar nessa questão, com o tempo, será necessário adquirir as habilidades para configurar e usar toda uma galáxia de SO (dos mais populares, vale a pena notar Android, Windows, iOS, macOS, Linux).
Teste de Cliente de Aplicativo da Web
Uma das maneiras mais fáceis e comuns de se testar é começar a testar aplicativos da web. Essa especialização é uma das mais difundidas no mercado; no entanto, é logo atrás que a direção dos testes dos clientes para aplicativos móveis está começando. De qualquer forma, você precisa entender que esse vetor de desenvolvimento é um dos mais acessíveis no início de uma carreira. Existem muitos materiais e artigos de treinamento sobre esse tópico. Se desejar, você poderá desenvolver em qualquer outra direção, na maioria das vezes, é a automação ou os mesmos dispositivos móveis (por exemplo, depois de dominar o teste de aplicativos da web para dispositivos móveis).
Navegadores
No contexto do teste de cliente da Web, é importante entender a estrutura de thin clients, navegadores em particular, bem como suas diferenças, as especificidades de renderização e scripts de trabalho, mecanismos ocultos, versão, ferramentas adicionais do navegador etc. É importante que o testador tenha sempre em mente a popularidade do uso de um navegador específico entre os usuários reais do produto, a fim de distribuir os testes da maneira mais eficiente. Mais populares: Google Chrome, Safari, Firefox, Opera, Internet Explorer.
Console do desenvolvedor em um navegador
O testador da web deve poder usar o console do desenvolvedor no navegador (pelo menos trabalhar com elementos na página e nas solicitações de rede). No caso de trabalhar com elementos da página, o testador deve entender como localizá-los ou, se necessário, alterá-los e, no caso de interação na rede, ser capaz de entender a sequência de solicitações e respostas recebidas. Idealmente, você precisa conhecer vários métodos http (GET, POST, OPTIONS e outros), conhecer os códigos de resposta (10X-50X), poder ler os cabeçalhos e o corpo das respostas.
HTML, CSS, JavaScript
Para fazer com que o testador entenda melhor do que são feitas as páginas da web modernas e como elas são estruturadas, será extremamente útil ter pelo menos um entendimento básico de HTML, CSS e JavaScript. Esse conhecimento também ajudará a localizar erros associados a elementos específicos na página, localizá-los rapidamente e, se necessário, alterá-los no lado do cliente.
Teste de back-end
Um universo separado é o teste de back-end. Este mundo é desprovido de babados e beleza, não há lugar para interfaces gráficas, apenas um cursor oscilante no console, montanhas de texto e lógica pura de aplicação. Uma direção específica de teste, que nem sempre é fácil para iniciantes. Geralmente, requer um treinamento técnico mais completo de um especialista no início.
Modelo OSI
A base a partir da qual o testador de back-end deve iniciar é o modelo OSI. Apesar do fato de que na maioria dos casos é improvável que o testador considere úteis os níveis abaixo dos níveis aplicado e representativo, seria bom se ele entendesse onde esses níveis são relativos aos outros, qual é a sua especificidade e como eles são aplicados.
REST SOAP JSON-RPC
REST, - , . REST- -, , (HTTP, JSON, XML). SOAP ( XML, XSD, WSDL) JSON/XML-RPC, .
- . , , , .. , , . bash-, , .
cURL. Postman. SoapUI
REST API cURL, , . ( GUI) API Postman, . SOAP API, SoapUI ( REST API).
, SQL (MariaDB, MySQL, PostgreSQL, MS SQL). SQL. , « SQL ». , INSERT, SELECT, DELETE, UPDATE, WHERE, ORDER BY, JOIN, INNER JOIN, RIGHT JOIN, LEFT JOIN. , NoSQL (MongoDB, Cassandra). .
-
, , . , , . , , — , , .
IDE
(XCode iOS, Android Studio Android). , , , , . , IDE , .
HTTP/HTTPS-
- . - , (Charles, Fiddler, Wireshark), . I.e. , . , , ( , ). , .
, , Fabric (Crashlytics), HockeyApp, TestFlight. , , , .
Automação de Teste
, . , , , , . , , . , , , . , .
. — . .
:
— , - - Python , - Java . , .
:
, . (, , ..), ( ). , , . , , , ( ), .
:
, , . .
Python, Java, PHP, — Kotlin, Objective-C Swift.
, , (xUnit, nose, unittest, pytest, TestNG, Cucumber) , . , .
, . , . , Selenium WebDriver, iOS — XCUITest, Android Espresso UI Automator ( Google), — Robotium Selendroid. , , , , — . Appium Cucumber.
, , , . , , — Allure. , , .
, , , , , , . , , , . . Git, SVN, Mercurial, TFS. , Git . , commit, push, pull (force), fetch, checkout, branch, merge, rebase, revert.
, , - . , Jenkins, TeamCity, Bamboo. , - CI- , , unit-. , . , ( , ..) , .
, , . , , . , -, , , , . , , , , , 1% , , , . , , — .
, . , , , . — , , . , — , . ?
, — , : «, , , ». , . , , . , , . , — , — . , - , , . - .
. , , . , , , . , , , , .
, , — . — . . , , . — , , , . , , - . , , .
, , . , , , . — , , . , , . , , , , . É necessário! , .
, , , . , , -, , -, . — , . , , , .
— , . , . , , . , , , , .
Total

, IT , - , — . , — . , , , . , , , , .
Mais uma vez, quero lembrá-lo da importância de uma certa natureza para trabalhar em TI e testar em particular. Lembre-se de que você pode enviar alguém para cursos em linguagens de programação e DBMS, mas para cursos sobre o desejo de autodesenvolvimento e dedicação, o que permitiria concluir com êxito os primeiros cursos, infelizmente, ninguém terá sucesso.Espero que o artigo seja útil para quem o lê, seja um iniciante ou um especialista experiente, porque a escolha de linhas de desenvolvimento profissional no campo de testes é grande o suficiente para se perder nele. Deixe-me lembrá-lo de que toda essa história é, na minha humilde opinião, e, portanto, não julgue rigorosamente e não use chinelos. Eu ficaria grato pelo feedback construtivo.Toda a qualidade!