automation for developers
Post on 22-May-2015
Embed Size (px)
DESCRIPTIONAutomation has bing a demanding field with the growth of the aoganization. This presentation includes mind mapping series of slides in path of quality asspect for developers
- 1. Automation For Developers
2. We are super developers and we don't make mistakes. I never do changes to my code. I am the life time owner of my code. I am the only person who use each component I build. We have telepathic. My code runs on each platform Its platform vendors responsibility to makeplatforms unique. 3. What do you think ?????? 4. Who write the code ??Who works with your code?? 5. 6. Quality is free, but only to thosewho are willing to pay heavily for it.- Lister, Demarco: Peopleware 7. 8. Testing Good Bad And Ugly 9. 10. 11. 12. 13. Understanding - Cost of test Wrong way 14. Understanding - Cost of test Right way 15. Basic Understanding - Unit Test Focused on testing behavior of aparticular class, module or method. Smallest part of the application. Fast (less than 0.1 second per test) No external implementationdependencies(filesystem, database, web services, etc.). Alldependencies are faked for the test context. Can easily be parallelized, since each test is atomic 16. Basic Understanding - Integration Test Focused on verifying the integrationof one or more components together. May have external dependencies. A test that takes longer than a unitTest shouldIntegration Tests - with in WSO2 Executes on product pack created by build. Not depending on other product environments. Independent. Lightweight. Covers only scenarios related to features on individual product. 17. M = E N + 2P,whereE = the number of edges of the graph.N = the number of nodes of the graph.P = the number of Connected Componentsfi 18. 19. Jacoco /EclEmma coverage reportEmma coverage report 20. Platform scenarios. Integration scenarios. UI scenarios. Real world use cases. Performance and Security scenarios. Patches provided. 21. How tests really looks likePlatform - Platform TestsProduct - Integration TestsComponentComponent- Unit Tests- Unit TestsCross Platform TestsComponent- Unit TestsComponent- Unit TestsProduct - Integration TestsComponentComponent- Unit Tests- Unit TestsComponent- Unit TestsComponent- Unit TestsProduct - Integration TestsComponentComponent- Unit Tests- Unit TestsComponent- Unit TestsComponent- Unit TestsProduct - Integration TestsComponentComponent- Unit Tests- Unit TestsComponent- Unit TestsComponent- Unit Tests 22. What got better and bigger Lightweight test execution engine. More focus on platform wide scenarios. More user friendly configuration management. Ability to extend TestNG based listener implementation Ability to plugin custom servers like Tomcat, CXF ,ActiveMQ,Apache FTP and more. Ability to come up with your automation story. 23. Organization Test Automation FrameworkmodulesEngineExtensions AdminService APICore -UtilitiesAutomation TestCore Servers ExternalToolsExtensibilityModulesConfiguration 24. Overall ArchitectureSupport Modules Test Automation FrameworkTestBuild platform -MavenTest Trigger- SurefireTesting Framework -TestNgTest SuiteConfigurationplatformAutomation.xmlExtensiblemodule handlingContextManagementCoverageInstrumentation.txtPluggable ExtensionsTestNg ListenerExtension ModulesServerManagementTenantManagementTest ToolingExtensionsEngineTestNg ListenerExtensionsConfigurationManagementAdminServiceAPIReusablecore utilsfilter.txtTest ConfigurationsTestNg.xmlTeTsetNstgN.xgm.xlml 25. Flexibilities Provided Manage several products inside single test. Manage users in several product domains. Deployment of artifacts for different products underdifferent users. Configured admin service clients as test oriented API. Retrieving test environment configurations easily. Running same test in both local and Stratos environments. Reporting TestNg and surefire reports for all your tests. Tooling support of Selenium and Jmeter. 26. Technologies for AutomationTest Framework Build SystemsCode CoverageExtensibility SupportUI Automation 27. Like JUnit but not JUnit Annotation based Architecture Test Grouping Extensibility features Listeners Bean Shell Annotation Transformers Easiness of managing Test cases. Failed test execution (Straight and easy) 28. Trigger out TestNg. Control TestNG flow (Through Surefire TestNg Utils) Generate reports. (HTML, XML and emailable report) 29. Execution Started@BeforeSuite@BeforeTest@BeforeClass@AfterTest@AfterSuiteExecution Closed@BeforeGroups@BeforeMethod@AfterMethod@AfterGroups@AfterClass 30. Listeners are interfaces allows to modify TestNG'sbehavior. Listeners are binned to a testNg execution. Listeners implement the interface org.testng.ITestListener IExecutionListener Triggers at start and end of any execution. ISuiteListener. ISuiteListener Triggers at suite start and end.ITestListener Triggers at Test start, Finish, Failure, Skip and partial failure. Reporters implement the interface org.testng.IReporter Notified when all the suites have been run by TestNG. The IReporter instance receives a summary of entire test run 31. Offline instrumentation On fly instrumentation LOC coverage Class coverage cyclomatic complexity 32. Automation.xmlCommonExtensionsTest SuiteTest SuiteExtensionsTest SuiteUtilitiesTestclassesAutomation Framework Engine 33. 34. Includes all utility classes that can play supportive role inside a test. Ex :- Axis2 client. Wire message monitor. Custom server startup scenarios (Axis2, Tomcat, ActiveMQ). Concurrency test scenarios. Rest Clients. Provides common methodology for all developmentteams and Automation team to maintain a setof supportive classes without changing the Core. 35. Questions?Happy Automation !! 36. Contact us !