General

AludraTest is an extensible framework for automating functional and integration tests of web applications and other technologies.

The framework unites the methodologies, capabilities and best practices of

  • junit,
  • selenium / webdriver,
  • data driven testing,
  • key word / action word testing,
  • hybrid testing,
  • strong refactoring and
  • continuous delivery.

Origin and history

AludraTest has been build for automated, continuous testing of an in-house developed web application with many different interfaces for an logistics company. Though we had to

  • integrate different technologies
    • web application including AJAX,
    • messaging (JMS)
    • file (ftp, sftp, http, nfs)
    • different content formats: XML, EDI, EDIfact, CSV, TSV, custom flat file
  • cope with refactoring of an iterative development approach
  • cope with development of two to three parallel release branches

The market and Requirements

There are many commercial as well open-source testing tools and frameworks in the market.

Commercial Tools

Commercial solutions usually have a strong focus on manual testing, test management and reporting. Test automation may be an additional component or even be integrated and often focus on capture-replay. Some tools have some refactoring capabilities. Some tools provide adapters to several technologies for automation.

On the down side they usually bring their own editors and do not treat test automation as software development. In consequence, these tools have limited support for wide spread continuous delivery solution, source code management, refactoring support, branching and merging.

Often you can get very fast and good results but maintenance can be challenging depending on your development model for the main application.

Open Source Tools

The open-source tools usually focus on exactly one aspect, like the famous junit does on unit testing of single classes or a bunch of classes and provides a framework to automate any kind of algorithm.

Selenium does a very good job to remote control a huge amount of web browser - operating system combinations, but does not provide any framework for writing tests.

Both have no superior GUI tool and tread test automation as software development. Though all tools for software development like eclipse EDI, git, svn, jenkins/hudson etc. can be applied.

Requirements

AludraTest shall fill the major gaps between commercial and open-source tools by applying methods and tools for software development and build up an integrated tool chain.

Main requirements are listed below. For detailed requirements, please refer to GitHub issues marked as 'feature' and documentation of single services and components.

IDCriteriaPrioNameDescriptionSolution
1Maintainability-/-Maintainability and Process Requirements
1.1Maintainability1_shallreuseThe solution shall support and encourage reuse of modules, behavior, data and configuration.pattern, Action Word Library, code checks
1.2Maintainability1_shalldev-likeTest automation shall be treated like software development. Common developement processes shall be applied like branching, merging, review, continuous delivery and (automated) QA
1.2.1Maintainability1_shallIDE supportThe test automation language shall be supported by an IDE that provides autocompletion and refactoring capabilities. Can be a self created plug-in.JAVA, eclipse
1.2.2Maintainability1_shalltool chainThe tool chain shall effectively support branching and merging eclipse EDI, git and gerrit
1.2.3Maintainability1_shallautom. QAThe tool chain shall provide capabilities for automated quality checks junit, pmd, sonarqube on jenkins
1.2.4Maintainability1_shallcont.integr.The solution shall integrated with continuous integration solutions can be executed from jenkins, surefire-provider
2Usability-/-Usability and Staff Requirements
2.1Usability1_shallany techThe solution shall provide a unified pattern to test any technologysee pattern
2.2Usability1_shalleasy learnThe test automation language shall be easy to learn or be known widelyJAVA and patterns
2.3Usability1_shallyoung prof.Young professionals and students shall be able to perform basic automation taskssee the patterns
2.4Usability1_shallexpert extendsExperts shall be able to extend the solution and automate any special or complex behaviorsee services
2.5Usability1_shallend user reportThe solution shall generate test result reports that can be understood by business experts.HTLM test result log
2.5.1Usability1_shalltest stepsA business / domain expert shall be able to identify exactly what happened. The log shall show actions in DSL or key word like manner:
"on login page enter into edit field 'user' the value 'Todd'"
action word like test result log
2.5.2Usability1_shall-The solution shall identify the most likely cause for the test result and support routing the results according needed skill to analyze the test.color coded result log for:
passed, functional failed, performance failed, automation issue, framework / environment problem
3Functional-/--Functional Requirements
3.1Functional1_shallext. configThe solution shall provide unified and extensible configuration mechanism for different environments and scenariosConfigurationService
3.2Functional1_shalldata drivenThe solution shall support reuse of test cases (behavior) for different data (data driven testing)see data class, DataProvider
3.3Functional1_shallextensibleThe solution shall support extension points for any technologysee services
3.4Functional1_shallweb/AJAXThe solution shall support automation of web applications using asynchronous transfer with AJAXWebGuiService with selenium as technical driver
3.5Functional1_shallfileThe solution shall support interaction with (remote) filesFileService, (s)ftp, http(s), nfs, smb
3.6Functional1_shallEDI, EDIfactThe solution shall support EDI, EDIfactEdiFileService
3.7Functional1-shallcustom contentThe solution shall support custom contentFlatFileService, FileServe + content handler
3.8Functional2_shouldcliThe solution should support any operation on command line interface
3.9Functional-/--Portability
3.10Portability1_shallWin, Linux, MacOsThe solution shall be able to run and be developed on different operating systemsJAVA (Windows, Linux, MacOS)
3.11Portability1_shallOS:AUT <> OS:TAThe solution shall be able to test applications the run on different operation systemsJAVA (Windows, Linux, MacOS), selenium (Java with several browser/os configs)