wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

ED EVA2

Total questions: 99

Worksheet time: 55mins

Name
Class
Date
1.

tipo de prueba enfocada en verificar una sección específica dentro del código de un programa.

a)

Prueba unitaria

b)

Prueba de usabilidad

c)

Prueba de integración

2.

consisten en seleccionar a un grupo de usuarios de una aplicación y solicitarles que lleven a cabo las

tareas para las cuales fue diseñada.

a)

Prueba de usabilidad

b)

Prueba unitaria

c)

Prueba de integración

3.

combina distintos módulos de un programa y se comprueba cómo trabajan de forma conjunta.

a)

Prueba de integración

b)

Prueba de usabilidad

c)

Prueba unitaria

4.

conjunto de actividades que tratan de comprobar si un producto se está construyendo correctamente.

a)

Verificación

b)

Validación

5.

conjunto de actividades que tratan de comprobar si un producto es correcto.

a)

Validación

b)

Verificación

6.

Si queremos probar que un personaje de un videojuego hace un salto mortal cuando salta...

El objeto de prueba será asegurarnos que cuando el personaje salta, hace el salto mortal

El caso de prueba será pulsar el botón de salto para comprobar que hace el salto mortal

a)

Verdadero

b)

Falso

7.

¿cuál de las siguientes afirmaciones es cierta?

a)

Las pruebas de usabilidad se implementan con software

b)

Para realizar pruebas de usabilidad es necesario que el software esté finalizado, si no, los usuarios no podrán probarlo

c)

Las pruebas de integración se realizan después de las pruebas unitarias

d)

Normalmente suele haber una única prueba unitaria por cada método del programa

8.

Las fixtures (test fixture) siempre son necesarias antes o después de realizar una prueba

a)

Verdadero

b)

Falso

9.

¿cuál de las siguientes no es un principio a seguir cuando implementamos pruebas con JUnit?

a)

No debe ser repetido (debe ser único)

b)

Probar una sola cosa

c)

Tener un propósito claro

d)

Estar escrito de la forma más clara posible

e)

Todas las opciones son correctas

10.

Método de prueba y caso de prueba son sinónimos y nos referimos al mismo concepto

a)

Verdadero

b)

Falso

11.

¿cuál es el framework de java enfocado en al realización de pruebas unitarias?

(a)  

12.

¿Dentro de qué metodología se encuentra el desarrollo dirigido por pruebas? (TDD)

(a)  

13.

¿Qué nombre reciben los objetos que imitan el comportamiento de un tipo real de objetos?

(a)  

14.

¿cuál de las siguientes afirmaciones es falsa?

a)

En las pruebas de caja blanca, se analiza, entre otras cosas, si ante unos valores de entrada de un método, el flujo del

programa ejecuta los if, o los else, o entra en un bucle, o sale de él.

b)

Los casos de prueba son situaciones o contextos bajo los que se comprueba una funcionalidad de un programa es adecuada

c)

Las pruebas de software consisten en verificar y validar un producto de software

d)

Las pruebas de caja negra solo pueden aplicarse a las pruebas unitarias

15.

Una prueba de tipo caja blanca se centra en evaluar el valor de las salidas de un sistema a partir de unas entradas concretas, pero no

tiene en cuenta el funcionamiento interno del sistema.

a)

Verdadero

b)

Falso

16.

¿cuál de las siguientes definiciones corresponde mejor con la refactorización

a)

Grado con el que un software cumple con los requisitos especificados por el cliente o usuario

b)

Establecer y usar una serie de principios de ingeniería para obtener software económico, fiable, y eficiente

c)

Es una técnica de ingeniería del software que permite optimizar un código ya escrito sin cambiar su comportamiento.

d)

Uso de objetos y métodos que proveen de una serie de utilidades para trabajar optimizar el código

17.

¿Qué patrón de refactorización utilizaremos si queremos hacer que una variable local se vuelva un atributo de clase?

a)

Extract Constant

b)

Extract Local Variable

c)

Member Type to Top Level

d)

Convert Local Variable to Field

18.

¿cuál de las siguientes representaciones de enumerado en un diagrama de clases es correcta?

a)
b)
c)
d)
19.

¿Cuál de los siguientes procesos consiste en el conjunto de actividades que tratan de comprobar que un producto se está

construyendo correctamente?

a)

Pruebas de software

b)

Verificación

c)

Calidad del software

d)

Validación

20.

¿Cuál es la utilidad de Java para extraer y generar documentación directamente del código en formato HTML?

(a)  

21.

¿cuál de los siguientes tags nos permite indicar si un método está obsoleto?

a)

@deprecated_since

b)

@see

c)

@deprecated

d)

@version

e)

Ninguna de las opciones indicadas es correcta

22.

¿cuál de los siguientes bad smells se corresponde con la siguiente descripción "Las funciones deben tener

el mínimo número de

parámetros posible, siendo 0 lo perfecto"?

a)

Cambio divergente

b)

Clases muy grandes

c)

Lista de parámetros extensa

d)

Cirugía a tiros

23.

¿cuál de los siguientes aspectos no es necesario documentar en el código?

a)

Qué se debería revisar y modificar si hubiese tiempo para ello

b)

De qué se encarga una clase, paquete, método, variable...

c)

c. Todos los aspectos considerados deberían documentarse

d)

Cuál es el uso esperado de una variable o de ese método

24.

¿Qué comando usaremos para regresar al estado inicial de un commit un archivo llamado CameraPlayer.java?

(a)  

25.

¿Con qué se corresponde la siguiente definición?

Situación, contexto, o escenario bajo el que se comprueba una funcionalidad de un programa para ver si se comporta de la forma

esperada.

a)

Caso de prueba

b)

Planificación y Diseño de la prueba

c)

Objeto de la prueba

d)

Prueba unitaria

26.

¿Cuál de los siguientes símbolos nos sirve para hacer referencia a los paquetes en un diagrama de clases?

a)

-

b)

#

c)

+

d)

~

27.

Utilizar el una "bóveda" para guardar nuestros cambios desde el último commit:

(a)  

28.

Listar el stash:

(a)  

29.

Recuperar los últimos cambios guardados en nuestra bóveda:

(a)  

30.

Recuperar los cambios del stash 4 que tenemos en nuestra bóveda:

(a)  

31.

Borrar todas nuestros stash:

(a)  

32.

¿Cuál de las siguientes características no corresponde con TDD?

a)

Es necesario diseñar todas las especificaciones antes de implementar cada una

b)

Se codifica lo mínimo necesario para cumplir los test

c)

En las primeras fases, lo importante es que el código pase las pruebas, y en siguientes iteraciones aplicar técnicas de

refactorización

d)

Para escribir los test, tenemos que pensar primero qué métodos queremos que tenga el programa y cómo funcionarán

33.

Cuando una subclase extiende de otra pero utiliza pocas características de la superclase, nos encontramos ante un bad smell de

Feature Envy

a)

Verdadero

b)

Falso

34.

El IEEE 830 define una serie de recomendaciones para la elaboración de documentación de requerimientos de software.

¿Cuál de las siguientes no corresponde con una recomendación del IEEE 830?

a)

Descripción del comportamiento

b)

Descripción de la información

c)

Descripción funcional

d)

Criterios de verificación

35.

¿cuál de los siguientes tipos de rebase nos sirve para unir dos commits?

a)

Edit

b)

Squash

c)

Reword

d)

Fixup

36.

¿cuál de los siguientes tipos de documentaciones no tiene que ser escrita necesariamente por alguien involucrado en un proyecto?

a)

Documentación del diseño

b)

Documentación de código fuente

c)

Documentación de usuario final

d)

Todas las documentaciones planteadas deben ser escritas por un miembro involucrado en el proyecto

e)

Documentación de las especificaciones

37.

¿Cuál de los siguientes tipos de prueba nos permite evaluar el flujo de ejecución de un programa ante unos valores de entrada

concretos?

a)

Pruebas de caja blanca

b)

