29
TESTING EN OPENSTACK

TESTING EN OPENSTACK - cs.uns.edu.armll/vyvs/downloads/Testing en OpenStack.pdf · Los ingenieros de calidad (QA/QE) desarrollan esos tests en base a planes Los desarrolladores pueden

Embed Size (px)

Citation preview

TESTING EN OPENSTACK

2WHOAMI ¡HOLA!

Victoria Martinez de la CruzIngeniera de Software en Red Hat IBM

Co-fundadora de LinuxChix Argentina

Licenciada en Cs. de la Computación de la UNS

3LINUXCHIXARGENTINA

LinuxChix Argentina- 20+ miembros activos- Charlas, talleres,

difusión- FLISOL 2018- Nerdear.la- PyConAR 2018 (en

un mes!)- IEEE Robotito- Programa tu futuro

OPENSTACK 101

4

OpenStack basics

5OPENSTACK 101

6OPENSTACK 101

Test unitarios

7

Componentes individuales

8CONCEPTOS

▸ Tests de “caja blanca”▸ Todas las funcionalidades tienen

sus tests unitarios▸ Los desarrolladores deben agregar

sus tests unitarios cuando proponen una nueva funcionalidad

▸ Planificación previa a la implementación → specs

9CONCEPTOS

▸ Fakes → implementación simplificada, más liviana, pero funcional

▸ Mocks → implementación que permite cambiar dinámicamente los valores a retornar/excepciones y permite verificar si una función fue llamada o no

▸ Stubs → idem mocks, pero no permite verificar llamadas

10TOX

▸ Tox▸ Automatizar y estandarizar el

proceso de testing en Python▸ Virtualenv management▸ py27, py35, py36, docs, ++

$ tox

$ tox -e py27

Test de estilo

11

Lectura y mantenimiento del código

12 ▸ Todo el código debe cumplir con el estilo utilizado▹ Lectura▹ Mantenimiento

▸ Bashate ▸ PyLint ▸ Flake8

CONCEPTOS

13HACKING

▸ Reglas específicas de la comunidad que quedan por fuera de PEP8

▸ https://docs.openstack.org/hacking

Test integración

14

Lectura y mantenimiento del código

15CONCEPTOS

▸ Tests de “caja negra”▸ Integración entre componentes de

OpenStack▸ Los ingenieros de calidad (QA/QE)

desarrollan esos tests en base a planes

▸ Los desarrolladores pueden también incluir tests de integración

16TEMPEST

▸ Tempest es nuestra suite de tests de integración▹ Tests unitarios (tests para los

tests!)▹ Scenario tests▹ API tests

17TEMPEST SCENARIO TESTS

▸ “Como operador, quiero lanzar y acceder a una nueva instancia”1. Subir una imagen2. Desplegar una instancia con esa

imagen3. Agregar una clave de SSH a la

instancia4. SSH a la instancia

18TEMPEST API TESTS

▸ Llamadas a la API▹ Crear una instancia▹ Crear una red▹ Eliminar una instancia▹ Modificar una red▹ ...

CI/CD

19

Continuous integration and continuous delivery

20CI/CD

▸ Proveer nuevas funcionalidades de forma más rápida, efectiva y confiable

▸ Continuous integration: automatizar la compilación, empaquetamiento y ejecución de tests sobre nuevas funcionalidades

▸ Continuous delivery: automatizar la entrega de ese código que se procesó

21ZUUL

▸ Zuul provee herramientas para CI/CD con un foco especial en phase-gate processing

▸ Phase-gate processing es una forma de evaluar el código teniendo diferentes tareas que aseguran su calidad

RH DOWNSTREAM

22

QE de la versión enterprise

23UP VS DOWN STREAM

▸ Upstream▹ Empresas, organizaciones,

individuales▹ Libre

▸ Midstream▹ Fedora, CentOS▹ RDO

▸ Downstream▹ Enterprise▹ Con subscripciones▹ RHEL

24UP VS DOWN STREAM

▸ OpenStack se llama Red Hat OpenStack Platform (RHOSP)

▸ No todos los proyectos upstream están incluidos

▸ Ciclo de desarrollo parecido (un mes de diferencia entre lanzamientos)

POLARION

25 ▸ Polarion es un lifecycle management tool

▸ Se crean test plans que nuestros QE ejecutan

▸ Integración con Tempest

INFRARED

26 ▸ Para crear los entornos usamos Infrared

▸ Conjunto de playbooks de Ansible que despliegan un entorno de OpenStack

▸ Más parecido a producción

JENKINS

27 ▸ El sistema de CI/CD en downstream es Jenkins

▸ Se escriben jobs usando Groovy que despliegan un entorno de Infrared y ejecutan los tests de Tempest▹ Diferentes arquitecturas

▸ Phases 1, 2 y 3▹ Phase 1: Sanity tests▹ Phase 2: Basic API interaction▹ Phase 3: Integration tests

Q&A

28

¿Preguntas? ¿comentarios?

29Q&A

▸ @vkmc▸ [email protected] (por ahora)▸ vkmc on irc.freenode.org