Saltar al contenido

Etiqueta: pruebas

La falla de CrowdStrike: un análisis desde el Sistema Operativo

Hace unos días fuimos testigos de como miles de computadoras con Windows empezaron a aparecer con la famosa pantalla azul de la muerte. La pantalla que aparece cuando hay un problema crítico en Microsoft Windows. Este problema ocurrió gracias al software de CrowdStrike, una empresa de seguridad informática, que por una falla en un driver durante el arranque del sistema operativo, causó que las computadoras no pudiesen arrancar correctamente.

El responsable es Crowdstrike

Inicialmente todos pensamos que el problema fue Microsoft, pero en realidad no tuvieron la responsabilidad. El problema ocurrió en un driver de Crowdstrike que falló por una mala actualización de un archivo de contenido importante para este driver. Fallaron las pruebas y despliegues de esta actualización por parte de Crowdstrike.

Por esta razón, me animé a hacer un video para explicar esto y mostrar que fue lo que pasó desde el punto de vista de los sistemas operativos. Para que todos estemos claros y podamos aprender de esta situación y aplicarlo en nuestros trabajos para evitar problemas similares.

Espero que miren el video, pues proporciona más detalles de los que puedo abarcar en este post. Y recuerden comentar si tienen alguna duda, comentario o corrección del tema.

La falla de CrowdStrike: un análisis desde el Sistema Operativo
Mira mi video para conocer de Crowdstrike desde el punto de vista de un S.O.

Reflexión

Creo que lo que pasó, vimos como podemos estar a un paso de fallas graves en nuestro sistemas y afectar la vida diaria. Tal vez en el futuro ocurran cosas peores ocasionadas por la I.A. o fallos humanos, pero siempre y cuando tengamos buenas pruebas, aprendamos de estas experiencias y programemos las cosas para tolerar fallas, evitaremos que ocurra de nuevo algo asimilar a lo de Crowdstrike.

Espero que este video les resulte útil e interesante. Si desean mas videos de Sistemas Operativos como este, o similar al de Como google optimizó en 40% el kernel Linux, si necesitas más detalles o tienes alguna pregunta específica sobre el problema de CrowdStrike, no dudes en dejar un comentario. ¡Estaré encantado de responderte!

Deja un comentario

Cómo crear pruebas unitarias y funcionales con Yii 1.x usando Composer

Si tienes configurado tu proyecto hecho en Yii 1.x para cargar las clases mediante composer y deseas realizar pruebas automatizadas, notarás que existen ciertas incompatibilidades entre Yii 1.x y el PHPUnit del repositorio de composer. A continuación te explicaré como instalarlo.

Instalación de las dependencias

Lo primero es instalar todos los paquetes necesarios para realizar las pruebas, todas se colocarán en la sección require-dev debido a que solo serán utilizadas durante el desarrollo y no en el servidor de producción para evitar bugs/exploits, ocupar espacio, rendimiento, etc. El paquete requerido por Yii es PHPUnit, pero al momento de desarrollo del framework, PHPUnit incluía varias funcionalidades que actualmente están disponibles en otros paquetes, por esta razón también debemos agregar php-invoker, phpunit-story y phpunit-runner. Ahora, si deseas utilizar fixtures (datos de prueba) o vas a realizar pruebas con base de datos debes agregar dbunit como dependencia, si vas a realizar pruebas funcionales agrega phpunit-selenium y finalmente, si utilizas un generador de pruebas (Netbeans incluye uno) agrega phpunit-skeleton-generator para con un clic generar un archivo de con los métodos de una clase para escribir pruebas.

Entonces la sección de require-dev en tu composer.lock debe quedar así:

"require-dev": {
	"phpunit/phpunit": "4.7.*",
	"phpunit/php-invoker": "*",
	"phpunit/phpunit-story": "*",
	"phpunit/dbunit": ">=1.2",
	"phpunit/phpunit-selenium": ">=1.2",
	"phpunit/phpunit-skeleton-generator": "*",
	"hot/phpunit-runner": "dev-master"
}

Luego ejecuta composer install y tendrás las dependencias en tu proyecto.

Configuración en Netbeans

Primero se debe configurar el proyecto para indicar cuales son las carpetas con los archivos y la configuración de phpunit a utilizar, para ello, haz clic derecho en el proyecto. En la parte izquierda entra a la sección de Testing, luego en la ventana de diálogo selecciona PhpUnit y en la selección de la carpeta, escoge /protected/tests/ para indicar que esa es la carpeta de pruebas del proyecto. Finalmente, en la parte inferior se debe seleccionar PHPUnit en la sección de Testing Providers

Selección de PHPunit en Netbeans
Selección de PHPunit en Netbeans

A continuación, en el panel izquierdo haz clic en PHPUnit, y en el panel derecho:

  • Selecciona la opción Use Bootstrap y selecciona la ruta /protected/tests/bootstrap.php
  • Activa la opción de Use Bootstrap for creating new tests
  • Selecciona la opción Use XML Configuration y selecciona la ruta /protected/tests/phpunit.xml
  • Use Custom PHPUnit Script y coloca la ruta /protected/external/phpunit/phpunit/phpunit

De esta forma le indicamos a Netbeans el uso de la configuración de arranque incluída en Yii y que utilice el script de PHPUnit que instalamos con composer.

Selección del PHPUnit de composer

Ahora necesitamos indicarle a Netbeans que utilice la plataforma de PHPUnit instalada con composer, de lo contrario puede utilizar la que viene incluida en el IDE o la del sistema operativo opertivo, las cuales son incompatibles con las clases incluidas en composer. Para cambiarlo, haz clic al menú Tools y luego Options, entra a la sección de PHP, selecciona la pestaña de Framework & Tools, luego en el panel izquierdo selecciona PHPUnit, y selecciona/escribe las siguientes rutas:

  • En la ruta de PHPUnit Scripts, coloca la ruta de phpunit de composer: /protected/external/phpunit/phpunit/phpunit
  • En la ruta de Skeleton Generator Script, /protected/external/phpunit/phpunit-skeleton-generator/phpunit-skelgen
Selección de scripts de PHPunit de Composer en Netbeans
Selección de scripts de PHPunit de Composer en Netbeans

Ejecución

¡Listo! Ya puedes ejecutar las pruebas desde la clase principal con F6 o desde la clase de pruebas con Alt + F6. Ademas, al hacer clic derecho en una clase, puedes entrar al menú de Tests y luego Create Tests para crear automáticamente los archivos pruebas, estos ya vienen con los métodos que debes escribir y métodos para ejecutar métodos antes de las pruebas.

Ahora no tienes excusa para probar tu software de forma automática utilizando Yii.

Deja un comentario