Pruebas de usabilidad

c)

Pruebas de caja negra

d)

Pruebas de integración

38.

Permite crear una superclase (clase padre) con los métodos y atributos que seleccionemos

de una clase concreta.

a)

Extract Superclass

b)

Extract constant

c)

Inline

d)

Rename

39.

Convierte un número o cadena literal en una constante.

a)

Extract constant

b)

Inline

c)

Extract Superclass

d)

Rename

40.

Nos permite ajustar una referencia a una variable o método en una sola línea de código.

a)

Inline

b)

Extract constant

c)

Rename

d)

Member Type to Top Level

41.

Es la opción empleada para cambiar el identificador a cualquier elemento (nombre de

variable, clase, método, paquete, directorio, etc).

a)

Rename

b)

Inline

c)

Member Type to Top Level

d)

Extract Method

42.

Convierte una clase anidada en una clase de nivel superior con su propio archivo de java.

a)

Member Type to Top Level

b)

Extract Method

c)

Convert Anonymous Class to Nested

d)

Change Method Signature

43.

Convierte un bloque de código en un método, a partir de un bloque cerrado por llaves { }.

a)

Extract Method

b)

Convert Anonymous Class to Nested

c)

Change Method Signature

d)

Rename

44.

Este patrón de refactorización permite convertir una clase anónima a una clase anidada de

la clase que la contiene.

a)

Convert Anonymous Class to Nested

b)

Change Method Signature

c)

Extract Method

d)

Member Type to Top Level

45.

Permite cambiar el nombre del método y los parámetros que recibe.

a)

Change Method Signature

b)

Convert Anonymous Class to Nested

c)

Extract Method

d)

Member Type to Top Level

46.

Convierte una variable local en un atributo privado de la clase.

a)

Convert Local Variable to Field

b)

Move

c)

Extract Interface

d)

Extract Local Variable

47.

Mueve una clase (fichero .java)de un paquete a otro y se cambian todas las referencias.

a)

Move

b)

Extract Interface

c)

Extract Local Variable

d)

Convert Local Variable to Field

48.

Este patrón de refactorización nos permite seleccionar los métodos de una clase para crear

una Interface.

a)

Extract Interface

b)

Extract Local Variable

c)

Move

d)

Convert Local Variable to Field

49.

Convierte un número o cadena literal en una variable de ámbito local.

a)

Extract Local Variable

b)

Move

c)

Extract Interface

d)

Convert Local Variable to Field

50.

Si queremos concatenar muchos strings en bucles cuando usamos java, es buena opción utilizar el operador '+'

a)

Verdadero

b)

Falso

51.

¿Cuál de los siguientes problemas no se asocia al síntoma de clases muy grandes?

a)

Si se devuelve más de un valor, se debería crear un nuevo método

b)

Si una clase se usa para distintos problemas tendremos clases con demasiados métodos, atributos, e incluso instancias

c)

Las clases deben tener el menor número de responsabilidades y que estar bien delimitadas

d)

Una clase debe tener solo una finalidad

52.

¿cuál de las siguientes no es una buena práctica de programación en java?

a)

Crear una variable local e inicializarla lo más cerca posible de su uso

b)

Reutilizar variables (suponen menos coste computacional)

c)

Evitar comparar objetos con ==

d)

No declarar campos de una clase estándar como public o no indicarles modificadores de visibilidad

53.

En java, es adecuado no escribir las llaves cuando en las condicionales expresamos únicamente una sentencia de código.

a)

Verdadero

b)

Falso

54.

¿Con qué nombre se conoce en general a los síntomas que suelen indicar la necesidad de refactorizar?

a)

refuse bequest

b)

shotgun surgery

c)

feature envy

d)

bad smells

55.

Las clases de muchas líneas o muchos propósitos dificultan su comprensión.

a)

Clases muy grandes

b)

Métodos muy largos

c)

Código duplicado

d)

Legado rechazado

56.

Los método de muchas líneas dificultan su comprensión.

a)

Métodos muy largos

b)

Clases muy grandes

c)

