Carina Framework

Carina Open Source Testing Tools :

Carina is a Java-based test automation framework that unites all testing layers: Mobile applications (web, native, hybrid), WEB applications, REST services, and Databases.

Pros
● Carina Framework is built on top of the most popular open-source solutions like Selenium, Appium, and TestNG allowing to reduce dependence on the specific technology stack.

● Carina supports all popular browsers (IE, Edge, Safari, Chrome, Firefox) and mobile devices (iOS/Android). A unique feature for a mobile domain: it reuses test automation code between IOS/Android up to 70-80%.

● Carina is cross-platform. Tests may be easily executed both on Unix or Windows OS. All you need is JDK 11 installed.

● The framework supports different types of databases – both relational and non-relational (MySQL, SQL Server, Oracle, PostgreSQL), providing the amazing experience of DAO layer implementation using the MyBatis ORM framework.

● API testing is based on a Freemarker template engine. It enables great flexibility in generating REST requests, and responses are dynamically changed by incoming arguments.

● Carina allows you to integrate the BDD approach into your test project easily

 

Carina Open Source Test Automation Tool Features

Works with different browsers
Carina works well with Chrome, Safari, Firefox, and more such browsers.
● Code reusability
For mobile-based apps, Carina reuses automation code between iOS and Android apps up to 70-80 percent.
● Cross-platform Test cases can be executed both on Windows and Linux.
● Support for different databases
Carina works well with both relational and nonrelational databases such as MySQL, SQL Server, Oracle, etc.
Freemarker template
Testing in Carina is carried out on this template, which dynamically changes arguments based on incoming requests.
● It provides an all-in-one solution for different kinds of software testing
● Carina open source testing tool supports the parallel execution of test cases

 

Cons
● The automation quality depends on how much the developer is experienced.

 

Getting started

● Install and configure JDK 11+
● Install and configure Apache Maven 3.6.0+
● Download the latest version of Eclipse and install the TestNG plugin, maven-dependency-plugin connector, and optionally Lombok.
The easiest way to initialize a new project is to use the Carina archetype, you will get the correct project structure along with test samples. Run the below command from any empty folder:

mvn archetype:generate -DarchetypeGroupId=com.qaprosoft \
-DarchetypeArtifactId=carina-archetype \
-DarchetypeVersion=RELEASE \
-DgroupId=<your_groupId> \
-DartifactId=<your_artifactId> \
-Dname="<you_project_name>" \
-Durl=<your_project_url> \
-Dversion=<your_project_version>

If any attribute contains spaces, it should be set in quotes (e.g.: -Dname=”Hello World”). In the above Maven command you need to specify 5 attributes, while the first 3 should be left unchanged:

Attribute                                                                   Meaning                                              Example
-DgroupId                                          Company domain in reverse order               com.mycompany
-DartifactId                                         Java project name                                             project-qa
-Dname                                               Name with more details                     “Test Automation Project”
-Durl                                                    Company URL                                          http://mycompany.com
-Dversion                                           Project version                                                             1.0

Zebrunner Reporting Integration

Integrating the Carina framework with Zebrunner is easy!
Before the start, make sure you have Zebrunner PRO organization tenant or Zebrunner Community Edition installed.

● Create quality trends reports with dozens of metrics

● Report tests from Carina based project into Zebrunner

● Track test results in real-time

● Perform smart test analysis with logs, videos and screenshots

Behavioral Driven Development (BDD)

In software development, BDD refers to Behavior Driven Development, it is a software development approach. It is an Agile programming development procedure that supports joint efforts among designers, QA, and non-developers or marketing members in a product. It is written in shared languages and improves communication between technical and non-technical teams.

Why use BDD Framework?
The essential role of BDD methodology is to improve correspondence among the partners of the task with the goal that all individuals accurately comprehend each component of the group before the development process begins. This assists with recognizing key situations for every story and furthermore eliminates ambiguities from prerequisites.
TDD may not have the capacity to indicate the specific behavior, however, you accomplish higher caliber with programming code.
BDD is the way to remove the communication gap between technical and non-technical teams because in BDD we write test cases in simple text. This process involves the output, entities, and events that the user cares about.

BDD architecture

Pros of Behavior Driven Development (BDD)

● The BDD uncovers additional capabilities and complexities from the project. As it identified the scenarios at the start so there is less rework at the end of the project.

● It is the domain-specific language that focuses on the domain of your business and it is also important for defining the project specifications. It avoids misunderstandings and improves communication.

● As the detailed specifications are written in the starting and we write tests before the code. So this is the plus point for the BDD as the developers only need to focus on implementing which makes the test cases pass. So the developers do not focus on other features

● The involvement of the tester starts from the start of the project life cycle, the specification phase. Testing is a backout task and it only comes to play when there is a physical product to test. Testers have analytical talent and can start from the start of the project.

● The Product Owner has knowledge of what we need to deliver as a piece of functionality. The pieces of functionality are broken down into pieces that are much easier to use. This makes the development of the project much easier and removes the complexity of the project in the earlier stages.

● “Shift left” is a popular expression for testing early in the development procedure. Testing prior means fewer bugs later. In BDD, test case definition inherently turns out to be a piece of the necessities stage (for waterfall) or prepping (for Agile). When conduct situations are composed, testing and automation can theoretically start.

Cons of Behavior Driven Development (BDD)

● Creating the Scenarios and maintaining the files needs lots of effort and time. So it is not good for a short project which we need to complete in a short interval of time. But for a long-term project, it’s worth using the BDD approach.

● We need good communication between the person who is developing the automation code and the person who is writing the features files. A person who is writing the automation needs these files and scenarios for developing the automation script. If they Don’t have a mutual understanding of the files then it’s hard to develop the project.

● It defines test data which makes it easier to create automated test cases but when used to execute test cases it raises the problem when the test environment is never left in a known state. The test cases are dependent on the external data often causing the problem when we execute the test cases

● It is very hard to convert Given statements into setup instructions and scripts that put the system into the known state before the When statements are executed.

● You need to create the document for the BDD project because there are many files and scenarios which need to be understood so that we create documentation.

● The main drawbacks of BDD are two-fold. Since correspondences between the client and the developer are basic, if the client is not available, it will be hard to work past ambiguities and questions created by the client’s stories.

Leave a Reply