QA on drupal projects

46
QA on Drupal projects Alejandro Gómez @agomezmoron

Transcript of QA on drupal projects

QA on Drupal projects

Alejandro Gómez @agomezmoron

About me

Alejandro Gómez - @agomezmoron

Loving my work at @LaDrupalera by @Emergya

Lecturer at @pablodeolavide University

QA & Tech lover (Selenium, Java, Drupal, Ionic, AngularJS, Gulp…)

I am passionate about challenges and I hate repeating processes!

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

What QA really meansQA on Drupal projects

● Different approaches

@agomezmoron

What QA really meansQA on Drupal projects

● What almost everyone thinks

@agomezmoron

What QA really meansQA on Drupal projects

● What a small group of people thinks

@agomezmoron

What QA really meansQA on Drupal projects

@agomezmoron

What QA really meansQA on Drupal projects

@agomezmoron

What QA really meansQA on Drupal projects

● Commitment

● Continuous process

● Definition (scope, DoD, workflow)

● Standards (code style, documentation, etc)

● Testing (to avoid defects)

● Delivering

● Validation (Have we done what we had to?)

@agomezmoron

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

12

Integrating QA teams into Drupal teams: The teamQA on Drupal projects

@agomezmoron

13

Integrating QA teams into Drupal teams: The teamQA on Drupal projects

@agomezmoron

14

Integrating QA teams into Drupal teams: The teamQA on Drupal projects

@agomezmoron

Integrating QA teams into Drupal teams: The teamQA on Drupal projects

QA

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

Type of tests to be applied

17

QA on Drupal projects

Unit Tests guarantee the quality of the Drupal core/modules.

Functional tests are split into different suites:

● Acceptance/Smoke: Guarantees the quality of the core of the project.

● Regression: Guarantees the quality of the entire app.

● Progression: Guarantees the quality of the current development

(release).

Performance tests guarantee the system availability.

Responsive tests guarantee the defined responsive rules.

@agomezmoron

Type of tests to be applied

18

QA on Drupal projects

Unit Tests guarantee the quality of the Drupal core/modules.

Functional tests are split into different suites:

● Acceptance/Smoke: Guarantees the quality of the core of the project.

● Regression: Guarantees the quality of the entire app.

● Progression: Guarantees the quality of the current development

(release).

Performance tests guarantee the system availability.

Responsive tests guarantee the defined responsive rules.

@agomezmoron

Type of tests to be applied

19

When will I know the tests are enough?

QA on Drupal projects

@agomezmoron

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

Continuous Integration

21

QA on Drupal projects

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Functional testing through Seleniume. Continuous Delivery with Docker

CI - Code Inspection

23

QA on Drupal projects

@agomezmoron

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

CI - Unit Testing

25

QA on Drupal projects

@agomezmoron

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

27

QA on Drupal projects

CI - Performance testing

@agomezmoron

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

Continuous Delivery with Docker (I)

29

QA on Drupal projects

@agomezmoron

Continuous Delivery with Docker (II)

30

QA on Drupal projects

Based on a docker Ubuntu 14:04 TLS (fork of Wouter Admiraal’s):● Apache 2.4● MySQL 5.5● PHP 5.6● Drush 7 or latest release of Drupal Console.● Drupal 7.44 (7.x) or 8.1.2 (8.x)● Composer ● PHPMyAdmin

Docker version >= 1.9!!

@agomezmoron

Continuous Delivery with Docker (III)

31

QA on Drupal projects

@agomezmoron

Docker version >= 1.9!!

Continuous Delivery with Docker (III)

32

QA on Drupal projects

@agomezmoron

Docker version >= 1.9!!

Continuous Delivery with Docker (IV)

33

QA on Drupal projects

git clone https://github.com/agomezmoron/docker-drupal.git

cd drupal-7

docker build --build-arg MYSQL_ROOT_PASSWORD=admin, DRUPAL_ADMIN_PASSWORD=admin,SSH_ROOT_PASSWORD=root, DRUPAL_VERSION=7.44 -t yourname/drupal7 .

cd drupal-8

docker build --build-arg MYSQL_ROOT_PASSWORD=admin, DRUPAL_ADMIN_PASSWORD=admin,SSH_ROOT_PASSWORD=root, DRUPAL_VERSION=8.1.2 -t yourname/drupal8 .

Docker version >= 1.9!!

@agomezmoron

Docker also for Selenium

34

QA on Drupal projects

@agomezmoron

Roadmap1. What QA really means2. Integrating QA teams into Drupal teams: The

team3. Type of tests to be applied4. Continuous Integration

a. Code Inspectionb. Unit testingc. Performance testingd. Continuous Delivery with Dockere. Functional testing through Selenium

Functional testing through Selenium

36

QA on Drupal projects

● Functional tests

○ Acceptance

○ Progression

○ Regression

● Testing the app as a user does it

@agomezmoron

37

We came to play...QA on Drupal projects

@agomezmoron

Workflow

38

QA on Drupal projects

@agomezmoron

Conclusions

39

● If someone finds bugs, awesome. Do not hide the bugs from your customers.

● Fixing bugs should be one of your priorities!

● Code styling is as important as passing tests!

QA on Drupal projects

@agomezmoron

Conclusions

40

● Create a QA culture in the teams.

● QA is more than testing: Commitment, Code style, Continuous

Integration, Unit Testing, Functional testing, Continous Delivery...

QA on Drupal projects

@briansolis

@agomezmoron

Conclusions

41

QA on Drupal projects

@agomezmoron

Conclusions

42

QA on Drupal projects

@agomezmoron

Thanks to them: They are the true core!

43

QA on Drupal projects

@agomezmoron

44

Questions?QA on Drupal projects

@agomezmoron

45

Thanks!QA on Drupal projects

@agomezmoron