Para los que usamos python, en el curso de Introducción al Pensamiento Computacional con Python hay dos clases sobre pruebas que pueden servir de referencia para entender mejor esta clase.
Introducción a conceptos
Todo lo que aprenderás sobre arquitectura backend
Qué es el backend
Qué son los sistemas distribuidos
Elementos de un sistema distribuido en la nube
Cómo se conecta todo en el backend
Recap y proyecto del curso
Arquitectura y planeación
Definición y requerimientos del sistema desde la perspectiva de negocio
Documento de diseño
Creación del documento de diseño
Revisión de diseño
Elaboración de la arquitectura del sistema
Diseños de bajo nivel, planes de prueba e integración continua
Plan de integración continua
Definiendo el “Code Complete”
Recap y tips de siguientes pasos
Desarrollo e implementación
Introducción y formato de desarrollo
Práctica: diseño de una “entidad”
Implementación de una entidad
Práctica: unit test usando TDD
Práctica: implementación de objetos usando TDD
Pasos para completar el proyecto
Challenges
Diseño de bajo de nivel de servicio de lectura
Diseño de un servicio que integre autenticación
Escalabilidad: Throttling y RetryPolicies
Conclusión
Cierre del curso y tips profesionales
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Jorge Villalobos
Aportes 10
Preguntas 3
Para los que usamos python, en el curso de Introducción al Pensamiento Computacional con Python hay dos clases sobre pruebas que pueden servir de referencia para entender mejor esta clase.
Con PHP podemos usar PHPUnit para la implementación de los test, tenemos muchos tipos de aserciones, les dejo el enlace a la documentación de PHPUnit:
.
Instala y corre PHPUnit
Aserciones
.
También les dejo el enlace con el commit en donde agregué los tests a mi proyecto en PHP:D
.
https://github.com/RetaxMaster/arquitectura-backend/tree/cf2435d14f1165d7c5f59841d0bbb07f67755d77
.
También anexo aquí mi archivo de test:
.
tests/CameraReview/Product/ProductTest.php
<?php
use PHPUnit\Framework\TestCase;
use \App\CameraReview\Product\Product;
final class ProductTest extends TestCase {
public function test_product_should_return_content_success(): void {
// setup
$product = new Product();
// exec
$content = $product->getContent();
// assert
$this->assertTrue(!empty($content), "Should return content but obtained null or whitespace.");
}
}
Test Driven Development
Practica que consiste en escribir las pruebas, usualmente de manera unitaria, para desarrollar un software de calidad.
Existe una metodología para el TDD
Llamada metodología Ágil
Aqui Describo los pasos de esta metodologia
1 El cliente escribe su historia de usuario.
2 Se escriben junto con el cliente los criterios de aceptación de esta historia, desglosándolos mucho para simplificarlos todo lo posible.
3 Se escoge el criterio de aceptación más simple y se traduce en una prueba unitaria.
4 Se comprueba que esta prueba falla.
5 Se escribe el código que hace pasar la prueba.
6 Se ejecutan todas las pruebas automatizadas.
7 Se refactoriza y se limpia el código.
8 Se vuelven a pasar todas las pruebas automatizadas para comprobar que todo sigue funcionando.
9 Volvemos al punto 3 con los criterios de aceptación que falten y repetimos el ciclo una y otra vez hasta completar nuestra aplicación.
En Python pueden usar pytest: https://docs.pytest.org/en/stable/
TDD: Test-driven development es una práctica de ingeniería de software que involucra otras dos prácticas: Escribir las pruebas primero y Refactorización. Para escribir las pruebas generalmente se utilizan las pruebas unitarias.
Muy buena clase, hasta el momento el curso esta siendo de bastante utilidad.
Me enfrente con algunos retos justo en esta clase, de entender, pensar mas y recordar para poder hacerlo en PHP, pero vamos muy bien.
For further information about TDD, check this website.
En un proyecto con Ruby on Rails podemos utilizar Rspec para implementar los test
Desarrollo guiado por tests
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?