AUGUST 18, 2015 - Enhance Track - 3:30 to 4:15 pm
AEM Quality AssuranceA Series of Memes for Your Edutainment
2
A talk on the Quality Assurance process, methodology, experience and perspective applied to Adobe AEM projects. The goal is to provide useful information and examples that will help team members better understand the engagement of QA analysts as well as the benefits of following these processes.
IntroductionRené Ugarte - Managing Partner and Solution Architect at 3|SHARE - @reneonguitar
3
AgendaBecause I Should
1. Why QA?2. Client Case Study F3. Client Case Study K4. Recap5. Open Forum
4
Why QA?Because Below...
We’ve all been there: A change was made in production that caused destruction, chaos and mass hysteria. You know it’s bad when the CEO/CIO/VP of IT/Head Shaman calls you personally and it’s not to wish you a Merry Christmas...
5
QA Process Helps...● Increase Confidence● Attain Predictable Outcomes● Meet Deadlines● Reduce Risk● Reduce Stress...which Improves Code Quality which in turn Improves Service
Why QA?More Seriously Now
6
● Agile Architecture● Continuous Integration● Test-First (JMockit? [5])● Refactoring● Paired Work● Collective Ownership
Credit: Scaled Agile Framework [4]
Six QA PracticesMix and Match to Suit Your Needs
8
Client Project Team Members● VP of IT● Program Manager● Project Manager● 4 to 6 AEM Developers● 2 to 4 Frontend Developers● Ecommerce Technical Consultants● Onshore and Offshore QA Analysts● System and Network Engineers● 20+ Content Authors (In-house and
Outsourced)
Client Case Study FEcommerce Site for Multiple Retail Brands
3|SHARE Project Delivery Team● Engagement Manager● Project Manager● Solution Architect● 3 to 5 Frontend and
Backend Developers● QA Analyst● System Engineer
9
Platform● AEM 6.0 SP2 + Hotfixes [1]● Red Hat Enterprise Linux release 6.6 64-bit● Java Development Kit 1.7.0_75● Apache HTTP Server 2.2.15● WebSphere Commerce 7
Tools● JIRA Cloud for Agile Development [2]● Zephyr for JIRA Cloud [3]● Git● Jenkins
Client Case Study FPlatform and Tools
11
Client Case Study FZephyr for JIRA Cloud
● QA Analyst creates test cases and are linked to Stories which contain functional requirements
● Any defects that arise from the test execution are created as sub-tasks to the Story and assigned to a Developer
● The Developer has context between the original Story requirements and the test case that was run. Simple.
12
Client Case Study FExample Test Case, Step 41 of 41
● Example product detail page (PDP) authoring test case
● QA Analyst sets the Step, Data, and Expected Result fields for each of many steps to be tested for valid function
● Other functional test steps in this example include:
○ Social Component○ Alt Tags Component○ Add to Cart Components○ Color/Style Component○ Pricing Component
13
Client Case Study FPath to Production
Dev Environment1 x Author + Dispatcher1 x Publish + DispatcherSmoke Testing
QA Environment1 x Author + Dispatcher2 x Publish + Dispatcher + Load BalancerAkamai CDNFunctional TestingProduction Environment
1 x Author + Dispatcher4 x Publish + 2 x Dispatcher + Load BalancerAkamai CDNUser Acceptance Testing
15
Client Project Team Members● VP of Technology● Program Manager● Project Manager● No AEM Developers (Yet)● 2 to 4 Frontend Developers● Onshore QA Analyst● System and Network Engineers● 12+ Content Authors (In-House + Outsourced)
Client Case Study KConsumer Information Services Brand
3|SHARE Project Delivery Team● Engagement Manager● Project Manager● Solution Architect● 2 Backend Developers● QA Analyst
16
Platform● AEM 6.0 SP2 + Hotfixes [1]● Red Hat Enterprise Linux release 6.3 64-bit● Java Development Kit 1.7.0_71● Apache HTTP Server 2.2.15● .Net Frontend, AEM Backend
Tools● JIRA Cloud for Agile Development [2]● Bugzilla● Mercurial● TeamCity
Client Case Study KPlatform and Tools
18
Client Case Study KPath to Production - Part 1
Dev1 Environment1 x Author + Dispatcher1 x Publish + DispatcherContent Management Sandbox
Dev2 Environment1 x Author + Dispatcher1 x Publish + DispatcherAEM Functional Testing (JSON Interface)Dev3 Environment
1 x Author + Dispatcher1 x Publish + DispatcherAEM Functional Testing (Authoring/UI)
19
Client Case Study KPath to Production - Part Deux
Integrated Dev Environment1 x Author + Dispatcher1 x Publish + DispatcherFunctional QA for Signoff (Client) Staging Environment
Adobe Managed Services
Production EnvironmentAdobe Managed Services
20
● We all want a good QA process, but competing interests on resources make it challenging to put into practice in full
● Incorporate as much QA as you can, as early as you can because...
● Any QA is better than no QA!
RecapFor Long Term Memory
22
[1] https://helpx.adobe.com/experience-manager/kb/aem6-available-hotfixes.html[2] https://www.atlassian.com/software/jira[3] http://www.getzephyr.com/products/test-management-add-ons-for-atlassian/zephyr-for-jira-cloud[4] http://scaledagileframework.com/code-quality/[5] http://jmockit.org/
ReferencesBecause Plagiarism