Hola de nuevo En previsión del comienzo del curso de Java QA Engineer, preparamos un pequeño material que será útil para aquellos que solo van a construir una carrera en esta dirección.
Probador: ¿quién es?
El ingeniero de garantía de calidad de software (QA) aboga por los intereses del usuario final. Está desarrollando un proceso de prueba de software que garantiza la
calidad , para que el producto no solo satisfaga, sino que también supere las expectativas del cliente.
Se distinguen los siguientes tipos de pruebas:
- Manual Implica familiarizarse con el producto utilizando las herramientas que usará el consumidor: teclado, mouse, dedos en la pantalla táctil.
- Regresión Después de agregar nuevas funciones, el probador debe verificar si la aplicación ha conservado sus propiedades operativas, desde el punto de vista del usuario final.
- Automatizado. Proporciona escritura de código para verificar que el comportamiento esperado y real de la aplicación coincida.
Las pruebas automatizadas no son un concepto nuevo para la industria del software. La provisión gratuita de herramientas de prueba automatizadas para crear un mejor software tampoco es un concepto nuevo. Lo nuevo es que gracias a Selenium WebDriver, desarrollado por ThoughtWorks y respaldado por Google, las soluciones de código abierto se han vuelto aceptables incluso para las empresas que están acostumbradas a trabajar solo con software estándar certificado.
Selenium WebDriver, combinado con CI / CD, creó tal aumento en la demanda de codificadores que la frase "prueba manual" en su mayor parte desapareció de la lista de requisitos para los solicitantes. ¿Qué ocupó su lugar? Desarrollo de herramientas de automatización.
El probador escribe, de hecho, estas pruebas y crea un entorno automatizado para soportar la ejecución de las pruebas y su análisis. Al hacerlo, intenta responder las siguientes preguntas:
- ¿Qué tipos de pruebas realizamos? ¿Nos centraremos en automatizar el conjunto de pruebas de regresión del navegador a través de Selenium WebDriver? ¿O también automatizaremos una nueva funcionalidad?
- Si usamos Selenium WebDriver para automatizar las pruebas del navegador, ¿lo vincularemos a Java, Python, C #, JavaScript o Ruby, por ejemplo?
- ¿Podemos avanzar un nivel más a lo largo de la pirámide de prueba de Mike Cohen y probar los servicios web que proporcionan a la aplicación del navegador una funcionalidad básica?
- ¿Qué soluciones de prueba se ajustan mejor al lenguaje de programación de aplicaciones?
¿Cómo se llevan a cabo las entrevistas de trabajo del probador hoy?
Cuando llegué a la primera entrevista después de un descanso de dos años, todo salió bien ... hasta el momento en que me pidieron que viniera a la junta.
"Usando su lenguaje de programación favorito, escriba un método para probar si una palabra dada es un palíndromo".
Si me hubieran dado esta tarea, habría podido resolverlo. Pero cuando me encontré frente al tablero, y dos desarrolladores con caras de piedra me evaluaron, mi mente se convirtió en un lienzo en blanco.
Habiendo lidiado con la mitad de la tarea, comencé a bromear:
- ¡Ojalá tuviera un portátil con IntelliJ!
- Si escribiera código para una prueba automatizada, lo habría hecho mucho mejor.
La respuesta fue: "Se espera que todos los empleados tengan programación en un cierto nivel mínimo, incluso para puestos de control de calidad".
Después de eso, tuve que prepararme para una entrevista para otro trabajo ...

