Cómo escribir un caso de prueba

Qué es una buena prueba

  1. Prueba pequeña, con un solo objetivo.
  2. Prueba independiente: una prueba no depende de otra.
  3. La misma prueba puede ejecutarse varias veces.
  4. Cualquier equipo puede entender la prueba.

Qué sintaxis usar para escribir una prueba

Hay varias formas de describir una prueba. Elegimos la sintaxis Gherkin porque es un estándar y está bien documentada. Con Gherkin, una prueba se parece a un escenario que describe un caso de uso. Estos escenarios son útiles para una mejor colaboración entre todos los equipos durante todo el desarrollo de una funcionalidad.

La referencia: https://cucumber.io/docs/gherkin/reference/

Scenario: Título del caso de prueba
  Given [configuración]
  And [más contexto]
  When [acción]
  Then [comprobación]
  And [más resultados]

Dónde añadir un caso de prueba

Para esto se usa la funcionalidad dedicada test case de GitLab. Un caso de prueba de GitLab es similar a una incidencia: podemos añadirle metadatos con etiquetas. Estos metadatos serán útiles para crear futuras ejecuciones de pruebas por tema, funcionalidad o versión con nuestra herramienta.

Cada caso de prueba debe incluir:

  • El título del caso de prueba de GitLab es igual al título del escenario de Gherkin.
  • Un solo escenario de Gherkin, con el resaltado de código dedicado gherkin.
  • (Opcional) Ayuda técnica para quien prueba.

Ejemplo

Subir un archivo con subida por fragmentos

Scenario: Upload a file with chunk upload
  Given a Murena account is configured
  When the user push a file greater than 3MB to "Documents"
  Then edrive detects the file
  And it uses the chunk upload
  When the user switches off the network
  Then edrive stops the upload due to network issue
  And edrive pauses the upload
  And the given file is not visible on Murena cloud
  When edrive triggers the next sync
  Then edrive continues the upload
  And the file is fully uploaded on the Murena cloud

Ayuda

Mostrar los registros de edrive:

adb logcat --pid $(adb shell pidof -s foundation.e.drive)

Subir un archivo de 150 MB al dispositivo:

adb shell dd if=/dev/zero of=/storage/self/primary/Documents/test-file.qa bs=1 count=0 seek=150MB

Descargar el archivo desde la nube de Murena:

curl -X GET -u 'username@e.email:PASSWORD' https://murena.io/remote.php/dav/files/username@e.email/Documents/test-file.qa --output /tmp/test-file.qa

Facetas de las pruebas

El plan de pruebas de cualquier proyecto debería tener en cuenta las siguientes facetas:

  1. móvil — tableta — escritorio
  2. modo claro — modo oscuro
  3. usuario nuevo — usuario existente (actualización, compatibilidad hacia atrás)
  4. arm32 — arm64 — x86
  5. vertical — horizontal
  6. distintos idiomas
  7. en línea — sin conexión
  8. accesibilidad, incluido el desplazamiento
  9. usuario único — varios usuarios — perfil pro
  10. Comportamiento tras un reinicio (especialmente en servicios)