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
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
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
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▹ ...
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
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