La imagen de un probador moderno. Lo que necesita saber y poder



Existe la opinión de que la forma más sencilla de TI es a través de las pruebas. Por ejemplo, no necesita saber nada, para poder hacerlo aún más, es suficiente el deseo y la voluntad de no entrecerrar los ojos por el dolor y las lágrimas cuando recibe otro conjunto de casos de prueba para pruebas de regresión.

En parte, esto es incluso cierto, sino más bien por la situación que estaba en el mercado hace 10 años. Ahora todo es un poco diferente. Hay muchas razones para esto, y son muy diferentes. Si notas la clave, entonces quizás esto:

Mayores requisitos para los probadores, sus conocimientos y calificaciones, ya que las tareas se abordan cada vez más un poco más complicadas que "clic-clic-y-producción". El trabajo de los probadores se está volviendo cada vez más "ingeniería", requiere conocimientos técnicos, conocimientos específicos, habilidades y competencias. Los probadores se están convirtiendo cada vez más en ingenieros de control de calidad (quien sea que esté en el tema comprende la diferencia).

El aumento de la oferta en el mercado cuando las multitudes de "civiles" de ayer se precipitaron al abismo de las TI, alimentadas por una gran cantidad de información: desde conferencias y libros hasta artículos y cursos sobre pruebas de software. Su humilde servidor en un momento también participó en la creación de un par de cursos generalmente accesibles debido al deseo de replicar cosas básicas de su campo profesional (ver aquí y aquí ).

Por lo tanto, hoy en día es cada vez menos posible confiar únicamente en las cualidades morales volitivas para ingresar a la TI a la luz del aumento del apetito del mercado y la abundancia de conferencias, cursos, capacitaciones, literatura, artículos y otras fuentes de información que están al alcance de los especialistas principiantes.

Por supuesto, cada vez más compañías están tratando de hacer crecer a especialistas bajo su ala, inundando a los afortunados con nuevos conocimientos y habilidades, al mismo tiempo que aumenta la lealtad a la compañía. Sin embargo, en este caso, las empresas y sus especialistas enfrentan preguntas candentes y agudas ...
¿Cómo no perderse en la variedad de información que se llena con Internet y el mundo que lo rodea?
¿Qué enseñar a ti mismo o qué enseñar a tus luchadores?

En mi artículo, intentaré describir en términos generales lo que necesita saber y poder trabajar como especialista en el campo del aseguramiento de la calidad en las áreas más populares y solicitadas. Vamos!

Las siguientes especialidades constituyen la parte predominante del mercado de oferta y demanda de los evaluadores y, por lo tanto (y debido a la falta de experiencia laboral suficiente y relevante), el artículo, por desgracia, no tendrá secciones sobre rendimiento y especialización de escritorio.

El material para este artículo se basa en mi propia experiencia trabajando con los brillantes especialistas de mis equipos, en los resultados de la enseñanza en la Universidad Estatal de Moscú, MSTU y en un curso en línea, así como en cientos de entrevistas y docenas de especialistas en control de calidad contratados de varios perfiles. No pretendo ser excepcional en mi opinión, pero creo que mi experiencia permite que mi punto de vista sea bastante competente.

Rasgos de carácter


Sería extraño creer que con el aumento de los requisitos para los aspectos técnicos del trabajo de los evaluadores, la importancia de las cualidades personales disminuyó o desapareció por completo. Además, estoy seguro de que los rasgos de carácter se encuentran en el corazón de un especialista exitoso y son cruciales para un conocimiento y habilidades similares. Después de todo, no estamos trabajando con interfaces humanas para Stack Overflow y Wikipedia, sino con personas vivas que permanecen así en la oficina y en el hogar. Por lo tanto, es muy importante tener en cuenta los rasgos de personalidad en el contexto de la próxima elección de la industria, la profesión y la especialidad en ella.

