Prezentacja z VI edycji Quality Excites. Tomasz i Dawid przedstawili ewolucję pracy testera, która w dzisiejszych czasach nierzadko wymaga umiejętności tworzenia i utrzymania odpowiednich środowisk do testów, do których stworzenia potrzebna jest wiedza na poziomie DevOpsa.
Celem wystąpienia było przestawienie przykładowego szkieletu takiego środowiska do testów oraz narzędzi, które powinny się znaleźć w przyborniku TestOpsa.
4. THE TRADITIONAL MODEL OF SOFTWARE
TESTING
TESTS
QUALITY ASSESSMENT
RUN TESTS
SYSTEM UNDER TEST
ANALYSIS
PASS? FAIL?
5. “To improve is to change; to be
perfect is to change often.”
Winston Churchill
6. ➜ Facebook users send on average over
31 million messages and view 2.77
million videos every minute
➜ Twitter users generates 347,222
Tweets each minute – or 21 million
Tweets per hour
➜ Google provides search results for
over 1 billion search queries each day
➜ Amazon deploys new software to
production every 11.6 seconds.
The times has changed...
8. EXPOSURE
CONTROL
TEST CASES AND
MONITORS
THE TESTOPS MODEL OF SOFTWARE
TESTING
EXPOSED USERS
AND SYSTEMS
SYSTEM UNDER TEST
PRODUCTION USERS
AND SYSTEMS
ACTIVE
MONITORS
ANALYSIS
QUALITY ASSESSMENT
PRODUCTION
USAGE
TELEMETRY DATA
KPIs / PATTERNS
9. CONTINUOUS
BUILD
CODE CHANGE /
FIX
SCM
(Git, Svn,
Bazaar ;)
NEW BUILD
(Ant, Maven,
Gradle, etc.)
CI TOOLS
(Jenkins,
Bamboo,
Travis CI,
Ansible,
etc.)
CONTINUOUS
VALIDATION
TEST
ENVIRONMENTS
BU
ILD
D
EPLO
YM
EN
T
TEST RESULTS
CONTINUOUS
DELIVERY
PRODUCTION
ENVIRONMENTS
CONTINUOUS
MONITORING
MONITORING
(Kibana, Grafana,
Scalyr, Cacti,
Amazon
CloudWatch, etc.)
SYNTHETIC /
SEMANTIC
MONITORING
10. ➜ Synthetic monitoring (or semantic
monitoring) runs a subset of an
application's automated tests against
the live production system on a regular
basis.
Continuous Monitoring
11. ➜ Integration with DevOps
infrastructure
➜ What tests to run and when
➜ No need to stand up the whole
system to test
TestOps: What Does This
Mean?
13. FAKAPY
● Zgłaszanie błędu w komentarzy w Jirze - 500 klientom nie działało menu
nawigacyjne po aplikacji
● Dobrze zorganizowane glow w Gicie - pull req, praca miedzy zespolami
● Szkiletet
● Jak pisac kod (python)
● Nazwy obiektow!
● Re-uzywalnosc kodu
● Korzystanie z paczek
● Pop
● Pliki readme
● Jak unikac zlych praktyk
● Konwencja komitowanie (a nie ‘fixed small issue’)
● Konsekwencja pracy przez 2-mc na wlasnym branchu
● Dlaczego nie tylko produkt powinien byc testowany, ale również same
testy
14. BUT IN A WORLD OF FALSE...
False
Negatives
False
Positives
The test is marked as Failed,
when the functionality is
working
The test is marked as Passed,
when the functionality is not
working.
16. RISKVALUE
CONTINUOUS: VALUE vs RISK
PLAN CODE BUILD TEST RELEASE DEPLOY OPERATE
COLLABORATION
AGILE DEVELOPMENT
CONTINUOUS INTEGRATION
CONTINUOUS DELIVERY
DEVOPS
23. ➜ You can use compose to bring up
any number of instances of the
services in your stack, example:
> docker-compose up --scale
web=10 database=3
This is great for testing database
clusters or load balancers, or
resiliency with Pumba
Docker - Scalability Testing
24. ➜ Docker can be useful for testing different
system configurations like for example different
DB backends:
○ Bring up new stack (with MySQL backend),
Seed with data, Run API tests, Tear down
stack.
○ Bring up new stack (with Postgres
backend), Seed with data, Run API tests,
Tear down stack.
○ Report on any differences in test results
between MySQL and Postgres backends.
○ Integrates easily with Jenkins !
Docker - Configuration
Testing
30. ➜ TestOps provides a unique aspect for
automated testing
➜ It works with the Dev team to set up
CI/CD/CM
➜ It creates a cloud or virtual technology to set
up a testing environment on demand
➜ It plays a vital role to integrate the automated
testing with Dev team for CI
➜ Explore and investigate!
Takeaway