Classes e Debug
Olá a todos, espero que estes posts sejam de ajuda, de curiosidade, de preocupação e que nos permitam querer continuar a adquirir novos conhecimentos. O mundo do QA é muito amplo e a cada dia temos novas ferramentas que fazem com que nossos testes cumpram o objetivo de entregar um produto com o mínimo de erros.
É por isso que os testes automatizados nos ajudarão a ter raciocínio lógico para criar cenários e automatizar casos nos quais economizamos o máximo de tempo possível e, acima de tudo, tornamos esses casos cada vez mais eficientes.
Quero contar um pouco mais sobre minha experiência. Comecei minha carreira com um estágio como Programadora Jr. e fui contratada após 3 meses. Foi muito bom sentir que uma empresa confia em você e lhe dá a oportunidade de conhecer o mundo real.
Já dentro da empresa, minhas funções iam desde modificar a cor de um botão até criar ou modificar uma funcionalidade em um ERP. Lá comecei a usar ferramentas para gerenciamento de tickets e tempo, entrada de tarefas e muito mais. Ao iniciar a sua transformação, a empresa entrou no mundo das Metodologias Ágeis, algo que me permitiu adquirir mais conhecimentos, aprendizagens e experiências que apoiaram o meu CV.
O objetivo desta pequena introdução é mostrar que, às vezes, começamos em uma área e depois continuamos em outras, mas ter as ferramentas ajuda muito a abrir portas e oportunidades, algo que devemos reforçar com nossos estudos para não nos tornarmos obsoleto.
Vamos continuar…
No post anterior falamos sobre POO, lembra? Um tema muito importante que você precisa abordar com mais profundidade é o das classes.
Para escrever uma classe é necessário que saibamos que existem diferentes tipos de dados que podemos inserir nela e vou mostrá-los agora mesmo:
Variáveis e Tipos
Uma variável em Java é um contêiner de dados representado em uma palavra de memória que contém informações. O tipo de dados armazenados em uma variável depende do tipo de dados com os quais essa variável é declarada.
Por exemplo, na tabela a seguir veremos os tipos com os quais os nomes das variáveis são declarados e o tipo de dados que a variável armazena. Esta informação é usada em todas as linguagens de programação. Vejamos a seguinte tabela:
Java possui duas categorias de tipos de variáveis:
Variáveis de tipo primitivo armazenam um valor que deve ter o mesmo tipo de dados. Por exemplo, uma variável int armazena um valor inteiro como 1, 2, 0, -1, etc.
Isso significa que, ao colocar uma variável int em outra variável int, ela copiará as informações da variável armazenada.
Variáveis que fornecem referência a endereços de armazenamento de objetos e não a dados. Uma referência a um objeto é o endereço de uma área de memória destinada a representar esse objeto. Para fazer uma chamada para a área de memória, utiliza-se a operadora new.
Quando atribuímos uma variável referenciando um objeto de uma variável, o endereço é atribuído e não o objeto referenciado. Isso significa que as duas variáveis mencionadas se referirão ao mesmo objeto.
Vejamos um exemplo: lembre-se dos passos que realizamos anteriormente ao criar nosso projeto, como importar bibliotecas, instâncias, navegador, criar nossas classes, etc. Aqui você pode vê-los:
package com.selenium.automatizacion;
import java.util.Calendar;
import java.util.Date;
public class Navegador {
private String fabricante;
private Date fechaFabricante;
private String autor;
private boolean obsoleto;
public String getFabricante() {
return fabricante;
}
public void setFabricante(String fabricante) {
this.fabricante = fabricante;
}
public Date getFechaFabricante() {
return fechaFabricante;
}
public void setFechaFabricante(Date fechaFabricante) {
this.fechaFabricante = fechaFabricante;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public boolean isObsoleto() {
return obsoleto;
}
public void setObsoleto(boolean obsoleto) {
this.obsoleto = obsoleto;
}
Navegador() {
fabricante = "Desconocido";
fechaFabricante = new Date(Calendar.getInstance().getTimeInMillis());
autor = "desconocido";
obsoleto = false;
}
public String compatibleSistema (String sistema) {
String mensaje = "";
if (sistema.equals("windows") || sistema.equals("mac")) {
mensaje = "El navegador es compatible en esta solicitud";
}else {
mensaje = "El navegador no es compatible con esta solicitud";
}
return mensaje;
}
}
Para que serve um construtor em Java?
Você já se perguntou o que é um construtor em Java? Também foi um pouco difícil para mim entender para que servia, mas foi possível deixando claro que é uma classe e um objeto, ou seja, o que vimos.
Um construtor cria novos objetos e os inicializa. Os construtores podem ser representados de diferentes maneiras, mas sua função principal será orientada a objetos e não retornará nenhum valor. Em outras palavras, deve ter o mesmo nome da classe. Devo mencionar também que um construtor pode aceitar argumentos, permitindo que valores sejam definidos.
Você pode gerar seus construtores da seguinte maneira em IDE Eclipse:
No exemplo anterior, utilizamos todos os elementos dos temas vistos: métodos, classes, objetos, atributos, tipos de dados, etc. Além disso, instanciamos quatro variáveis de diferentes tipos de dados e seus construtores para verificar se um sistema está operacional ou não.
Criaremos outra classe com o método main, no qual implementaremos nossos objetos da classe Navegador.
Vejamos o exemplo:
package com.selenium.automattizacion;
public class ProgramaBase {
public static void main(String[] args) {
// TODO Auto-generated method stub
Navegador navegadorWeb1 = new Navegador ();
Navegador navegadorWeb2 = new Navegador ();
navegadorWeb2.setAutor("MacIntosh");
navegadorWeb2.setObsoleto(true);
System.out.println("Navegador Web 1: " + navegadorWeb1.getAutor());
System.out.println("Navegador Web 2: " + navegadorWeb2.getAutor() + " " + navegadorWeb2.isObsoleto());
}
}
Vou mostrar a resposta no console:
Podemos ver como usamos o objeto navegador e como preenchemos cada variável. No caso do autor, nas linhas de código colocamos “autor = “desconocido”” (autor = “desconhecido”) e vemos como são preenchidos os dados que solicitamos. Também vimos a resposta do objeto Navegador web 2 obtivemos o nome do autor e com evaluación (avaliação) sabíamos que se esta resposta fosse true ou false (neste caso foi true).
É assim que brincamos com os objetos de uma classe, como chamamos seus atributos, como podemos preenchê-la e utilizá-la, seja para executar um método, uma função ou exibir informações e assim ver no console os dados que precisamos de acordo com o sistema.
Outro fato importante é “System.out.println(“”);”. Esta seção de código que Java nos fornece é usada para imprimir resultados. Suponha que queiramos saber qual conteúdo ou dados uma variável possui. Simplesmente colocamos a variável dentro de () e ela nos mostrará seu conteúdo no console.
Como começar a depurar o Selenium
Depuração, conhecida como Debug, ajuda a identificar falhas e compreender o fluxo do nosso código. É uma maneira mais simples de entender o fluxo de execução. A depuração também ajuda a identificar falhas e descobrir sua causa raiz de maneira eficaz, ao mesmo tempo que facilita a compreensão do código de outra pessoa.
Depuração em Selenium
Atribuir pontos de interrupção
Vamos primeiro entender o que são pontos de interrupção e como usá-los durante a depuração.
Os pontos de interrupção em nosso script de automação nos ajudam a interromper a execução em um ponto específico de nosso código. Quando um ponto de interrupção é aplicado em algum ponto do nosso código, isso ajuda na depuração do código passo a passo. A partir daí podemos saber o que contêm as variáveis, quais valores um método retorna ou o que contêm seus parâmetros, entre outros.
Vamos ver como atribuir pontos de interrupção e executar nosso código em modo de depuração:
- Passo 1: Coloque o cursor na linha onde deseja aplicar o ponto de interrupção e pressione Ctrl+Shift+B. Você também pode fazer isso clicando duas vezes no lado esquerdo. Em uma linha de código, por exemplo, encontre onde deseja iniciar sua depuração e próximo ao número da linha, inicialize.
Aqui você pode ver que o ponto de interrupção é aplicado na linha número 13.
Passo 2: Você pode colocar seu ponto debug navegando y seleccionando Ejecutar > Alternar punto de interrupción en el editor de Eclipse.
Passo 3: Após selecionar a opção Debug, Seu código começará a ser executado no modo de depuração e a execução será interrompida no ponto de interrupção aplicado na linha 13.
Passo 4: Há outra guia variables (variáveis) que mostra os valores atribuídos às variáveis durante a execução. Você também pode ver como os valores das variáveis mudam conforme o fluxo de execução passa de uma linha para outra.
Este é outro exemplo:
Podemos perceber quais dados as variáveis que declaramos nos mostram e é assim que depuramos nosso código (ou de outra pessoa) e conhecemos o fluxo de trabalho de cada aplicação. A realização dessas atividades nos ajudará a encontrar o início ao fim de um fluxo e conhecer os métodos ou funções utilizadas em uma determinada seção da aplicação. Você pode utilizá-lo e, aos poucos, entender mais sobre sua funcionalidade.
Agora fizemos alguns exercícios que o ajudarão a refletir sobre como utilizar os tópicos que colocamos em prática nestas linhas de código. Recomendo que você faça esses exercícios para melhorar suas habilidades e dominar o que viu neste artigo.
Se você tiver alguma dúvida, escreva para meu e-mail marcela_amaya9412@hotmail.com e teremos prazer em resolvê-los juntos.
Você também pode pesquisar a documentação oficial. Aqui deixo para você o link.
Lemos em breve!
A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.