¿Por qué pienso eso? ¡Todo es muy simple! Puedo enviar fácilmente a un especialista a cursos o conferencias, ordenar libros o realizar capacitaciones sobre los matices del diseño de pruebas, lenguajes de programación, SQL, redes y otros aspectos técnicos, para que después de un tiempo obtenga los primeros resultados y los multiplique, consolidando la información recibida en la práctica . Sin embargo, no puede enviar al curso "Cómo dejar de correr detrás de los bollos de oficina y comenzar a invertir en su propio conocimiento", "Cómo dejar de ser un mentiroso irresponsable y comenzar a vivir honestamente", "Cómo dejar de ser un ratón gris y convertirse en una persona entusiasta", "Cómo dejar de odiar a las personas y aprender a trabajar en equipo "y contar con un resultado tangible después de escuchar. Por desgracia, esta es la verdad de la vida, el desacuerdo interno con el que permite que un amplio estrato de "empresarios de la información" gane en los rebeldes, ansiosos por cambiar sus pilares fundamentales y rasgos de carácter en una sola sesión de entrenamiento o una serie de seminarios web en línea. Es por eso que es tan importante tener al principio la motivación y las cualidades de vida adecuadas para trabajar en TI y en el control de calidad en particular. Entonces, ¿qué es lo importante?

Motivación para aprender y autoaprendizaje.


Responda honestamente a su pregunta: ¿le gusta estudiar? No una sola vez, sino de manera continua. ¿Estás listo para el único salto que mágicamente te llevará "a las damas", o realmente quieres absorber nuevos conocimientos cada hora y cada minuto? TI es un área en la que no es exitoso parpadear, y usted ya está al margen de la industria. No debe esperar que después de leer un libro sobre pruebas en un año, se abra a sí mismo la puerta de entrada al maravilloso mundo del nuevo conocimiento que le permitirá estar en la tendencia durante una década por delante. Idealmente, si no siempre necesita un mentor y un maestro sabios para estudiar y puede prepararse para un nuevo libro, seminario web o cursos por su cuenta.

Responsabilidad


Califique su nivel de responsabilidad. Una manera simple: para empezar, repítete algunos de tus mayores errores en la vida. No funciona No se trata de tu impecabilidad, recuerda que solo el que no hace nada no se equivoca. Recordado? Si solo hay un par de cosas pequeñas, entonces este es un indicador triste. Peor aún, si recuerda los errores del pasado, inmediatamente los culpó internamente por otra persona o circunstancias, y no reconoció su responsabilidad por lo que sucedió. Pero si recordabas un par de grandes fallas donde eras tú quien tenía la culpa, e incluso recordabas cómo se repararon, entonces las cosas con tu responsabilidad son mucho mejores. Una torre es cuando no solo corrigiste un error, sino que también te aseguraste de él en el futuro para que no vuelva a ocurrir. Un enfoque responsable del trabajo es la clave para una carrera exitosa en cualquier campo y, por lo tanto, para el evaluador, esta es una característica extremadamente importante. Lo principal es no ir demasiado lejos y conocer la medida, porque la hiperresponsabilidad no siempre es buena.

Pasión


¿Eres una persona apasionada? Honestamente, ¿qué te gusta? Nada especial? ¿O son muchas pequeñas aficiones las que haces una vez al año? Tal vez algo grande, pero el tiempo se agota constantemente, pero porque un hobby está esperando mejores tiempos. Una persona sigue siendo una persona tanto en la oficina como cuando la abandona. Y si una persona es realmente apasionada por algo en la vida cotidiana, significa que en el trabajo puede dejarse llevar por algo tanto que se quedará por las noches o estudiará el tema los fines de semana por su propia iniciativa. La tarea de un líder competente y el propio especialista es encontrar tales tareas. Por supuesto, es importante al mismo tiempo llevar lo que se ha comenzado a su conclusión lógica y no dejarlo a la mitad. Un probador no puede ser un "cracker". Pero si él quema con su trabajo y producto, entonces la efectividad de tal empleado será mayor.

Comportamiento de flexibilidad