Código duplicado

d)

Legado rechazado

57.

Si se detectan bloques de código iguales o muy parecidos en distintas partes del programa

a)

Código duplicado

b)

Legado rechazado

c)

Lista de parámetros extensa

d)

Cirugía a tiros

58.

Cuando una subclase extiende (hereda) de otra clase, y utiliza pocas características de la superclase,

puede que haya un error en la jerarquía de clases.

a)

Legado rechazado

b)

Código duplicado

c)

Métodos muy largos

d)

Cirugía a tiros

59.

Las funciones deben tener el mínimo número de parámetros posible, siendo 0 lo perfecto.

a)

Lista de parámetros extensa

b)

Cirugía a tiros

c)

Envidia de funcionalidad

d)

Métodos muy largos

60.

Si al modificar una clase, se necesitan modificar otras clases o elementos ajenos a ella para

compatibilizar el cambio.

a)

Cirugía a tiros

b)

Envidia de funcionalidad

c)

Cambio divergente

d)

Lista de parámetros extensa

61.

Ocurre cuando una clase usa más métodos de otra clase, o un método usa más datos de otra clase,

que de la propia.

a)

Envidia de funcionalidad

b)

Cambio divergente

c)

Lista de parámetros extensa

d)

Legado rechazado

62.

Si una clase necesita ser modificada a menudo y por razones muy distintas, puede que la clase esté

realizando demasiadas tareas.

a)

Cambio divergente

b)

Envidia de funcionalidad

c)

Lista de parámetros extensa

d)

Legado rechazado

63.

Una buena convención a la hora de escribir código java es utilizar identificadores de un solo carácter, ya que requieren de menos

memoria. Por ejemplo:

w = true;

a)

Verdadero

b)

Falso

64.

Genera más carga utilizar tipos primitivos que clases wrapper de Java

a)

Verdadero

b)

Falso

65.

¿cuál de las siguientes es una buena práctica de programación en java?

a)

En los switchm no utilizar break en el caso default para ahorrar líneas de código

b)

Utilizar el copiado defensivo

c)

No declarar como constantes los valores inmutables, dado que nos limitan su uso

d)

utilizar do-while frente a otros tipos de bucles, dado que el coste computacional es menor

66.

Entre operadores es adecuado colocar espacios para mejorar la legibilidad

a)

Verdadero

b)

Falso

67.

¿Cuál de las siguientes afirmaciones acerca de los patrones de refactorización es falsa?

a)

También se les llama métodos de refactorización o catálogos de refactorización

b)

Un patrón de refactorización es Extract Constant

c)

Un patrón de refactorización es el uso de clases anónimas

d)

Son las prácticas para refactorizar el código, utilizando las herramientas podremos plantear casos para refactorizar y se

mostrarán las posibles soluciones en las que podremos ver el antes y el después de refactorizar.

68.

Las convenciones de escritura en java existen para facilitar su mantenimiento posterior.

a)

Verdadero

b)

Falso

69.

¿cuál de las siguientes formas de inicializar o declarar arrays sería incorrecta de acuerdo a las convenciones tratadas en clase?

a)

String nombres[];

b)

int[] array = { 0, 1, 2, 3 };

c)

String[] nombres;

d)

int[] array =

{

0, 1, 2, 3

};

70.

es una técnica de la ingeniería del software que permite la optimización de un código previamente

escrito, por medio de cambios en su estructura interna, sin que esto suponga alteraciones en su

comportamiento externo.

a)

refactorización

b)

calidad del software

c)

ingeniería del software

71.

Grado

con el que un sistema, componente, o proceso cumple los requisitos

especificados y las

necesidades o expectativas del cliente o usuario

a)

calidad del software

b)

ingeniería del software

c)

refactorización

72.

establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que

sea fiable, y que funcione de manera eficiente en máquinas reales.

a)

ingeniería del software

b)

calidad del software

c)

refactorización

73.

La refactorización se asocia con la calidad funcional del software

a)

Verdadero

b)

Falso

74.

