/
Overview

Overview

Why Should You Use Testifi:CAST

It is important to pick the right tool for test automation

  • Full team collaboration. Test automation works best when the whole team is able to work together on the same platform.
    • With shared repository, different team members working on the same tests is straightforward and simple
    • With Jira / XRay integration, sharing test execution results is easy
    • With Jira, collaboration between business analysts, developers, testers and product owner is effective
  • Extensibility. One can brows among a big plugin selection or can build your own plugin and attach it to our platform to extend the default capabilities of Testifi:CAST.
  • Integration into existing workflows. Use Maven or any other build tool to run it within existing continuous integration workflows.
  • Cross Browser and Cross Platform. You can create and run Web browser tests on several platforms or mix them with API and / or Win App steps.
  • Reliable Technology. Testifi:CAST uses reliable and proven technology like Selenium, TestNG.  


Space Search


Core:

  • definition of abstract testobjects every concrete testobject derives from and their lifecycle (TestObject interface providing composition pattern - tree/dom -, AbstractTestobject implementing TestObject and defining lifecycle)
  • definition of common testobject not interacting with SUT (TestSuite, TestScenario, TestStep,Assert, Echo, Pause,Property,Inject...)
  • definition of common plugins for general use (LookupPlugin, DataLookupPlugin, StringUtilPlugin, NumberPlugin)
  • parsing classpath for annotated java classes (reflection)
  • parsing classpath for .tto config files (reflection)
  • parsing classpath for plugins (reflection)
  • marshalling configs into java objects for execution (xstream)
  • providing template mechanism for object generation, runtime operation (variable lookup) and plugin execution (freemarker)


Branches(naming to be improved):

  • modules: definition of testobjects accessing the SUT
  • plugins: definition of functionality used by testobjects for ...? (data manipulation/conversion/retrieval)
  • others: special purpose functionality not fitting module or plugin (e.g. testng-runner , cucumber-bridge)


Core plugins:

  • PatternGeneratorPlugin - generates values fitting a regex
  • DataLookupPlugin - getting data defined in adressed data file
  • DOMLookupPlugin - traversion through dom
  • FileLookupPlugin - getting files or their content
  • NumberUtilPlugin - extracting/converting numbers from strings
  • StringUtilPlugin - handling strings like converting, escaping, trimming
  • ValidationPlugin - validating objects normally retrieved by other plugins (e.g must not be null)


Advanced core plugins for developers in testing - used only by power users knowing about the inner structure of java objects to temporarily overcome certain lack of features which are unknown/unimplemented

  • LookupPlugin - accessing data in a specialized way (runtime vars, configured attributes, members, methods) 
  • ClassUtilPlugin - converting a string to a class
  • LoggingUtilPlugin - changes the logging behaviour for certain kind of object or object kind





Http module:

  • definition of http related objects commonly used to access rest-apis or integrate into api-related tools (jira-api, xray-api)

Selenium module:

  • definition of testobjects interaction with ui through selenium api
  • defenition of abstract device plugin to spin up devices for ui testing

Json plugin:

  • defining functionality to manipulate or retrieve data to/from json

Xml plugin:

  • defining functionality to manipulate or retrieve data to/from xml

Chrome plugin:

  • defining functionality to spin up chrome for ui testing

Related content