We were at Drupal Summer Barcelona 2016 talking about QA on Drupal Projects. You can also be interested in our skin for #Jenkins: http://www.ladrupalera.com/drupal/desarrollo/diseno-visual/drupal-skin-your-jenkins
1. QA on Drupal projects
Alejandro Gómez @agomezmoron
2. 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!
3. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
4. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
5. What QA really means
QA on Drupal projects
● Different approaches
@agomezmoron
6. What QA really means
QA on Drupal projects
● What almost everyone thinks
@agomezmoron
7. What QA really means
QA on Drupal projects
● What a small group of people thinks
@agomezmoron
10. What QA really means
QA 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
11. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
16. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
17. 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
18. 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
19. Type of tests to be applied
19
When will I know the tests are enough?
QA on Drupal projects
@agomezmoron
20. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
22. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Functional testing through Selenium
e. Continuous Delivery with Docker
23. CI - Code Inspection
23
QA on Drupal projects
@agomezmoron
24. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
25. CI - Unit Testing
25
QA on Drupal projects
@agomezmoron
26. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
27. 27
QA on Drupal projects
CI - Performance testing
@agomezmoron
28. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
30. 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
31. Continuous Delivery with Docker (III)
31
QA on Drupal projects
@agomezmoron
Docker version >= 1.9!!
32. Continuous Delivery with Docker (III)
32
QA on Drupal projects
@agomezmoron
Docker version >= 1.9!!
33. 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
34. Docker also for Selenium
34
QA on Drupal projects
@agomezmoron
35. Roadmap
1. What QA really means
2. Integrating QA teams into Drupal teams: The
team
3. Type of tests to be applied
4. Continuous Integration
a. Code Inspection
b. Unit testing
c. Performance testing
d. Continuous Delivery with Docker
e. Functional testing through Selenium
36. Functional testing through Selenium
36
QA on Drupal projects
● Functional tests
○ Acceptance
○ Progression
○ Regression
● Testing the app as a user does it
@agomezmoron
37. 37
We came to play...
QA on Drupal projects
@agomezmoron
39. 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
40. 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