Un número que represente el IVA de un producto en una operación es un Magic Number si no se está almacenando en una variable o

constante definida previamente que lo identifique.

a)

Verdadero

b)

Falso

75.

¿cuál de las siguientes afirmaciones acerca de cómo declarar variables en java no se corresponde con convención de escritura de las

tratadas en clase?

a)

Inicializar las variables locales en el momento de declararlas o justo después

b)

Todas las opciones proporcionadas son correctas (no hay opciones incorrectas)

c)

Declarar variables de instancia cuando se necesiten, en lugar de al comienzo de la clase

d)

Declarar una sola variable por línea

76.

En un sistema de control de versiones...

¿Quién tiene la última versión del código en un sistema (a) centralizado, (b) distribuido (sin servidor central)?

a)

en (a) cualquier usuario, en (b) no se puede determinar con esa información.

b)

en (a) el servidor, en (b) no se puede determinar con esa información.

c)

en (a) cualquier usuario, En (b) todos los usuarios.

d)

En (a) el servidor, En (b) todos los usuarios

77.

En (a) el servidor, En (b) todos los usuarios

a)

Las modificaciones son realizadas en el cliente y se actualiza en el servidor.

b)

Las modificaciones de un fichero se realizan directamente en el servidor.

c)

No soportan el control de versiones multiusuario.

d)

El trabajo se realiza en el cliente y no existen servidores VCS.

78.

El repositorio o repository:

a)

Es la línea principal del proyecto.

b)

Es la base de datos donde se almacenan los ficheros.

c)

Es la copia local de los usuarios.

d)

Un capítulo de una serie de televisión que ya han transmitido.

79.

El tronco o Trunk o main de un cvs:

a)

La última revisión en el repositorio.

b)

La última revisión de un fichero.

c)

La línea principal de código en el repositorio.

d)

Lista de todos los cambios realizados en el fichero.

80.

El VCS Git:

a)

Utiliza una filosofía distribuida.

b)

Utiliza una filosofía centralizada.

c)

Ha sido desarrollado por Microsoft.

d)

Ha sido desarrollado para manejar sólo pequeños proyectos con pocos usuarios.

81.

En el funcionamiento general de un VCS, un conflicto:

a)

Un conflicto significa que un usuario no están conforme con lo que ha modificado otro usuario.

b)

El vcs no es capaz de resolver conflictos de modificación de dos usuarios en un mismo fichero.

c)

El conflicto de modificación de un fichero por parte de dos usuarios es siempre resuelto por el vcs.

d)

Si dos usuario modifican las mismas líneas el sistema avisa al último usuario para que resuelva el conflicto de forma

manual.

82.

En los VCS distribuidos:

a)

Existen varios servidores con partes del repositorio. La suma de todas las partes de los servidores es el reposistorio completo

b)

Tenemos un servidor principal que tiene el repositorio completo y los usuarios realizan copias del repositorio.

c)

Cada usuario tiene su propio repositorio local que podrá compartir o no con el resto de usuarios

d)

Siempre hay un usuario principal con el repositorio mandatory

83.

La acción de Enviar o commit:

a)

Envía un fichero por primera vez al repositorio.

b)

Aplica los cambios de un fichero a otro para ponerlo al día.

c)

Sube un fichero al repositorio si ha sido cambiado y se le asigna un número de versión.

d)

Actualiza todos los ficheros con la última versión existente en repositorio.

84.

La acción de Fusionar o Merge:

a)

Sube un fichero al repositorio si ha cambiado

b)

Trae un fichero para mezclarlo con mi parte del proyecto

c)

Añade al repositorio por primera vez y lo mezcla con el resto del proyecto

d)

Todos los anteriores son falsos.

85.

Las dos funciones fundamentales de un VCS son:

a)

Guardar el proyecto de forma centralizada y recuperar el proyecto para el que lo necesite

b)

Guardar un historico del proyecto y poder recuperar dicha historia del proyecto.

c)

Permitir trabajar sobre un mismo proyecto por parte de varios desarrolladores y realizar comentarios por parte del que lo