Una característica importante para trabajar en empresas de TI modernas y en el control de calidad en particular es la flexibilidad. Nuevos conocimientos y tendencias llegan a la velocidad de los vientos de Júpiter, para ponerse al estilo de Gandalf Grey "¡No pasarás!" enfrentarse a la industria es extremadamente difícil y no siempre es aconsejable. Por lo tanto, es bastante importante poder adaptarse a las nuevas condiciones de trabajo, ya sea la línea general de la empresa, los nuevos productos, el equipo, las metodologías de trabajo o las herramientas. Cuanto más flexible es el empleado, más posibilidades tiene de desarrollar una carrera en TI.

Sociabilidad y contacto.


Sin lugar a dudas, puede ser un especialista exitoso, siendo bastante reservado, pero al mismo tiempo profundamente inmerso en su tarea, sin embargo, para aprender algo nuevo y educar a otros es más probable que sea una persona sociable y de contacto. No es necesario que todos sean grandes oradores y hablen públicamente en los eventos, pero es importante poder encontrar un lenguaje común con los colegas, expresar correctamente sus pensamientos verbalmente y por escrito. En el trabajo del probador, estas son características bastante importantes, porque necesita comunicarse mucho y con frecuencia, y cuanto más hable sobre QA, más profundo y más detallado estará inmerso en áreas relacionadas, donde la capacidad de construir comunicación es la mitad del éxito.

Trabajo en equipo


El probador debe ser un jugador de equipo. No importa si trabaja en un modelo de prueba de servicio o si los evaluadores están integrados en cada equipo. Es muy importante que le dé una "sensación de hombro" a su equipo para que puedan confiar en usted y usted en ellos. Uno no es un guerrero en el campo; para los evaluadores también es una historia sobre un mayor crecimiento profesional. Después de todo, es el equipo, como su entorno inmediato, la principal fuente de conocimiento que recibirá sobre el producto, los procesos y las tecnologías. Si eres un jugador de equipo, entonces en las pruebas lograrás un mayor éxito que un solitario.

Iniciativa y determinación


Como sabe, el agua no fluye debajo de una piedra que yace y, por lo tanto, la inercia le llegará de lado en la profesión de probador. Un buen probador es proactivo, no espera una patada de colegas y el jefe, pero viene con nuevas soluciones y sugerencias. Si una vez le dijeron al probador "esto no es un error, sino una característica", entonces no debería darse por vencido. En cambio, toma la iniciativa y expresa tu punto de vista. Por supuesto, no debes ir a los extremos y discutir por ningún motivo, pero no debes estar de acuerdo con todo lo que dicen. El trabajo de un buen evaluador se basa no solo en el pensamiento crítico, que evalúa la fortaleza del mundo, sino también en la capacidad de formar su propia posición en el momento adecuado y defenderla frente a los demás.

Esta lista se puede continuar y complementar, he identificado características clave basadas en mi propia experiencia. Por supuesto, no estamos hablando del hecho de que si no tienes estas cualidades, entonces no eres apto. Pero es seguro decir que cuanto menos de las cualidades declaradas estén en usted, más difícil será para usted, su equipo y su líder. Se permiten excepciones, lo que solo confirma la regla.

Pruebas Básicas


Los siguientes conocimientos y habilidades son necesarios para absolutamente cualquier evaluador, independientemente de su especialización. Estas cosas son la base de lo básico, aprenden rápida y fácilmente, especialmente si la práctica las soluciona de inmediato. Recomiendo encarecidamente que todos los principiantes, sin excepción, se sumerjan en los temas que se detallan a continuación. Armado con este conocimiento, puede descubrir el interminable mundo de las pruebas de software, y finalmente dominar cualquiera de las áreas, pero el conocimiento establecido en la base siempre seguirá siendo solicitado.

Clasificación de los tipos de pruebas.


Incluso un probador novato debe tener una comprensión básica de los diferentes tipos de pruebas, cuándo se usan y para qué. Esta es una teoría seca, que en sí misma no es necesaria, pero sin ella, "ponerse encima" de la práctica puede ser terriblemente doloroso y llevar mucho tiempo, pero en el camino, también puede inventar bicicletas, pero puede recoger un rastrillo conocido. No seas perezoso, echa un vistazo, el beneficio de muchas fuentes. Pero luego puede pasar fácilmente las tareas del nivel de "lápiz de prueba" en las entrevistas.

