Presentation is loading. Please wait.

Presentation is loading. Please wait.

Testing Tools in Alfresco

Similar presentations

Presentation on theme: "Testing Tools in Alfresco"— Presentation transcript:

1 Testing Tools in Alfresco

2 About me Fran Álvarez Zaizi Iberia Director
Keywords: ECM, Information retrieval, testing, semantic technologies Skype: fjalvarezb

3 WARNING This presentation may contain technical content Manager discretion is advised

4 Index Testing concept Zaizi testing stack TDD in Alfresco Conclusions
Challenges Ecosystem Continous Testing Advice Evolution TDD in Alfresco Conclusions

5 What is ‘Test’ A test is an assessment intended to measure a test- taker’s knowledge, skill, aptitude, physical fitness or classification in many other topics.

6 Test in Software Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.

7 Our measurement (aka Metrics)
How well our code works How ‘well coded’ our code is How good our tests are How well the requirements are met How well our features responds to massively requests

8 Our assessment Different ways to measure:
Border Line 100%-0% Acceptance criteria definition Example: 100% UT, 95% FT, 70% CC

9 Our test-taker…

10 …knowledge

11 The importance of testing
Testing means: In architecture: The building where I live is not going to fall down In aeronautics: The plane where I’m traveling is not going to fall down In food industries: The food you are having is not going to cause you pain Have I convinced you yet?

12 The difficulty of testing
Other tested subjects know their ‘environment’

13 The difficulty of testing (II)
In Software Engineering we may have: Code run in different servers Race conditions Performance issues Code is integrated with 3rd parties 3rd parties changed 3rd parties might not be available Requirements change after placed in production

14 The difficulty of testing (III)
It was never easy to properly test Don’t waste your time testing! We need to get more profit from the project


16 Scenario

17 Scenario Lots of features Long duration project Several components:
API Behaviours Out-of-the-box customizations Huge permission complexity 3rd party integrations Etc

18 Coding does not end within the code
The ZAIZI Testing Ecosystem Coding does not end within the code

19 The ZAIZI Testing Ecosystem
Analogía con algo? Medio ambiente, edificio?

20 The ZAIZI Testing Ecosystem
Perform unit tests for each piece of code Mock 3rd parties or subsystems Create reports for code covering and code health Create harnesses for APIs Mimic user operations for functional tests Create report for multiuser and multithread testing And more…

21 The ZAIZI Testing Ecosystem : Maven
The foundations Full lifecycle management Deliver Alfresco code in any format War, AMP, Jar, RPM Integrate some useful plugins Surefire Cobertura Sonar

22 The ZAIZI Testing Ecosystem : jUnit
Unit tests Maven surefire integration Virtual Alfresco context Clean run every time Database wiping Does not generate the package if some test fails

23 The ZAIZI Testing Ecosystem : Mockito
Mimic components, 3rd parties Very useful to isolate your code Just test what’s yours

24 The ZAIZI Testing Ecosystem : Sonar
Open Source code quality platform We used for: Check how complex the code is Cyclomatic complexity Check the style of the code Variable/Methods names Code coverage An alternative for cobertura

25 The ZAIZI Testing Ecosystem : Cobertura (II)
Line coverage acceptable Branch covering not enough

26 The ZAIZI Testing Ecosystem :JMeter
Central axis Running services automatically HTTP: Webscripts SMTP: s Etc Used for creating test suites: API harnesses Emulate users Massive requests

27 The ZAIZI Testing Ecosystem : JMeter (III)
Test harness purposes: Catalog of operations Practical examples Inputs, outputs Check unexpected changes visually


29 The ZAIZI Testing Ecosystem : JMeter (IV)
Functional test purposes Collecting use cases Emulating them Checking the response is the one expected

30 The ZAIZI Testing Ecosystem : JMeter (V)
Performance test purposes Basic operations executed several times Several threads, several users Reports for diagnosis Combined with Appdynamics

31 The ZAIZI Testing Ecosystem : Confluence
Used for uploading reports

32 The ZAIZI Testing Ecosystem : Confluence
Checks every single jMeter operation

33 The ZAIZI Testing Ecosystem : AppDynamics
Used for checking and montoring the performance of the applications in the environments Detect slow transactions, memory leaks, etc Huge amount of options and configurations Could be talking about it for hours

34 The ZAIZI Testing Ecosystem : AppDynamics

35 Automated Continous Testing
Testing without human involvement Dedicated server for testing purpose Continous deployment purpose Configurations close to production Repeatable, robust, auditable Again, thanks to the customer!!

36 Automated Continous Testing
Not anymore!!

37 Automated Continous Testing - Algorithm

38 Don’t become a test-addict
Don’t ‘all-in’ if you don’t need it Meet your requirements, do your testing Leverage your code with testing, not the opposite!

39 Evolutioning the ecosystem
Making functional tests more functional Detecting some behaviors within the log files

40 “Would you like to know more?”
Ecosystem 2.0: Splunk Monitor Alfresco logs with ‘live’ tests Detect unexpected outputs Alert unexpected behaviour “Would you like to know more?”

41 Ecosystem 2.0: Selenium Limitations with JMeter in Share
Asynchronous calls are not catched properly Selenium is perfect to emulate user&browser interaction

42 TDD in Alfresco Test Driven Development
Simple software development technique Short development cycles Focused on deliver what is required, nothing else

43 TDD in Alfresco

44 TDD in Alfresco Possible thanks to Alfresco and Maven-Surefire integration Virtual Database and Alfresco context

45 TDD in Alfresco Benefits Inconvenients
You focus on delivering, not coding for coding Coding behaviors, not just code Tests are really part of documentation Debug actual code from tests Usually less number of defects Inconvenients Tests are slow – Alfresco context starting up Not prepared to test UI

46 Cost Savings Time saving Moral savings Cost effective testing
Validation could take more than 3 hours Create, check, delete… Project duration might be 2+ years Do you need a calculator? Reducing development cycle Moral savings Testing the same everyday is frustrating You don’t test the very same twice Cost effective testing You only test when something went wrong

47 Conclusions

48 Conclusions Testing is a good QA indicator
Not conform yourself with Unit tests Build a stack to fully test your apps You will save time and frustations Don’t become crazy by testing

49 Credits (or thanks, thanks, thanks)
Trafigura Michael Phan – Technical Architect James Bennett – Head of QA Ian Carr – Project Manager

50 Thank you!

Download ppt "Testing Tools in Alfresco"

Similar presentations

Ads by Google