Entrevista - Template Preguntas - Java
Entrevista - Template Preguntas - Java
Entrevista - Template Preguntas - Java
#Version Seniority @
(Text) (Helper) Pregunta Trainee Junior SSr Senior Lead
Rol ¿Cuál es tu experiencia? Breve descripion de sus ultimas experiencias, tecnologias y metodologias utilizadas 1- Desarrollo x
Composicion de equipos en sus ultimas experiencias para detectar si trabajo con TL,
Rol ¿Cómo se componía el equipo? QA, PM, PO, FE y etc. 1- Desarrollo x
Rol ¿Tuviste gente a cargo? Se busca detectar algun expertice en liderazgo de equipos 1- Desarrollo x
Rol ¿Cual fue tu experiencia ejerciendo el rol de Liderazgo tecnico? Entender que tareas estuvo realizando como referente o lider tecnico de su equipo 1- Desarrollo x
Entender como se comporto frente a una situación compleja y como busco
Rol Experiencia trabajando con colaboradores conflictivos resolverla. 1- Desarrollo x
Rol ¿Tuviste que tomar decisiones de arquitectura? Conocimiento en definicion de arquitecturas y toma de desiciones importantes 1- Desarrollo x
Rol ¿Por qué buscas el cambio? Conocer que lo motiva al candidato a buscar ofertas o escuchar oportunidades 1- Desarrollo x
Rol ¿Cuál es tu nivel de Inglés? Conocer si trabajo a diario con algun cliente del exterior 1- Desarrollo x
Rol ¿Cuál fue el mayor desafío que tuvo en su trabajo? Experiencia concreta que haya sido un desafio tecnico para el candidato. 1- Desarrollo x
¿Cual es tu experiencia aplicando el paradigma orientado a objetos y patrones de
POO y Buenas Prácticas diseño? Conoce mejor como se desenvuelve en el mundo de OOP 1- Desarrollo x
El lenguaje procedural se basa en funciones, pero el lenguaje orientado a objetos se
basa en objetos del mundo real.
El lenguaje procedural le da importancia a la secuencia de ejecución de la función,
pero el lenguaje orientado a objetos le da importancia a los estados y
comportamientos de los objetos.
El lenguaje procedural expone los datos a todo el programa, pero el lenguaje
orientado a objetos encapsula los datos.
El lenguaje procedural sigue el paradigma de programación de arriba hacia abajo,
pero el lenguaje orientado a objetos sigue el paradigma de programación de abajo
hacia arriba.
El lenguaje procedural es de naturaleza compleja, por lo que es difícil de modificar,
ampliar y mantener, pero el lenguaje orientado a objetos es de naturaleza menos
compleja, por lo que es más fácil de modificar, ampliar y mantener.
El lenguaje procedural proporciona menos posibilidades de reutilización de código,
¿Que diferencias hay entre programación procedural y programación orientada a pero el lenguaje orientado a objetos ofrece más posibilidades de reutilización de
POO y Buenas Prácticas objetos? código. 1- Desarrollo x
POO y Buenas Prácticas ¿Cuáles son los pilares de POO? Encapsulamiento, abstracción, herencia y polimorfismo 1- Desarrollo x
En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la
que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos.
El único requisito que deben cumplir los objetos que se utilizan de manera
POO y Buenas Prácticas ¿Podes explicar Polimorfismo con tus palabras? polimórfica es saber responder al mensaje que se les envía. 1- Desarrollo x
El encapsulamiento es un concepto OOPS para crear y definir los permisos y
restricciones de un objeto y sus variables y métodos miembros. Un ejemplo muy
simple para explicar el concepto es hacer que las variables miembro de una clase
sean privadas y proporcionar métodos públicos de obtención y establecimiento. Java
proporciona cuatro tipos de modificadores de nivel de acceso: público, protegido, sin
POO y Buenas Prácticas ¿Podes explicar Encapsulamiento con tus palabras? modificador y privado. 1- Desarrollo x
Una subclase puede heredar los estados y comportamientos de su superclase, lo
POO y Buenas Prácticas ¿Podes explicar Herencia con tus palabras? que se conoce como herencia. 1- Desarrollo x
single responsability, open/closed, liskov substitution, interface segregation,
POO y Buenas Prácticas ¿Cuáles son los principios SOLID? dependency inversion 1- Desarrollo x
POO y Buenas Prácticas ¿Qué conoces de los principios DRY? Don't repeat yourself. Ventajas de no repetir código. 1- Desarrollo x
POO y Buenas Prácticas ¿Conoces alguna herramienta de análisis estático de código? Sonarqube, Checkstyle,etc 1- Desarrollo x
.Net, .Net Core, C# ¿Qué librerías de logging utilizaste? Log4j, Slf4j, Logback 1- Desarrollo x
POO y Buenas Prácticas ¿Trabajaste alguna vez con metodologías ágiles? ¿Cuáles? Scrum, agile, kanban 1- Desarrollo x
POO y Buenas Prácticas ¿Que elementos basicos tiene un patron de diseño? Nombre, Problema y solución 1- Desarrollo x
POO y Buenas Prácticas ¿Podes explicar algún patron de diseño con tus palabras? Explicar al menos un patron de diseño correctamente 1- Desarrollo x
Java Core ¿Cual es tu experiencia con Java? Entender como ha implementado el lenguaje y en que contextos 1- Desarrollo x
Variable local: Su scope es dentro de un metodo.
Java Core ¿Que diferencias hay entre una variable local y una variables de instancia? Variable instancia: Vive a lo largo del tiempo de vida de la clase. 1- Desarrollo x
En una subclase tenemos un metodo existente en la clase padre, donde la firma es
Java Core ¿A que nos referimos con sobreescritura de un metodo? la misma pero el comportamiento es distinto. Uitlizamos el anotation @Override. 1- Desarrollo x
Decimos que sobrecargamos un metodo, cuando agregamos un nuevo metodo con
el mismo nombre y diferentes argumentos. Esto puede suceder tanto si el o los
Java Core ¿A que nos referimos con sobrecarga de un metodo? nuevos metodos se definen en la misma clase o en una superclase. 1- Desarrollo x
Una interfaz es una entidad que unicamente tiene la declaración de los metodos es
decir las firmas pero no tiene implementaciones (Al menos en las interfaces
Java Core ¿A que nos referimos cuando hablamos de interfaces? clasicas). 1- Desarrollo x
Mandatorio - Es una clase nueva de java 8 que encapsula un valor opcional, se
Java Core ¿Qué es un Optional? puede considerar como un contenedor de 0 o 1 elemento. 1- Desarrollo x
Java Core ¿Qué es una Interfaz Funcional? Mandatorio - Es una interface que solo tiene 1 metodo abstracto. 1- Desarrollo x
Mandatorio - Son metodos definidos e implementados en una interface, permiten
agregar nuevas funcionalidades manteniendo la compatibilidad con las clases que
Java Core ¿Qué es un Default Method? ya implementan la interfaz. 1- Desarrollo x
Mandatorio - * Function
* Consumer
* Supplier
* Predicate
* BiFunction
* BinaryOperator
* UnaryOperator
Java Core Mencione algunos tipos de interfaz funcional 1- Desarrollo x
Mandatorio - Es una función anonima que se puede referenciar y ser pasada como
Java Core ¿Qué es un Lambda expression? un objeto. 1- Desarrollo x
Mandatorio - Las lambda solo pueden ser aplicadas a metodos abstractos de
Java Core ¿Como se relacionan las "Interfaces Funcionales" con las "Lambda Expressions? intrefaces funcionales. 1- Desarrollo x
Java Core ¿Cuál es la sintaxis del "Reference Method" en java 8? Mandatorio - class::methodName 1- Desarrollo x
Mandatorio - * LocalDate
* LocalTime
* LocalDateTime
Java Core Mencione algunas APIs de java 8 para el manejo de fechas 1- Desarrollo x
Java Core ¿Cuál sería el resultado de LocalDate.now()? Mandatorio - La fecha actual del sistema en formato YYYY-MM-DD 1- Desarrollo x
Java Core ¿Como es la sintaxis de una Lambda Expression? Mandatorio - params -> expressions 1- Desarrollo x
Mandatorio - No, el compilador lo puede inferir por su valor.
int param -> expression y param -> expression son ambos válidos
Java Core ¿Es obligatorio declarar el tipo de los parrámetros en una Lambda? 1- Desarrollo x
¿Cuando es obligatorio el uso de parentesis de llaves "{}" en una lambda Mandatorio - Son obligatorios cuando existe más de una sentencia, si solo es una,
Java Core expression? entonces se pueden omitir. 1- Desarrollo x
Las colecciones son un framework que esta pensado para el almacenamiento y
manipulacion de conjuntos de objetos.
Los tipos de operaciones posibles son: Busqueda, ordenamiento, edición, insercion y
Java Core ¿Que significa Colecciones en Java? borrado, entre otros. 1- Desarrollo x
Interfaces: List, Set, Queue y Map.
Mencione las clases e interfaces de las colecciones que recuerde y explique al Implementaciones: ArrayList, LinkedList, Vector, HashSet, TreeSet,HashMap,
Java Core menos 2 implementaciones. TreeMap,etc 1- Desarrollo x
Mandatorio - No es una estructura de datos. Es un mecanismo que recibe una fuente
(conjunto de datos) y aplica un conjunto de acciones en cada uno de los elementos
que contiene.
Java Core ¿Qué es un Stream? No afecta la fuente. Permite el procesamiento en paralelo. 1- Desarrollo x
Mandatorio - Las operaciones intermedias son aquellas que retornan un Stream,
Java Core ¿Qué son las operaciones intermedias en un Stream? permitiendo realizar operaciones adicionales sobre el Stream. 1- Desarrollo x
Mandatorio - * filter(Predicate)
* map(Function)
* flatmap(Function)
* sorted(Comparator)
* distinct()
* limit(long n)
Java Core Mencione algunas Operaciones Intermedias * skip(long n) 1- Desarrollo x
Mandatorio - El lenguaje Java se desarrolló de tal manera que no depende de
ningún hardware o software debido al hecho de que el compilador compila el código
y luego lo convierte en un código de bytes independiente de la plataforma que se
puede ejecutar en múltiples sistemas.
La única condición para ejecutar ese código de bytes es que la máquina tenga un
Java Core Por qué Java es un lenguaje independiente de la plataforma? entorno de ejecución (JRE) instalado. 1- Desarrollo x
Mandatorio - Describe el código que puede inspeccionar otro código en el mismo
Java Core Que es Reflection? sistema y realizar modificaciones en tiempo de ejecución. 1- Desarrollo x
Mandatorio - La JVM tiene un heap de datos en tiempo de ejecución. La memoria
para todas las instancias de clase y matrices se asigna a este heap, que se crea en
el inicio de la JVM. El garbage collector, que es un sistema automático de
administración de memoria, recupera la memoria de pila para los objetos.
Tanto los objetos vivos, a los que la aplicación puede acceder y que no formarán
parte del garbage collector, como los objetos muertos, a los que la aplicación nunca
podrá acceder pero que aún no han sido recolectados por el garbage collector,
constituyen el espacio de memoria heap hasta que los objetos muertos
eventualmente terminen en el garbage collector.
Java Core Cuál es la estructura de Java Heap? 1- Desarrollo x
Mandatorio - Java admite tipos de datos primitivos: byte, boolean, char, short, int,
Java Core Por qué Java no es un lenguaje orientado a objetos puro? float, long y double y, por lo tanto, no es un lenguaje orientado a objetos puro. 1- Desarrollo x
Mandatorio - Si, puede haber dos o más métodos estáticos en una clase con el
Java Core ¿Se pueden sobrecargar los métodos estáticos? mismo nombre pero diferentes parámetros de entrada. 1- Desarrollo x
Mandatorio - No,la declaración de métodos estáticos que tienen la misma firma se
puede hacer en la subclase, pero el polimorfismo en tiempo de ejecución no puede
tener lugar en tales casos.
El polimorfismo en overriding o dinámico se produce durante el tiempo de ejecución,
pero los métodos estáticos se cargan y comparan estáticamente en el tiempo de
Java Core ¿Se pueden sobre escribir los métodos estáticos? compilación. Por tanto, estos métodos no se pueden sobreescribir. 1- Desarrollo x
Tema (Tag) Pregunta Ayuda Tipo de Pregunta (Question_type)
#Version Seniority @
(Text) (Helper) Pregunta Trainee Junior SSr Senior Lead
Mandatorio - Área de almacenamiento: en Strings, el string sirve como área de
almacenamiento. Para StringBuilder y StringBuffer, la memoria dinámica es el área
de almacenamiento.
Mutabilidad: un string es inmutable, mientras que tanto StringBuilder como
StringBuffer son mutables.
Eficiencia: es bastante lento trabajar con un string. Sin embargo, StringBuilder es el
más rápido en realizar operaciones. La velocidad de un StringBuffer es más que un
String y menos que un StringBuilder. (Por ejemplo, agregar un carácter es más
rápido en StringBuilder y muy lento en String porque se requiere una nueva memoria
para el nuevo String con carácter agregado).
Seguro para subprocesos: en el caso de un entorno con subprocesos, se utilizan
StringBuilder y StringBuffer, mientras que no se utiliza String. Sin embargo,
StringBuilder es adecuado para un entorno con un solo subproceso, y StringBuffer
Java Core ¿Cómo diferenciarías entre String, StringBuffer y StringBuilder? es adecuado para varios subprocesos. 1- Desarrollo x
Mandatorio - El atributo se puede declarar junto con el uso de la palabra clave
Java Core ¿Cómo bloquear la serialización de atributos de una clase en Java? transient 1- Desarrollo x
Mandatorio - Es el proceso de crear una copia exacta de cualquier objeto. Para
soportar esto, una clase java tiene que implementar la interfaz Cloneable del
paquete java.lang y sobre-escribir el método clone () proporcionado por la clase
Java Core ¿Qué es la clonación de objetos y cómo se hace en Java? Object 1- Desarrollo x
Es posible importar la misma clase o paquete dos veces en Java y qué le sucede Mandatorio - Es posible importar una clase o paquete más de una vez, sin embargo,
Java Core durante el tiempo de ejecución? es redundante porque la JVM carga internamente el paquete o la clase solo una vez. 1- Desarrollo x
Mandatorio - NO. Debemos comprender que la importación de los subpaquetes de
En caso de que un paquete tenga subpaquetes, ¿será suficiente importar solo el un paquete debe realizarse de forma explícita. La importación del paquete principal
paquete principal? p.ej. ¿La importación de com.myMainPackage. * También solo da como resultado la importación de las clases dentro de él y no el contenido de
Java Core importa com.myMainPackage.mySubPackage. *? sus subpaquetes o subpaquetes secundarios. 1- Desarrollo x
Mandatorio - StringBuffer es de naturaleza mutable y dinámica, mientras que String
es inmutable. Cada actualización / modificación de String crea una nueva String
sobrecargando así el grupo de cadenas con objetos innecesarios. Por lo tanto, en
los casos de muchas actualizaciones, siempre se prefiere usar StringBuffer ya que
Cuál entre String o String Buffer debería preferirse cuando hay muchas reducirá la sobrecarga de la creación de múltiples objetos String en el grupo de
Java Core actualizaciones necesarias para realizar en los datos? cadenas. 1- Desarrollo x
Mandatorio - No habría ningún error de compilación. Pero luego se ejecuta el
Qué sucede si el modificador static no está incluido en la firma del método main en programa, dado que la JVM no puede mapear la firma del método principal, el
Java Core Java? código arroja el error "NoSuchMethodError" en el tiempo de ejecución. 1- Desarrollo x
Mandatorio - El programa no se puede compilar porque el compilador dice que el
Java Core Qué sucede si hay varios métodos main dentro de una clase en Java? método ya ha sido definido dentro de la clase. 1- Desarrollo x
Mandatorio - Sí, el concepto se puede denominar como encadenamiento de
Java Core Puedes llamar a un constructor de una clase dentro del otro constructor? constructores y se puede lograr usando this (). 1- Desarrollo x
Microservice Architecture ¿Cual es tu experiencia en desarrollo y aplicación de microservicios? Breve descripion de sus ultimas experiencias, tecnologias y metodologias utilizadas 1- Desarrollo x
Mandatorio - Son un enfoque arquitectónico y organizativo para el desarrollo de
software donde el software está compuesto por pequeños servicios independientes
Microservice Architecture ¿Qué son los microservicios? que se comunican a través de API bien definidas 1- Desarrollo x
Mandatorio - *MS tiene un startup más rápido que un monolito
*MS es arquitectura poco acoplada, el monolito es altamente acoplado
*Los cambios en el modelo de datos de un MS no afectan a los otros MS, en un
monolito afectan a toda la base de datos
¿Cuáles son las principales diferencias entre microservicios y la arquitectura *MS se enfoca en productos no proyectos, en el monolito se pone enfasis en todo el
Microservice Architecture monolítica ? proyecto. 1- Desarrollo x
Mandatorio - * Diversidad tecnológica
* Aislamiento de fallos
* Mayor soporte para equipos pequeños y en paralelo
* Despliegue independiente
Microservice Architecture Mencione ventajas del uso de microservicios * Tiempo de despliegue reducido 1- Desarrollo x
Mandatorio - Se refiere a que no se pueden realizar más acciones en el medio de
comunicación, solo transporta datos a través del canal, el cual además puede ser
Microservice Architecture Explique a que se refiere el termino "dumb pipes" reemplazado. 1- Desarrollo x
Mandatorio - Cada microservicio dispone y administra su propia información. Puede
compartir su modelo de datos, pero el objetivo es lograr responsabilidad y autonomía
Microservice Architecture Explique a que se refiere con "Descentralización del manejo de datos" de la información que administra. 1- Desarrollo x
Mandatorio - Es una capa de infraestructura dedicada que se puede agregar a las
aplicaciones. Permite agregar de manera transparente capacidades como la
observabilidad, gestión del tráfico y seguridad, sin agregarlas al código de la
Microservice Architecture ¿Qué es Service Mesh? aplicación. 1- Desarrollo x
Mandatorio - Se tienen 2 entornos completos. El Blue es el que se está ejecutando y
el Green es al que desea actualizar. Una vez que se cambie el entorno de Blue a
Microservice Architecture Explique del despliegue Blue Green Green, el tráfico se dirige a el entorno Green nuevo. 1- Desarrollo x
Mandatorio - Proporciona un punto único de acceso al sistema,
Todas las solicitudes de los clientes llegan primero a API Gateway y API Gateway
Microservice Architecture Explique el patrón api gateway enruta la solicitud al microservicio correcto. 1- Desarrollo x
Mandatorio - Es un patrón de diseño. Es típico que una solicitud pueda abarcar
varios servicios. Para cualquier solicitud, si uno de los servicios involucrados en la
respuesta no funciona, se utiliza un disyuntor para detener el proceso de solicitud y
Microservice Architecture ¿Qué es Circuit Breaker en microservicios? respuesta. 1- Desarrollo x
Mandatorio - Reduce gradualmente las funcionalidades del monolito, exponiendolas
a través de microservicios. La "aplicación estranguladora" contiene las
funcionalidades que antes residian en el monilito más servicios que imlementan
Microservice Architecture ¿En qué consiste el patrón "strangler application"? nuevas funcionalidades. 1- Desarrollo x
Mandatorio - Propone separar el modelo de datos de escritura del modelo de datos
de lectura. Esta separación permite decidir si los servicios de lectura y escritura
deben coexistir en el mismo almacén de datos o administrarse en otros
Microservice Architecture ¿En qué consiste el patrón CQRS? completamente diferentes. 1- Desarrollo x
Mandatorio - Permite implementar una transacción de negocio que abarque varios
MS, cada uno de ellos con una transacción local publicando un evento o mensaje
para activar la siguiente, si se produce una falla, entonces se generan acciones
Microservice Architecture Explique el patrón SAGA compensatorias para deshacer las transacciones. 1- Desarrollo x
Mandatorio - Cuando se requiere realizar seguimiento a una petición que involucra a
Microservice Architecture ¿Cuándo aplicar el patron distributed tracing? más de un microservicio. 1- Desarrollo x
Mandatorio - * Test unitarios
* Test de integración
* Test end-to-end
Microservice Architecture ¿Qué tipos de test son utilizados en microservicios? 1- Desarrollo x
Mandatorio - * Sistemas pequeños
* Funcionalidades o data que no es posible separar (entremezclada)
* Si el sistema es muy sensible al performace
* Cuando se requiere algo rápido (y no necesariamente perfecto)
* No recibirá actualizaciones.
Microservice Architecture ¿Cuando no usar Microservicios? 1- Desarrollo x
Mandatorio - Es un enfoque para enfrentar desarrollo de sistemas complejos que se
centra en el dominio o conocimiento de quienes lo van a utilizar, existiendo una
Microservice Architecture ¿Qué entiende por Domain Driven Design? fuerte conexión entre los conceptos utilizados en la implementación y el negocio. 1- Desarrollo x
Mandatorio - A utilizar un lenguaje común entre desarrolladores y usuarios de un
Microservice Architecture ¿A qué se refiere el concepto "Lenguaje ubicuo"? dominio especifico, de manera que el dominio pueda explicarse fácil. 1- Desarrollo x
Mandatorio - Alta cohesión hace referencia que se mantengan las piezas de código
¿A qué se refiere la frase "Alta cohesión y bajo acoplamiento"? que estan relacionadas en un único lugar (módulo), mientras que bajo acoplamiento
Microservice Architecture (High Cohesion and Low Coupling) trata sobre mantener independiente lo mas posible cada módulo. 1- Desarrollo x
Mandatorio - Es una situación donde un único evento resulta en transacciones sobre
Microservice Architecture ¿Qué entiende por transacción distribuida? dos o más repositorios de datos. 1- Desarrollo x
Mandatorio - La orquestación requiere de un control activo que guie y conduzca el
proceso, mientras que coreografía no, cada componente conoce su
Microservice Architecture ¿Cuál sería la diferencia entre orquestación y coreografía? trabajo/responsabilidad. 1- Desarrollo x
Dependency
Management ¿Cual es tu experiencia con gestores de dependencias? Breve descripion de sus ultimas experiencias, tecnologias y metodologias utilizadas 1- Desarrollo x
Dependency
Management ¿Qué es Maven? Mandatorio - Maven es una herramienta de gestión de proyectos 1- Desarrollo x
Dependency Mandatorio - Gestión de dependencias,Biblioteca enorme, se puede trabajar
Management ¿Cuáles son las características principales de Maven? fácilmente en varios proyectos al mismo tiempo,fácil de usar,rapido 1- Desarrollo x
Mandatorio - Clean: limpia los artefactos creados por compilaciones anteriores.
Dependency Build: se utiliza para crear la aplicación
Management ¿Mencione los tres ciclos de vida de compilación de Maven? Site: Genera un sitio web con la información de nuestro proyecto. 1- Desarrollo x
Mandatorio - Genera código fuente (si se usa el código generado automáticamente)
Genera documentación a partir del código fuente
Compila el código fuente
Paquetes de código compilado en un archivo JAR o ZIP
Dependency Instala el código empaquetado en el repositorio local, el repositorio del servidor o el
Management ¿Qué hace la herramienta de Build? repositorio central 1- Desarrollo x
Dependency Mandatorio - Es un archivo XML que contiene la información sobre el proyecto y los
Management Explique qué es POM detalles de configuración utilizados para construir un proyecto por Maven. 1- Desarrollo x
Dependency Mandatorio - Un artifact es un archivo JAR que se coloca en un repositorio de
Management Explique qué es el artifact. Maven. 1- Desarrollo x
Mandatorio - Es el lugar donde todos los jar del proyecto, jar de biblioteca,
Dependency complementos o cualquier otro artifact relacionado con el proyecto en particular se
Management ¿Qué es el repositorio de Maven y cuáles son sus tipos? almacenan. Los tipos son local,central y remoto. 1- Desarrollo x
Mandatorio - Compile
Provided
Runtime
Test
Dependency System
Management ¿Cuales son los scopes de las dependencias en Maven? Import 1- Desarrollo x
Mandatorio - Validate
Compile
Test
Verify
Dependency Install
Management Enumere cuáles son las fases de construcción en Maven. Deploy 1- Desarrollo x
Tema (Tag) Pregunta Ayuda Tipo de Pregunta (Question_type)
#Version Seniority @
(Text) (Helper) Pregunta Trainee Junior SSr Senior Lead
Validate: Asegura que el proyecto sea correcto y que tengas toda la información
necesaria.
Test: Prueba el código fuente compilado utilizando un framework de test unitario
apropiado.
Compile: Compila el código fuente del proyecto.
Verify: Realiza las comprobaciones necesarias en los resultados de las pruebas de
integración para garantizar que se cumplan los criterios de calidad.
Install: Agrega el paquete al repositorio local, lo que permite que se use como una
dependencia en otros proyectos.
Dependency Deploy: Copia el paquete completo en el repositorio remoto para compartirlo con
Management ¿Podes explicar alguna/s de las fases dentro del life cycle de Maven? otros desarrolladores y organizaciones, y se realiza en el entorno de compilación. 1- Desarrollo x
Mandatorio - Parent Pom
Project Pom
Settings
Dependency Parametros por CLI
Management Indique cuál es el orden de herencia de los Maven. 1- Desarrollo x
Mandatorio - dependencias del proyecto
complementos
perfiles para el build
versión del proyecto
Dependency desarrolladores
Management ¿Qué información contiene POM? lista de correo 1- Desarrollo x
Mandatorio - Primero lee el archivo pom.xml
descarga las dependencias definidas en pom.xml en el repositorio local desde el
repositorio central.
Dependency Por último, crea y genera un informe según los requisitos, y ejecuta ciclos de vida,
Management ¿Cómo funciona Maven? fases, objetivos, complementos, etc. 1- Desarrollo x
Dependency ¿Qué es Gradle? Mandatorio - Gradle es un sistema construido de código abierto cuyo trabajo
Management principal es llevar los recursos del proyecto y el código fuente 1- Desarrollo x
Dependency Mandatorio - Gradle usa un lenguaje de programación que está escrito en forma de
Management ¿Que es Groovy? script, y el nombre de ese script es Groovy 1- Desarrollo x
Mandatorio - Obtiene las mejores características de Ant y Maven,Es flexible debido a
Dependency Ant y proporciona conversión de administración de dependencia de configuración
Management ¿Cuáles son los beneficios de trabajar con Gradle? debido a complementos de Maven. 1- Desarrollo x
Dependency
Management ¿Cuál es el nombre de archivo creado por Gradle? Mandatorio - Build.gradle 1- Desarrollo x
Dependency Mandatorio - Se especifica la configuración de dependencia en el archivo build.
Management ¿Cómo se pueden incluir las dependencias de Gradle? gradle. 1- Desarrollo x
Mandatorio - Build.gradle Script opera en Groovy, que es el lenguaje de
programación oficial de Gradle. Además, el script de compilación se ejecuta en
sintaxis.
Dependency Maven Build.xml tiene dos atributos cruciales que lo definen: etiquetas de fin y
Management ¿Diferenciar entre Build.gradle Script y Maven Build.xml? etiquetas de inicio. 1- Desarrollo x
Mandatorio - Es un tipo de sistema de compilación automatizado que es de código
abierto y crea compilaciones sobre los conceptos de Apache Ant y Maven. Utiliza un
lenguaje específico de dominio (DSL) que se basa en Groovy para declarar la
Dependency configuración del proyecto. No utiliza el formulario XML que utiliza Maven para esta
Management ¿Qué es Gradle Framework? declaración. 1- Desarrollo x
Dependency
Management Nombre el idioma que necesita para crear el complemento. Mandatorio - Para crear un complemento, necesita el lenguaje JVM. 1- Desarrollo x
Repositorio local: el repositorio local es un directorio en el dispositivo del
desarrollador. El repositorio local contiene todas las dependencias de Maven.
Aunque varios proyectos se basan en dependencias, Maven solo necesita
descargarlos una vez.
Repositorio central: la comunidad de Maven ha creado el repositorio central de
Maven. Maven busca en este repositorio central cualquier dependencia que no esté
disponible en su repositorio local. Posteriormente, Maven descarga las
dependencias en su repositorio local.
Repositorio remoto: Maven puede descargar dependencias desde un repositorio
remoto alojado en un servidor web. Se utiliza con frecuencia para albergar proyectos
Dependency de organización interna. Posteriormente, Maven descarga las dependencias en su
Management Mencione tipos de repositorios en Maven. repositorio local. 1- Desarrollo x
Dependency
Management ¿Que comando puedo utilizar para instalar archivos Jar en un repositorio local? Usando mvn install. 1- Desarrollo x
Crear archivos JAR o WAR.
Compilar codigo fuente.
Dependency Realizar test unitarios.
Management ¿Para que puedo llegar a usar un plugin de Maven? Crear documentación del proyecto o generar reportes. 1- Desarrollo x
Version Control ¿Cual es tu experiencia en herramientas y procesos de control de versiones? Breve descripion de sus ultimas experiencias, tecnologias y metodologias utilizadas 1- Desarrollo x
Mandatorio - GIT es un sistema de control de versiones distribuido y un sistema de
Version Control ¿Qué es GIT? administración de código fuente (SCM) 1- Desarrollo x
Mandatorio - Contener todos la metadata del repositorio y mantener un seguimiento
de todos los cambios realizados en los archivos del repositorio, manteniendo un
Version Control ¿Cuál es la función del directorio .git? historial de commits. 1- Desarrollo x
Version Control ¿Cómo se puede crear un repositorio en GIT? Mandatorio - Con el comando: git init 1- Desarrollo x
Version Control ¿Podes explicar alguna politica de branching o metodologia de trabajo? Algunos de los siguientes flujos: Gitflow, githubflow, Trunk based, etcetera 1- Desarrollo x
Mandatorio - git pull trae los cambios o commits de un brach en particular desde un
respositorio central y actualiza el branch local.
Version Control ¿Cuál es la diferencia entre "git pull" y "git fetch"? git fetch tambien trae los cambios pero los guarda en un branch local nuevo. 1- Desarrollo x
Version Control ¿Para qué sirve git remote? Mandatorio - Permite crear, ver y eliminar conexiones a otros repositorios. 1- Desarrollo x
Version Control ¿Cuál es la función de git clone? Mandatorio - Permite crear una copia de un repositorio de git existente. 1- Desarrollo x
Version Control ¿Cuál es una alternativa a git merge? Mandatorio - git rebase 1- Desarrollo x
Version Control ¿A qué corresponde el staging area? Mandatorio - A los archivos que van a ser parte del próximo commit 1- Desarrollo x
Mandatorio - Elimina un archivo del repositorio, eliminandolo del sistema de archivo
Version Control ¿Que hace el comando "git rm"? y agregando esa eliminación al staging area 1- Desarrollo x
Mandatorio - almacenar temporalmente un snapshot de los cambios de un branch
Version Control ¿Cual es proposito del stash? sin tener que comitearlos al repositorio 1- Desarrollo x
Mandatorio - Es un tipo de control de versiones en el que el código base completo,
incluido su historial de versiones completo, se refleja en la computadora de cada
Version Control ¿Qué es un sistema de control de versiones distribuido? desarrollador. 1- Desarrollo x
Mandatorio - Se pierde el seguimiento del historial del proyecto. El repositorio no
Version Control ¿Qué pasa si se elimina el directorio .git? estará más bajo un control de versiones. 1- Desarrollo x
Mandatorio - Permite corregir el último commit. Mezcla los cambios que se
encuentran en el staging area con los del útimo commit en vez de generar uno
Version Control ¿Qué función cumple el comando "git commit -ammend"? nuevo. 1- Desarrollo x
Mandatorio - Apply permite aplicar los cambios en el branch en curso sin eliminarlos
Version Control ¿Cuál es la diferencia entre "git stash apply" y "git stash pop"? del stash, Pop los elimina del stash. 1- Desarrollo x
Mandatorio - Es una herramienta de control de versiones open source basada en un
Version Control ¿Qué es apache subversion? repositorio cuyo funcionamiento se asemeja al de un sistema de archivos 1- Desarrollo x
Version Control ¿Qué es el trunk en svn? Mandatorio - Es la linea principal de desarrollo en un repositorio de svn. 1- Desarrollo x
Mandatorio - Con svn commit se llevan los cambios locales que uno ha realizado al
repositorio central, mientras que con svn update se traen los cambios que otros han
Version Control ¿Cuál es la diferencia entre svn commit y svn update? realizado desde al repositorio central al local. 1- Desarrollo x
Mandatorio - Es un servicio de hosting de repositorios de Git, además de agrega sus
Version Control ¿Qué es github? propias características como issue tracker, wiki, herramientas de cicd. 1- Desarrollo x
Mandatorio - * GitHub
* GitLab
* BitBucket
* Beanstalk
* CodeCommit
* SourceForge
GitHub
Es un servicio. Esta hosteado en un servidor web. Tiene features de gestion de
Version Control ¿Que diferencias hay entre GIT y Github? usuarios. 1- Desarrollo x
GIT
Es un sistema de control de versiones distribuido y descentralizado.
Almacena el contenido de la información en forma de metadatos.
La rama master o main contiene el ultimo release estable.
Muy poco apto para el almacenamiento de archivos pesados.
SVN
Es un sistema de control de version centralizado.
Almacena la información en forma de archivos.
El directorio Trunk tiene la ultima version estable.
Version Control ¿Cuales dirias que son las diferencias màs importantes entre Git y Svn? Tiene mayor capacidad para la gestion de archivos grandes. 1- Desarrollo x
Spring ¿Cual es tu experiencia utilizando Spring? Breve descripion de sus ultimas experiencias, tecnologias y metodologias utilizadas 1- Desarrollo x
Mandatorio - Es un framework de codigo abierto creado para reducir la complejidad
Spring ¿Qué es spring framework? del desarrollo de aplicaciones empresariales con Java. 1- Desarrollo x
Tema (Tag) Pregunta Ayuda Tipo de Pregunta (Question_type)
#Version Seniority @
(Text) (Helper) Pregunta Trainee Junior SSr Senior Lead
Arquitectura en capas lo que permite seleccionar componentes de forma flexible y
robusta para nuestra aplicacion.
Modulo de AOP para aplicar en desarrollo la correcta separación entre logica de
negocio y cross cutting concerns.
Modulo de MVC con fuertes capacidad de configuración.
Creación y gestion de configuraciónes y definición de los ciclos de vida de los
objetos.
Diseñado para aprovechar el patron de Ioc e inyectar dependencias a los objetos de
manera sencilla.
Provee una capa abstracta de gestion de transacciones.
Provee una API que permite la conversión de excepciones especificas de ciertas
tecnologias a excepciones unchecked consistentes. Simplificando el manejo de
Spring ¿Podes mencionar algunos features que provee Spring Framework? excepciones. 1- Desarrollo x
Mandatorio - A través de Setter, Contructor y de atributos usando anotaciones o por
Spring ¿Cómo se puede inyectar beans en Spring? configuración de archivos xml. 1- Desarrollo x
Los beans son objetos que son instanciados ,administrados y configurados por el
Spring ¿Qué es un bean en spring? contendor de IoC de Spring. 1- Desarrollo x
Spring ¿Cuál es el scope por defecto de un bean? Mandatorio - Singleton 1- Desarrollo x
Singleton: Una sola instancia por contenedor IoC
Prototype: La cantidad de instancias pueden ser n.
Request: El scope esta asociado a un HTTP request.
Session El scope del bean esta asociado a un sesion HTTP.
Spring Mencione todos los scopes de los beans que recuerde y para que sirven. Global-session: Esta asociado a una sesión global HTTP. 1- Desarrollo x
El contenedor de Spring debe conocer que beans son necesarios y como se
interrelacionan entre si en base a sus dependencias. Este fenomeno de combinar
Spring ¿Que entendes por wiring o autowiring de beans? unos con otros se llama Bean wiring. 1- Desarrollo x
Mandatorio - Es un concepto que trata sobre que los objetos no son creados
manualmente sino que se describe como deben crearse, un contenedor de IoC
Spring ¿Qué es la inyección de dependencias? instanciará las clases requeridas de ser necesarias. 1- Desarrollo x
Mandatorio - Cuando se usa sin argumentos le dice a spring que scaneé el package
actual y sus subpackages, cuando se le da argumento, entonces escanea el
Spring ¿Que realiza @ComponentScan? package indicado. 1- Desarrollo x
Mandatorio - Es un framework utilizado para el desarrollo rápido de aplicaciones con
Java, tiene soporte para la autocofiguración y servidores de aplicación embebidos
Spring ¿Qué es spring boot? como tomcat y jetty. 1- Desarrollo x
JPA: Es una especificación que define interacción con base de datos mediante
objetos.
Hibernate: Implementación de JPA, gestiona el mapeo Objeto Relacional.
Spring Data JPA: Capa de abstracción sobre la implementación de JPA. Por ejemplo
Spring ¿Que diferencias hay entre JPA, Hibernate y Spring Data? Spring Data tiene facilidades para aplicar con menos boilerplate Hibernate.
Mandatorio - Es equivalente a utilizar @Configuration, @EnableAutoConfiguration y
Spring ¿Qué realiza de forma interna la anotación @SpringBootApplication? @ComponentScan con sus atributos por defecto. 1- Desarrollo x
Mandatorio - Es una aplicación web que ayuda a crear una estructura inicial de un
proyecto de Spring Boot. Resuelve el problema de configurar el framework cuando
Spring ¿Qué es Spring Initializr? está comenzando un proyecto desde cero. 1- Desarrollo x
Spring ¿Es posible cambiar el puerto por defecto del servidor de aplicaciones embebido? Mandatorio - Si es posible, usando la propiedad server.port en application.properties. 1- Desarrollo x
Mandatorio - Permite crear un controlador restful, convierte las respuestas en json o
Spring ¿Qué realiza la anotacion @RestController? xml. Es la combinación entre @Controller y @ResponseBody. 1- Desarrollo x
Spring ¿Para qué son utilizados los profiles? Mandatorio - Los profile permiten mantener las configuraciones sep 1- Desarrollo x
Mandatorio - Es una especificación para persistir data entre un objeto Java y una
Spring ¿Qué es Spring JPA? base de datos relacional. 1- Desarrollo x
¿Es JPA quién realiza directamente las tareas de acceso, persistencia y Mandatorio - No, JPA es solo la especificación, Las herramientas que implementan
Spring administración de la data? JPA como Hibernate son quienes realizan esas tareas. 1- Desarrollo x
Mandatorio - Las entity son pojos que representan la data que puede ser persistida
en la base de datos. Cada entity corresponde a una tabla de la base de datos. Cada
Spring ¿Qué es una entity? instancia de la entity corresponde a una fila de la tabla. 1- Desarrollo x
Mandatorio - Permite definir si un atributo de tipo enum será almacenado por nombre
Spring ¿Qué función cumple la anotación @Enumerated? o número ordinal. 1- Desarrollo x
Mandatorio - No, permite redefnir opcionalmente el nombre de la columna a la que
Spring ¿La anotación @Column es requerida para mapear campos a columnas? se mapea el campo de la entity. 1- Desarrollo x
Mandatorio - Es una caracteristica de spring boot que configura automáticamente la
Spring ¿Qué es la autocofiguración en spring boot? aplicación de acuerdo a los jar añadidos como dependencia. 1- Desarrollo x
Mandatorio - Es posible concoer esa información levantando la aplicación con el flag
Spring ¿Cómo identificar cuales auto configuraciones realizo spring boot al iniciar? --debug o mediante spring boot actuator 1- Desarrollo x
Mandatorio - @SpringBootApplication(exclude = DataSourceAutoConfiguration.
class) o por medio de application.properties
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.
Spring ¿Cómo se deshabilita la autoconfiguración de una clase en particular? DataSourceAutoConfiguration 1- Desarrollo x
Ayuda a crear aplicaciones standalone rapidamente.
Ofrece dependencias starters para configurar rapidamente la aplicacion.
Provee servidores embedidos como Tomacat, Jetty,etc. Lo que falicita tambien su
contenerización.
La autoconfiguración facilita la configuración de la aplicación no solo por la definición
de sus beans sino que más alla utilizando incluso dependencias.
Provee soporte listo para producción como monitoreo, metricas y gestion de
Spring ¿Que ventajas nos trae SprinBoot? aplicaciones (por ejemplo actuator). 1- Desarrollo x
Spring AOP provee la plataforma para agregar de forma sencilla y configurable el
código necesario para resolver cross cutting concerns y que se apliquen antes,
Spring ¿Podes explicar Spring AOP con tus palabras? despues o "alrededor" de la logica actual. 1- Desarrollo x
Database ¿Cual es tu experiencia utilizando Base de datos relacionales? Queremos conocer el background que tiene usando bases de datos relacionales 1- Desarrollo x
Database ¿Cual es tu experiencia utilizando Base de datos NoSQL? Queremos concoer el background utilizando bases de datos nosql. 1- Desarrollo x
Mandatorio - (RDBMS) se basa en un modelo relacional de datos que se almacenan
en bases de datos en tablas separadas y están relacionados con el uso de una
columna común. Se puede acceder fácilmente a los datos desde la base de datos
Database Define el termino Relational Database Management System (RDBMS) relacional mediante el lenguaje de consulta estructurado (SQL). 1- Desarrollo x
Mandatorio - DBMS son las siglas de Database Management System. Es una
colección de programas de aplicación que permiten al usuario organizar, restaurar y
recuperar información sobre datos de la manera más eficiente y efectiva posible.
Database Define el Termino Stands for Database Management System (DBMS) Algunos de los DBMS más populares son MySql, Oracle, Sybase, etc. 1- Desarrollo x
Mandatorio -
- Los datos se almacenan de forma estructurada y, por tanto, se controla la
redundancia.
- Valida los datos ingresados y proporciona restricciones sobre el acceso no
autorizado a la base de datos.
- Proporciona copia de seguridad y recuperación de los datos cuando es necesario.
Database ¿Cuales son las caracteristicas mas relevantes de un DBMS ? - Proporciona múltiples interfaces de usuario. 1- Desarrollo x
Mandatorio - La duplicación de datos en la base de datos se conoce como
redundancia de datos. Como resultado de la redundancia de datos, los datos
duplicados están presentes en múltiples ubicaciones, por lo tanto, se desperdicia el
Database ¿Que se entiende por Data Redundancy? espacio de almacenamiento y se destruye la integridad de la base de datos. 1- Desarrollo x
Son las propiedas relacionadas a las transacciones:
Atomicity: Asegura que se aplica todo o nada en cuanto al grupo de sentencias que
engloba la transaccion.
Consistency: Los valores insertados en la base de datos son consistenes. El estado
en que queda la base de datos es valido y operable siempre.
Isolation: Las transacciones son independientes entre si. No deberian tener
conocimiento entre ellas.
Database ¿Que significa ACID? Durability: Los datos no se pierden incluso en el fallo de un servidor. 1- Desarrollo x
Mandatorio -
- Uno a uno: una tabla tiene una relación con otra tabla que tiene un tipo de
columna similar. Cada clave primaria se relaciona con un solo registro o con ningún
registro en la tabla relacionada.
- Uno a varios: una tabla tiene una relación con otra tabla que tiene relaciones de
clave principal y externa. La tabla de clave primaria contiene solo un registro que se
relaciona con ninguno, uno o muchos registros en la tabla relacionada.
- Varios a varios: cada registro de ambas tablas puede relacionarse con muchos
Database ¿Que tipos de relaciones existen en un modelo de base de datos entidad relación? números de registros de otra tabla. 1- Desarrollo x
Mandatorio - La normalización es el proceso de eliminar datos redundantes de la
base de datos dividiendo la tabla de una manera bien definida para mantener la
integridad de los datos. Este proceso ahorra gran parte del espacio de
almacenamiento.
NoSQL
- Funciona con el sistema de base de datos distribuida.
- Horizontalmente escalable.
- Los sistemas son dinámicos y flexibles.
- Perfecto para el almacenamiento de datos jerárquicos.
Database ¿Diferencias entre NoSQL y Base de Datos Relacional? - No apto para consultas complejas. 1- Desarrollo x
Mandatorio - El nodo de replicación administra los datos en un almacén de base de
datos NoSQL y es el principal consumidor de memoria. El tamaño de la memoria
caché y el montón de Java que utiliza el nodo de replicación pueden ser factores de
rendimiento importantes. De forma predeterminada, NoSQL DB calcula el montón y
la caché del nodo de replicación en función de la cantidad de memoria disponible
Database ¿Cómo funciona NoSQL DB budget memory? para el nodo de almacenamiento. 1- Desarrollo x
Mandatorio - Los ¨constraints¨ son comandos que se usan para destacar y
Database ¿Qué es un constraint? especificar la cantidad de un tipo de datos específico usado en una tabla única. 1- Desarrollo x
Mandatorio - Un índice es considerado como uno de los factores más importantes en
el rendimiento del proceso de optimización. Los índices son creados para hacer más
rápida la recuperación de información y las operaciones de procesamiento de
consultas de una tabla de base de datos o vista, al proveer rápido acceso a las filas
de la tabla de base de datos, sin la necesidad de escanear toda la información de la
Database ¿Qué es un índice en concepto de SQL? tabla, para poder recuperar la información requerida. 1- Desarrollo x
Mandatorio - Al Motor SQL le toma menos tiempo escanear la tabla subyacente que
atravesar el índice cuando se busca una información específica. En este caso, el
índice no será usado pero todavía va a afectar negativamente el rendimiento de las
operaciones de modificación de información, como siempre será ajustado al
Database ¿Por qué no es recomendado crear índices en tablas pequeñas? modificar la información de la tabla subyacente. 1- Desarrollo x
Mandatorio - Amazon Neptune es un servicio de base de datos de gráficos rápido,
fiable y completamente administrado que le permite crear y ejecutar fácilmente
Database ¿Que se entiende por AWS Neptune Database? aplicaciones que funcionen con conjuntos de datos altamente conectados. 1- Desarrollo x
Mandatorio - Un “datawarehouse” realiza una función similar a un almacén real, pero
con datos.
En la práctica, eso significa nunca concatenar los datos que obtiene de los usuarios,
Security ¿Como Solventar Un Ataque con Sql Injection? ya sea de campos de formulario, parámetros de URL u otras fuentes. 1- Desarrollo x
Deseable - Los ataques de inyección LDAP son similares a los ataques de inyección
SQL. Estos ataques abusan de los parámetros utilizados en una consulta LDAP. En
la mayoría de los casos, la aplicación no filtra los parámetros correctamente. Esto
podría conducir a un entorno vulnerable en el que el pirata informático puede
inyectar código malicioso.
Los entornos que son más vulnerables a los ataques de inyección LDAP incluyen
Security ¿Que es LDAP injection? ADAM y OpenLDAP. 1- Desarrollo x
Tema (Tag) Pregunta Ayuda Tipo de Pregunta (Question_type)
#Version Seniority @
(Text) (Helper) Pregunta Trainee Junior SSr Senior Lead
Función como servicio (FaaS): Función como servicio (FaaS) ofrece una
plataforma para que los clientes creen, gestionen y ejecuten funcionalidades de
aplicaciones sin la dificultad de mantener la infraestructura. De este modo, se puede
Cloud ¿Qué quiere decir con modelos de entrega en la nube? lograr una arquitectura "sin servidor". 1- Desarrollo x
Deseable - Hay dos modelos de implementación principales de la nube: público y
privado .
Consumidores de la nube
¿Cuáles son los componentes principales que forman parte del ecosistema de la Clientes directos
Cloud nube? Proveedores de servicios en la nube 1- Desarrollo x
Deseable - Los mecanismos de los dispositivos de almacenamiento en la nube
proporcionan niveles comunes de almacenamiento de datos, como:
Objetos : los datos y los metadatos asociados con ellos se organizan como recursos
basados en la web. Cada uno de los niveles de almacenamiento de datos
anteriores está asociado con un cierto tipo de interfaz técnica. Esta interfaz
corresponde a un tipo particular de dispositivo de almacenamiento en la nube y al
Cloud ¿Cuáles son los niveles de almacenamiento en la nube? servicio de almacenamiento en la nube utilizado para exponer su API. 1- Desarrollo x
Deseable - La razón por la que los microservicios son tan importantes para un
verdadero entorno de nube se debe a estos cuatro beneficios clave:
Los cambios de código serán más pequeños y menos complejos que con una
aplicación integrada compleja, lo que hará que sea más fácil y rápido realizar
cambios, ya sea para solucionar un problema o para actualizar el servicio con
nuevos requisitos.
Los monitores de uso de la nube pueden existir en diferentes formatos según el tipo
de métricas de uso que estén diseñados para recopilar y cómo se deben recopilar
los datos de uso. Los siguientes puntos describen 3 formatos comunes de
implementación basados en agentes.
Agente de supervisión
Agente de recursos
Cloud ¿Qué es el monitor de uso de la nube? Agente de sondeo 1- Desarrollo x
Deseable - Un contenedor es un código de software empaquetado junto con todas
sus dependencias para que pueda ejecutarse de manera uniforme en las nubes y en
las instalaciones. Este empaquetado de código a menudo se denomina
encapsulación. Encapsular el código es importante para los desarrolladores, ya que
no tienen que desarrollar código basado en cada entorno individual.
Cloud ¿Qué entiende usted por encapsulación en la computación en nube? 1- Desarrollo x
Deseable - La computación en la nube se compone de varios centros de datos
agrupados en forma de cuadrícula. Consiste en los centros de datos como:
Este tipo de testing consiste en probar de forma individual las funciones y/o métodos
(de las clases, componentes y/o módulos que son usados por nuestro software).
Las pruebas de integración verifican que los diferentes módulos y/o servicios usados
por nuestra aplicación funcionen en armonía cuando trabajan en conjunto.
Por ejemplo:
For every method, we need to have at least two unit test cases - a positive test case
and a negative test case.
If there are sub-requirements for a requirement, then those sub-requirements should
have their own positive and negative test cases.
Each test case should be independent of other test cases. If we make a chain of unit
test cases, then it would not be possible for finding the root cause of the test case
failures.
Mock all the external services that are used by the modules under test. This is
necessary because we do not want to unnecessarily debug our modules under test
due to the failures of the external systems.
Configuration settings need not be tested as they won’t be part of any unit code.
Even if we want to inspect the configuration, then test whether the loading code is
working or not.
The unit test cases should be named consistently and clearly. The names of the test
Unit Testing Mencione algunas buenas practicas para el armado de test unitarios. cases should be dependent on the operations that the test case would test. 1- Desarrollo x
Para probar metodos protegidos, las clases de prueba deben ser declaradas en el
Unit Testing ¿Como podemos testear metodos protegidos (protected)? mismo package que la clase a testear. 1- Desarrollo x
Unit Testing ¿Como puedo testear metodos privados? En un primer momento no es posible, deben ser cambiados a metodos protegidos. 1- Desarrollo x
En un primer momento lo más importante es testear todo lo que tenga valor para la
aplicación en cuanto a negocio o logica necesaria para que funcione y sea parte de
nuestro desarrollo.
El metodo que quiero testear tiene que poder ser probado de manera independiente.
No tiene sentido testear dependencias externas o código boilerplate.
Unit Testing ¿Es necesario testear todas las clases y metodos? ¿Que hay que tener en cuenta? 1- Desarrollo x
The code cyclomatic complexity is calculated based on the number of decision points
of the code that contributes to different execution paths.
Higher the cyclomatic complexity, the more difficult is to attain the required code
Unit Testing ¿Como se relaciona la complejidad ciclomatica con el testeo unitario? coverage. 1- Desarrollo x
@Test: Define el metodo como test
@ParameterizedTest:Define un test parametrizado
@BeforeEach:Permite definir un metodo que se ejecute previo a cada ejecucion de
los metodos de prueba definidos en la clase.
@BeforeAll: Permite definir un metodo que se ejecute previo a la ejecución de todos
los metodos de prueba definidos en la clase.
@AfterEach:Permite definir un metodo que se ejecute posterior a cada ejecucion de
los metodos de prueba definidos en la clase.
@AfterAll: Permite definir un metodo que se ejecute posterior a la ejecución de todos
los metodos de prueba definidos en la clase.
@Order:Permite ordenar la ejecución de los metodos de prueba.
@Skip:Permite saltearse un metodo
Unit Testing ¿Podes mencionar algun annotation importante en Junit y para que sirve? @DisplayName:Define un texto que funcione como nombre para la prueba. 1- Desarrollo x
Unit Testing ¿Para que sirve un assumption en Junit? Permite definir condiciones para aplicar el test o abortarlo si no lo cumple. 1- Desarrollo x
Following are some of the best practices that can be followed while coding to make
the code more testable:
Whenever mock is not set up, interaction on spy results in real method calls. Spy
objects allow verifying interactions such as whether the method was called and how
many times it was called, etc.
They provide flexibility for setting up partial mocks. For instance, if an object has 2
methods, and we want one method to be mocked and the other to be called actually,
then we can use spies.
The main difference between mock and spy is that in mock, we create a complete
fake object whereas, in spy, we have a hybrid of a real object and fake/stubbed
Unit Testing ¿Cuando y porque deberia usar un Spy? methods. 1- Desarrollo x
La cobertura es la extensión de código testeada.