desee.

d)

Almacenamiento de un histórico de la evolución del desarrollo y el control de conflictos cuando haya más de una persona

trabajando sobre el mismo fichero.

86.

Si el usuario desea juntar una rama con el principal o final

a)

Siempre desaparece la rama.

b)

Se ejecuta el comando diff.

c)

Se ejecuta el comando branch.

d)

Todas son falsas.

87.

Si el usuario quiere experimentar nuevos algoritmos sobre el fichero principal.java sin afectar al proyecto. ejecutará:

a)

push

b)

branch

c)

check out for edit

d)

main

88.

Si el usuario quiere ver las modificaciones entre dos versiones ejecutará:

a)

tags

b)

revert

c)

diff

d)

deff

89.

Si un usuario realiza modificaciones y quiere actualizar el servidor ejecutará

a)

Add

b)

commit

c)

revert

d)

check out for edit

90.

Si un usuario trabaja con una rama:

a)

Puede trabajar con otras ramas al mismo tiempo.

b)

Puede cambiar de rama aunque tenga ficheros pendientes de check in.

c)

Sólo puede trabajar en una única rama, ya que el directorio de trabajo es único

d)

Ha ejecutado el comando diff para ello.

91.

Si un usuario va a realizar modificaciones sobre un fichero realizará la acción:

a)

Add

b)

commit

c)

revert

d)

check out for edit

92.

Si voy a realizar control de versiones sobre un fichero nuevo "principal.java" la primera acción será:

a)

Add

b)

commit

c)

revert

d)

Check out

93.

Un VCS:

a)

Va a ser la copia de seguridad de nuestro proyecto.

b)

El sistema de copias de seguridad del proyecto debería incluir también el sistema de ficheros contenido en el VCS.

c)

Como programador individual no me es necesario ya que no voy a tener conflictos de modificación.

d)

No es útil para un programador individual ya que es fácil realizar copias de mis ficheros con otras herramientas especificas

para ello.

94.

Un VCS(Version Control System)

a)

No es una herramenta CASE para el desarrollo del software.

b)

Es una herramienta para el control de versiones que sólo es útil en proyectos donde participan más de un programador.

c)

Es una herramienta fundamental para cualquier desarrollador que permite recuperar versiones anteriores que funcionen

correctamente.

d)

Los VCS sólo me permiten llevar el control de versiones de código y no de otro tipo de documentos. Para otros documentos

utilizaré otras herramientas.

95.

Una rama o Branch:

a)

Es la útima revisión en el repositorio.

b)

Mantiene el historico del fichero.

c)

Me permite mantener una línea separada del fichero principal para realizar modificaciones y pruebas sin afectar al

principal.

d)

Todos son correctos.

96.

En el VCS Git el comando clone permite:

a)

Traer un repositorio entero al nuestro local.

b)

Enviar a otro repositorio nuestros cambios.

c)

Permite traer los cambios de otro repositorio a nuestro repositorio local.

d)

Todos son falsos.

97.

En el VSC Git, los documentos Commited:

a)

Son los documentos que se encuentran en alguna rama del repositorio.

b)

Son los documentos que han sido modificados y están listos para realizar el commit

c)

Son los documentos que han sido modificados pero no han sido aceptados por el momento para el commit.

d)

Son los documentos que no se encuentran en el repositorio.

98.

En el VSC Git, los documentos Modified:

a)

Son los documentos que se encuentran en alguna rama del repositorio.

b)

Son los documentos que han sido modificados y están listos para realizar el commit

c)

Son los documentos que han sido modificados pero no han sido aceptados por el momento para el commit.

d)

Son los documentos que no se encuentran en el repositorio.

99.

En el VSC Git, los documentos Stage:

a)

Son los documentos que se encuentran en alguna rama del repositorio.

b)

Son los documentos que han sido modificados y están listos para realizar el commit

c)

Son los documentos que han sido modificados pero no han sido aceptados por el momento para el commit.

d)

Son los documentos que no se encuentran en el repositorio.

Similar Resources on Wayground