Localización de errores e informes de errores


Encuentra un pequeño error. Es extremadamente importante localizar el error de la manera correcta, estableciendo tantas circunstancias y condiciones como sea posible para su reproducción estable. Además, debe adquirir la habilidad de compilar informes de errores de alta calidad. En mis conferencias y cuando trabajo con un equipo, a menudo utilizo la siguiente comparación: "Su informe de error es bueno si salió, tomó a la primera abuela que vino y pudo reproducir el defecto de acuerdo con su descripción o verificar su ausencia" .

Técnicas de diseño de prueba


Cosas básicas, que a menudo se verifican de una forma u otra en las entrevistas o en la tarea, dando tareas del nivel "probar el formulario para ingresar números" y "escribir autotests en nuestro formulario de autorización". Es importante no solo memorizar lo que son "clases de equivalencia" o "análisis de valores límite", sino también poder utilizar diversas técnicas en cualquier condición, combinándolas.

Seguimiento de errores, conocimiento y sistemas de gestión de pruebas.


Los momentos en que los informes de errores se escribieron en hojas y la documentación de la prueba, las listas de verificación y los casos de prueba se llevaron a cabo en los muelles de Google desaparecieron en el olvido (sí, sí, sé que algunos todavía escriben, y a veces incluso es conveniente ) Este samopal fue reemplazado por herramientas profesionales: sistemas de seguimiento de errores (los más populares son Jira, Redmine), sistemas de gestión del conocimiento (Confluence, Wiki, etc.) y sistemas de gestión de casos de prueba (TestRail, Zephyr, TestLink, etc. ) Los principios básicos de trabajar con herramientas pueden obtenerse encajándose en programas de prueba beta abiertos o instalando software por su cuenta (existen soluciones gratuitas y shareware en la escala de sesiones de investigación en el mercado).

Metodologías de desarrollo de software


Es posible que el probador ni siquiera necesite una comprensión profunda de las metodologías de desarrollo de software en las etapas iniciales, es importante comprender las diferencias de las más populares (Waterfall, Scrum y Kanban) al menos en los dedos. Pero con el tiempo, tendrá que profundizar más y más en la metodología, eligiendo los enfoques y técnicas adecuados cuando realice las pruebas en el contexto de un proceso de desarrollo particular. Es importante estar preparado para esto y prestar atención a este lado del problema.

Arquitectura del servidor del cliente


La mayoría del software moderno se basa en las ballenas de la interacción cliente-servidor. Es importante que el probador esté en el contexto de esta arquitectura, para comprender los principios de su trabajo, las principales ventajas y desventajas. Esto permitirá no solo realizar mejores pruebas en el curso de su trabajo, sino también, si es necesario, comprender cómo deben localizarse los defectos encontrados y determinar correctamente de qué lado están.

Sistemas operativos


Los principios de funcionamiento de los sistemas operativos, qué son y cuáles son en general: conocimiento general, que, por regla general, simplifica la vida de un probador. Incluso comprender las tendencias de reemplazar el sistema operativo de escritorio con dispositivos móviles, así como dominar las habilidades de trabajar con el sistema operativo a nivel de usuario ya es una ventaja. Y si profundiza en este problema, con el tiempo necesitará adquirir las habilidades para configurar y usar una galaxia completa del sistema operativo (Android, Windows, iOS, macOS, Linux son los más populares).

Prueba de cliente de aplicación web


Una de las formas más fáciles y comunes de realizar pruebas es comenzar a probar aplicaciones web. Esta especialización es una de las más extendidas en el mercado, sin embargo, está siguiendo sus pasos que la dirección de prueba de clientes de aplicaciones móviles está comenzando. En cualquier caso, debe comprender que dicho vector de desarrollo es uno de los más accesibles al comienzo de una carrera. Hay muchos materiales de capacitación y artículos sobre este tema. Si lo desea, puede desarrollar en cualquier otra dirección, con mayor frecuencia es la automatización o los mismos dispositivos móviles (por ejemplo, después de dominar las aplicaciones web de prueba para dispositivos móviles).