Entrevista de escritura de código: no solo para ingenieros de software
Cuando fui entrevistado hace tres años, solo una vez me encontré escribiendo código. Y esta vez incluyó 5 de 7 vacantes adecuadas para mí. ¿Por qué los candidatos para el puesto de probador están sujetos a la misma verificación que los propios desarrolladores? La respuesta me pareció extraña:
Porque los probadores de hoy son desarrolladores.En los últimos años, la función de automatización se ha movido de probadores que pueden escribir código a desarrolladores que pueden probar.
Los desarrolladores no encuentran las preguntas formuladas por los evaluadores en la entrevista difícil. No piden candidatos para resolver la Torre de Hanoi o resolver ecuaciones matemáticas del segundo año de una buena universidad técnica.
La mayoría de los ejemplos de código que piden escribir están relacionados con bucles, matemáticas básicas, cadenas y manipulaciones simbólicas.
¿Por qué las entrevistas de escritura de códigos son tan complicadas?
Los temas de actividad pueden estar fuera de su área de especialización.- Normalmente trabajo con el lenguaje de programación Java. Solo ocasionalmente tengo que usar una estructura de datos más compleja que una tabla hash.
- El código que estoy escribiendo gira en torno a Selenium WebDriver. Abro el navegador, voy a la página, ingreso los datos en los campos de texto, selecciono los botones de radio y ¡funciona!
- Constantemente comparo cadenas y verifico si el texto de advertencia en la pantalla coincide con el esperado. Sin embargo, en mi trabajo diario, solo uso ligeramente los métodos de ayuda para el método del objeto de cadena.
No IntelliSense para una entrevista- Si necesito usar métodos auxiliares en una cadena, carácter u objeto entero, solo tengo que poner un punto después de la palabra, y se mostrarán los métodos.
Dichas pruebas no permiten el uso de fuentes externas de información.- No puede utilizar el foro especializado o
StackOverflow.com
.
Durante las entrevistas, puede producirse una sensación de aislamiento.- Cuando empiezo a escribir una prueba para una función con la que no estoy familiarizado, generalmente intercambio ideas con colegas. Pero durante la entrevista no puedo intercambiar ideas con los entrevistadores. ¿O aún puedo? Me pareció que no podía, a veces no son muy amigables.

¿Cómo se puede preparar para tales tareas?
Refresca tu conocimientoUna buena opción es tomar algunos cursos gratuitos de programación en línea.
RTFM
Utilice los recursos de aprendizaje de Java de Oracle: “La Guía de Java son instrucciones prácticas para programadores que desean utilizar Java para crear aplicaciones. El manual incluye docenas de lecciones y cientos de ejemplos.
Consulte la documentación de la API
Para trabajar con un lenguaje de programación, debe comprender los términos básicos enumerados en la documentación de la API.
Si su lenguaje de programación principal es Java, eche un vistazo a
https://docs.oracle.com/javase/8/docs/api/java , centrándose en los temas de
Entero ,
Cadena y
Carácter , especialmente:
Funciones de cadena¿Necesita encontrar el primer carácter en una cadena? Use
charAt(0)
. Averigüe si un carácter o palabra está en una cadena? Uso
contains
. ¿Necesitas un sufijo? Intenta con los
endsWith
. Puede verificar si las dos líneas coinciden usando
equals
y
equalsIgnoreCase
.
Funciones de caracteresLas funciones booleanas
isLetter
,
isLetterOrDigit
,
isLowerCase
,
isUpperCase
,
isLowerCase
,
isWhitespace
ayudan a familiarizarse con la naturaleza de los caracteres. Por ejemplo:
Character.isLetter('A')
será verdadero. Al ingresar nuevos caracteres,
char newCharacter = 'a'
comillas simples, por ejemplo:
char newCharacter = 'a'
.
Funciones enteras¿Quieres convertir un entero? Ingrese un número entero en
Integer.toBinaryString(int i)
,
Integer.toHexString(int i)
o
Integer.toOctalString(int i)
para convertirlo al formato deseado.
Practica en papelPor ejemplo, pregúntese cómo usar el bucle de bucle para revelar:
- todos los enteros del 1 al 100;
- todos los números pares (i% 2 == 0) en el rango de 1 a 100 {1 ... 100}
- todos los números divisibles por 3 (i% 3 == 0).
O aquí están los ejercicios de cuerda:
- escribe un método que toma la cadena sy devuelve la longitud como un entero
s.length
; - escriba un método que tome la cadena sy devuelva el primer carácter
s.charAt(0)
.
Importante:
- Intenta escribir todo con letra legible.
- No olvide abrir y cerrar los soportes correctamente.
- Proponga pruebas de validación para su código. ¿Funcionará si la cadena consta de un solo carácter? ¿Y si fuera de 100? ¿Y si 0?
Esté atento al error de la unidad no contabilizada en ciclos:
- Al contar caracteres en una cadena o en el primer índice de una matriz, el número n se considera en el rango de 0 a
n-1
. Es decir, el primer carácter es (0) y el último es (longitud - 1). - El bucle
for (for i = 0; i < 5; i++)
finalizará en el número 5. Si visualiza esto en la pantalla, entonces se mostrarán 0, 1, 2, 3, 4. Para visualizar 5 más, ingrese i <= 5 .
En la segunda parte del artículo, hablaremos sobre por qué las entrevistas de escritura de códigos son tan complicadas. Y eso es todo por hoy. Se puede obtener información más interesante en el seminario web gratuito , que se realizará el 19 de diciembre.