TESTE DE SOFTWARE
Desafios e oportunidades no mundo da virtualização, dos containers e do desenvolvimento mobile
Amador PahimSoftware EngineerVirtualization Team
INSERT DESIGNATOR, IF NEEDED2
TESTE DESOFTWARE
Unit tests
Component tests
Integration tests
API tests
Functionaltests (GUI)
INSERT DESIGNATOR, IF NEEDED3
Unit tests
Component tests
Integration tests
API tests
Functionaltests (GUI)
$
TESTE DESOFTWARE
INSERT DESIGNATOR, IF NEEDED4
Unit tests
Component tests
Integration tests
API tests
Functionaltests (GUI)
$
Developers
TESTE DESOFTWARE
INSERT DESIGNATOR, IF NEEDED5
Unit tests
Component tests
Integration tests
API tests
Functionaltests (GUI)
$
Developers
QA
TESTE DESOFTWARE
INSERT DESIGNATOR, IF NEEDED9
NOVOS DESAFIOS
DB
BACKEND
API
WEB
VM Container
API
Container
Container
MOBILE
What’s Avocado?
• A set of tools and libraries to help with automated testing
• Native tests are written in Python• Any executable can serve as a test
Designed to give a common ground to both QA and Developers
Test Runner• Automated logging
• Sysinfo collection
• Nice UI
• Output formats (HTML, JSON, TAP, XUNIT)
...
Loader/Runner Plugins
Avocado Instrumented Tests (Avocado Test API)
Simple tests (executables)
Python Unittest
Robot Framework
Golang
External runner (basically anything)
Test Runner
Test Runner - VarianterVariant 1: /run/hw/cpu/intel, /run/hw/disk/scsi, /run/distro/fedora, /run/env/prod /run/distro/fedora:init => systemd /run/env/prod:opt_CFLAGS => -O2 /run/hw/cpu/intel:cpu_CFLAGS => -march=core2 /run/hw/disk/scsi:disk_type => scsi
Variant 2: /run/hw/cpu/intel, /run/hw/disk/scsi, /run/distro/mint, /run/env/prod /run/distro/mint:init => systemv /run/env/prod:opt_CFLAGS => -O2 /run/hw/cpu/intel:cpu_CFLAGS => -march=core2 /run/hw/disk/scsi:disk_type => scsi
Variant 3: /run/hw/cpu/intel, /run/hw/disk/virtio, /run/distro/fedora, /run/env/prod /run/distro/fedora:init => systemd /run/env/prod:opt_CFLAGS => -O2 /run/hw/cpu/intel:cpu_CFLAGS => -march=core2 /run/hw/disk:disk_type => virtio
...
Test API - Parameters
• INSTRUMENTED tests:
self.params.get(‘cpu’, default=’cpu0’)• SIMPLE tests:
• Environment variables
• Python: os.environ.get(‘cpu’)
• Bash: ${cpu}
…
Release Management• Current: 55.0:
• Tarballs
• RPMs for Fedora and EL7
• LTS (v36.4 and v52.0)• Available in project repository
• Supported for 18 months
• Minor releases from time to time
• Only bug fixes and other stability related changes
• New LTS every year (or so)
• Fedora:• python2-avocado
• Pip:• avocado-framework