Navegadores


En el contexto de las pruebas de clientes web, es importante comprender la estructura de los clientes ligeros, los navegadores en particular, así como sus diferencias, los detalles de los scripts de renderizado y de trabajo, los motores ocultos, el control de versiones, las herramientas adicionales del navegador, etc. Es importante que un probador tenga siempre en cuenta la popularidad del uso de un navegador en particular entre los usuarios reales del producto para distribuir las pruebas de la manera más eficiente. Los más populares: Google Chrome, Safari, Firefox, Opera, Internet Explorer.

Consola de desarrollador en un navegador


El probador web debería poder usar la consola del desarrollador en el navegador (al menos trabajar con elementos en la página y solicitudes de red). En el caso de trabajar con elementos de página, el probador debe comprender cómo localizarlos o, si es necesario, cambiarlos, y en el caso de interacción de red, ser capaz de comprender la secuencia de solicitudes y respuestas recibidas. Idealmente, debe conocer varios métodos http (GET, POST, OPTIONS y otros), conocer los códigos de respuesta (10X-50X), poder leer los encabezados y los cuerpos de las respuestas.

HTML, CSS, JavaScript


Para que el evaluador comprenda mejor de qué están hechas las páginas web modernas y cómo están estructuradas, será extremadamente útil tener al menos una comprensión básica de HTML, CSS y JavaScript. Este conocimiento también ayudará a localizar errores asociados con elementos específicos en la página, encontrarlos rápidamente y, si es necesario, cambiarlos en el lado del cliente.

Pruebas de backend


Un universo separado es la prueba de backend. Este mundo está desprovisto de volantes y belleza, no hay lugar para interfaces gráficas en él, solo un cursor parpadeante en la consola, montañas de texto y lógica de aplicación pura. Una dirección específica de prueba, que no siempre es fácil para los principiantes. Por lo general, requiere una capacitación técnica más exhaustiva de un especialista al comienzo.

Modelo OSI


La base desde la cual debe comenzar el probador de back-end es el modelo OSI. A pesar de que, en la mayoría de los casos, es poco probable que el evaluador encuentre útiles los niveles por debajo de los niveles aplicados y representativos, sería bueno si comprende dónde están estos niveles en relación con los demás, cuál es su especificidad y cómo se aplican.

DESCANSO Jabón JSON-RPC


REST, como el estilo arquitectónico de la interacción cliente-servidor, se encuentra en el corazón de la Internet moderna. 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), . Es decir , . , , ( , ). , .


, , Fabric (Crashlytics), HockeyApp, TestFlight. , , , .

Prueba de automatización


, . , , , , . , , . , , , . , .


. — . .

:

— , - - 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% , , , . , , — .


, . , , , . — , , . , — , . ?


, — , : «, , , ». , . , , . , , . , — , — . , - , , . - .


. , , . , , , . , , , , .


, , — . — . . , , . — , , , . , , - . , , .


, , . , , , . — , , . , , . , , , , . Es necesario! , .


, , , . , , -, , -, . — , . , , , .


— , . , . , , . , , , , .

Total




, IT , - , — . , — . , , , . , , , , .

Una vez más, quiero recordarles la importancia de cierta naturaleza para trabajar en TI y probar en particular. Recuerde que puede enviar a cualquiera a cursos en lenguajes de programación y DBMS, pero nadie tendrá éxito en enviar cursos de autodesarrollo y dedicación que le permitan completar con éxito los primeros cursos, por desgracia.

Espero que el artículo sea útil para quienes lo leen, ya sea un principiante o un especialista experimentado, porque la elección de las líneas de desarrollo profesional en el campo de las pruebas es lo suficientemente grande como para perderse en él. Permítanme recordarles que toda esta historia está en mi humilde opinión y, por lo tanto, no juzguen estrictamente y no tiren zapatillas. Agradecería la retroalimentación constructiva.

Toda la calidad!

Source: https://habr.com/ru/post/es426759/


All Articles