34
TESTE DE SOFTWARE Desafios e oportunidades no mundo da virtualização, dos containers e do desenvolvimento mobile Amador Pahim Software Engineer Virtualization Team

Teste de software Desafios e oportunidades no mundo da Virtualizacao, dos Containers e do Desenvolvimento Mobile - Amador Pahim

Embed Size (px)

Citation preview

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 NEEDED6

DESAFIOS

LOCAL CI PRODUCTION

INSERT DESIGNATOR, IF NEEDED7

DESAFIOS

DB BACKEND FRONTENDFRONTEND

INSERT DESIGNATOR, IF NEEDED8

DESAFIOS

DB BACKEND FRONTENDAPI

WEB

MOBILE

INSERT DESIGNATOR, IF NEEDED9

NOVOS DESAFIOS

DB

BACKEND

API

WEB

VM Container

API

Container

Container

MOBILE

Avocado Testing Framework

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

Test API Libraries

Test Runner

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• Results

• TUI

• JSON

• XUNIT

• TAP

• HTML

• ResultsDB

Test Runner - Varianter

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

...

ANÁLISE COMBINATÓRIAP1 P2 P3

A X 0B Z 1

A X 0

A X 0A X 1A Y 0A Y 1B X 0B X 1B Y 0B Y 1

ANÁLISE COMBINATÓRIAP1 P2 P3

A X 0B Z 1

A X 0

A X 0A X 1A Y 0A Y 1B X 0B X 1B Y 0B Y 1

ANÁLISE COMBINATÓRIAP1 P2 P3

A X 0B Z 1

A X 0

A X 0A X 1A Y 0A Y 1B X 0B X 1B Y 0B Y 1

Test Runner – Job Replay

Test Runner – Job Dif

Test API

Test API

Test API - Parameters

• INSTRUMENTED tests:

self.params.get(‘cpu’, default=’cpu0’)• SIMPLE tests:

• Environment variables

• Python: os.environ.get(‘cpu’)

• Bash: ${cpu}

Test API - Logging

Test API - Asset Fetcher

Libraries

Libraries• Process

• Kernel

• Memory

• SoftwareManager

• VmImage

• FileLock

...

Libraries

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

Get Involved!

THANK YOU

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews