Tricentis Tosca 16.0 Released on Feb-2023 ----- UFT has been upgraded from UFT 15.0.1 to UFT One 15.0.2, Beginning at November 2020.

Thursday 29 February 2024

What is Model-based test automation in TOSCA ?

Model-based testing is a technique in which a model of the software system is used to generate test cases. The model is typically a visual representation of the system’s UI components. Each model consists of functional actions that can be performed on the system or application. Test data is added separately to test different scenarios. The advantage of this approach is that it allows for testing a variety of scenarios without hard-coding test data or business logic into the models. The model is used to automatically generate test cases that cover various scenarios and test conditions, making it useful for complex scenarios that rely on several integrated applications and technologies. The models are code-free and highly reusable.

Working Steps: 

Simply scan your application’s user interface or API to create the models. Drag and drop the models into place to create your test cases. Add your test data and the functional actions you want enacted on those screen elements. When done, run your test case.


Wednesday 28 February 2024

What is TOSCA

TOSCA stands for Topology and Orchestration Specification for Cloud Applications. Tosca is an automation tool developed by Tricentis. Tosca is a software testing tool that provides functional and performance testing for various application types, including web, mobile, and enterprise applications. It is known for its model-based testing approach and uses risk-based testing to prioritize testing efforts. Tricentis Tosca also offers test automation and test management capabilities, allowing organizations to streamline their testing processes and increase testing efficiency. Additionally, Tosca integrates with a variety of tools and platforms to provide a comprehensive solution for end-to-end testing.

The Model-based testing approach involves creating a model of the application under test. The details of the application, such as technical specifications, the logic of test cases, and generated test data, are stored separately and combined during test execution. The central model serves as the foundation for test cases, and if there are changes to the elements in the application under test, the technical specifications are updated in the central model.

The Risk-based testing approach utilizes the tool to suggest the most effective test cases and identify the risk contribution of each one. It employs various built-in test design techniques, such as boundary value analysis and equivalence partitioning, to optimize the number of test cases while increasing risk coverage.


Note- 

Boundary Value Analysis

Boundary value analysis is one of the widely used case design technique for black box testing. It is used to test boundary values because the input values near the boundary have higher chances of error.

Whenever we do the testing by boundary value analysis, the tester focuses on, while entering boundary value whether the software is producing correct output or not.

Boundary values are those that contain the upper and lower limit of a variable. Assume that, age is a variable of any function, and its minimum value is 18 and the maximum value is 30, both 18 and 30 will be considered as boundary values.

The basic assumption of boundary value analysis is, the test cases that are created using boundary values are most likely to cause an error.

Equivalence Partitioning Technique

Equivalence partitioning is a technique of software testing in which input data is divided into partitions of valid and invalid values, and it is mandatory that all partitions must exhibit the same behavior. If a condition of one partition is true, then the condition of another equal partition must also be true, and if a condition of one partition is false, then the condition of another equal partition must also be false. The principle of equivalence partitioning is, test cases should be designed to cover each partition at least once. Each value of every equal partition must exhibit the same behavior as other.

The equivalence partitions are derived from requirements and specifications of the software. The advantage of this approach is, it helps to reduce the time of testing due to a smaller number of test cases from infinite to finite. It is applicable at all levels of the testing process.


Licence Types in TOSCA

Tricentis offers two kinds of licences to allow you to manage your Tricentis Tosca. Tricentis Tosca offers the following licensing categories:

  • Cloud Licensing: floating licensing via Cloud-hosted license server.

  • On-Premise Licensing: floating licensing via your own, on-premise license server.



Wednesday 21 February 2024

Git

Git is version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarly used for source-code management in software development, but it can be used to keep track of changes in any set of files.

Git LifeCycle:

1. Working  Directory - 

  • The place where your project resides in your local disk.
  • This project may or may not be tracked by git.
  • In either case, the directory is called the working directory.
  • The project can be tracked by git, by using the command git unit.
  • By doing git init, it automatically creates a hidden .git folder.
2. Staging Area.
  • Once we are in the working directory, we have to specify which files are to be tracked by git.
  • We do not specify all files to be tracked in git, because some files could be temporary data which is being generated while execution.
  • To add files in the staging area, we use the command git add.
3. Commit.
  • Once the files are selected and are ready in the staging area, they can now be saved in repository.
  • Saving a file in the repository of git is known as doing a commit.
  • When we commit a repository in git, the commit is identified by a commit id.
  • The command for initializing this process is git commit-m "message"

Version Control System

 What is version control ?

Version control is a system that records/manages changes to documents, computer programs etc over time. It helps us tracking changes when multiple people work on the same project. 

Without version control-

  1. Versioning was Manual
  2. Team collaboration was a time consuming and hectic task.
  3. No easy access to previous versions.
  4. Multiple version took a lot of space.

Advantages of Version control

1. Versioning is Automatic

2. Team Collaboration is simple

3. Easy access to previous versions

4. Only modified code is stored across different versions, hence saves storage. 


Types of Version Control Cystems:

     1. Central VCS 

     2. Distributed VCS

Centralized Version Control System:

  1. Centralized Version Control System has one single copy of code in the central server.
  2. Developers will have to "Commit" their changes in the code to this central server.
  3. "Commiting" a change simply means recording the change in the central system.
Distributed Version Control System:
  1. In Distributed VCS, one does not necessary rely on a central server to store all the versions of a projects file.
  2. Every developer "Clones" a copy of the main repository on their local system.
  3. This also copies, all the past versions of the code on the local system too.
  4. Therefore the developer need not be connected to the internet to work on the code.
Ex- Git

Sunday 18 February 2024

What is DevOps

DevOps is a software development methodology which improves the collaboration between developers and operations team using various automation tools. These automation tools are implemented using various stages which are a part of the DevOps LifeCycle.

Working steps : 

1. Continuous development - (Plan, Code)  - This stage involves committing code to version control tools such as Git or SVN for maintaining the different versions of the code, and tools like Ant, Maven, Gradle for building/ Packaging the code into an executable file that can be forwarded to the QAs for testing.

Tool - Git is a distributed version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarly used for source code management in software development, but it can be used to keep track of changes in any set of files.

 2. Continuous Integrations -  This stage is a critical point in the whole DevOps LifeCycle. It deals with integrating the different stages of the devOps lifecycle and is therefore the key in automating the whole DevOps Process.

Tool - Jenkins is an open source automation server written in Java.  Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery.

3. Continuous Deployment - [Release, Deploy ] In this stage the code is built, the environment or the application is containerized and is pushed on to the desired server. The key processes in this stage are Configuration Management, Virtualization and Containerization. 

Tool - Continuous Deployment---> puppet

4. Continuous Testing - The stage deals with automated testing of the application pushed by the developer. if there is an error, the message is send back to the integration tool, this tool in turn notifies the developer of the error. If the test was a success, the message is sent to integration tool which pushes the build on the production server.

Tool -- Selenium, Tosca etc .. is a portable software testing framework used for web application. It is an open source tool which is used for automationg the tests carried out on web browsers(Web applications are tested using any web browser)

5. Continuous Monitoring - [Operate, Monitor] The stage continuously monitors the deployed application for bugs or crashes. It can also be setup to collect user feedback. The collected data is then sent to the developers to improve the application. 

Tool - Nagios is an open source devops tool which is used for monitoring systems, networks and infrastructure, It also offers monitoring and alerting services for any configurable event. 

DevOps

DevOps (a portmanteau of “development” and “operations”) is the combination of practices and tools designed to increase an organization’s ability to deliver applications and services faster than traditional software development processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

In simple terms, DevOps is about removing the barriers between traditionally siloed teams, development and operations. Under a DevOps model, development and operations teams work together across the entire software application life cycle, from development and test through deployment to operations.




How DevOps Working :


Under a DevOps model, development and operations teams are no longer “siloed.” Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.

In some DevOps models, quality assurance and security teams may also become more tightly integrated with development and operations and throughout the application lifecycle. When security is the focus of everyone on a DevOps team, this is sometimes referred to as DevSecOps.

These teams use practices to automate processes that historically have been manual and slow. They use a technology stack and tooling which help them operate and evolve applications quickly and reliably. These tools also help engineers independently accomplish tasks (for example, deploying code or provisioning infrastructure) that normally would have required help from other teams, and this further increases a team’s velocity.

Benefits of DevOps

Move at high velocity so you can innovate for customers faster, adapt to changing markets better, and grow more efficient at driving business results. The DevOps model enables your developers and operations teams to achieve these results. For example, microservices and continuous delivery let teams take ownership of services and then release updates to them quicker.

Increase the frequency and pace of releases so you can innovate and improve your product faster. The quicker you can release new features and fix bugs, the faster you can respond to your customers’ needs and build competitive advantage. Continuous integration and continuous delivery are practices that automate the software release process, from build to deploy.

Reliability

Ensure the quality of application updates and infrastructure changes so you can reliably deliver at a more rapid pace while maintaining a positive experience for end users. Use practices like continuous integration and continuous delivery to test that each change is functional and safe. Monitoring and logging practices help you stay informed of performance in real-time.

Scale

Operate and manage your infrastructure and development processes at scale. Automation and consistency help you manage complex or changing systems efficiently and with reduced risk. For example, infrastructure as code helps you manage your development, testing, and production environments in a repeatable and more efficient manner.


Build more effective teams under a DevOps cultural model, which emphasizes values such as ownership and accountability. Developers and operations teams collaborate closely, share many responsibilities, and combine their workflows. This reduces inefficiencies and saves time (e.g. reduced handover periods between developers and operations, writing code that takes into account the environment in which it is run).

Security

Move quickly while retaining control and preserving compliance. You can adopt a DevOps model without sacrificing security by using automated compliance policies, fine-grained controls, and configuration management techniques. For example, using infrastructure as code and policy as code, you can define and then track compliance at scale.

Why DevOps


Software and the Internet have transformed the world and its industries, from shopping to entertainment to banking. Software no longer merely supports a business; rather it becomes an integral component of every part of a business. Companies interact with their customers through software delivered as online services or applications and on all sorts of devices. They also use software to increase operational efficiencies by transforming every part of the value chain, such as logistics, communications, and operations. In a similar way that physical goods companies transformed how they design, build, and deliver products using industrial automation throughout the 20th century, companies in today’s world must transform how they build and deliver software.




















































Friday 16 February 2024

TOSCA Test Data Service (TDS)

 Introduction:

  • Test Data Service (TDS) is a feature in TOSCA which allows a user to Read, Insert, update and delete Test data.
  • Test Data should be inserted outside the TOSCA Commander using a TDS Web UI which enables Business Users to update and create the Test Data without using TOSCA License which will benefit in saving the cost for the Project.

Setup of TDS:

  • Enter TOSCA Server Tricentis Services URL in Settings->Tricentis Services
  • Create and update TDS Endpoints in Configuration Parameter
  • Ensure to put AuthenticationKey Configuration Parameter if TDS Repository is restricted.
  • Ensure to enter TDS Type in Configuration Parameter for respective Test Case for using the right data.

Using TDS:

User can use Standard Modules as below. For more detail click on each link

Thursday 15 February 2024

Unattended Execution in TOSCA

Unattended Execution is an important component of Tosca Distributed Execution.

It allows you to run tests even if the Agent screen is locked, without a user logged in to the Agent machine. The Tosca RDP Server runs as a service on the Agent machine, and it connects to itself.


NOTE : If you have graphical user interface (GUI) tests, you must set up Unattended Execution.

Tosca Distributed Execution.

Distributed System

Distributed System is a collection of autonomous computer systems that are physically separated but are connected by a centralized computer network that is equipped with distributed system software. The autonomous computers will communicate among each system by sharing resources and files and performing the tasks assigned to them.


TOSCA Distributed Execution (DEX): 

Tosca's Distributed Execution speeds up test execution by remotely managing and distributing your automated test sets across multiple virtual machines, computers in your network or in the cloud.

Tosca Distributed Execution is provided for multi-user environments that use a common repository.

How DEX works: 

Tosca Distributed Execution is available for multi-user environments. This means that you and other users share a common repository, which is a database that stores test data and test results. 

You create a TestEvent in Tosca Commander and check in the changes to the common repository. A TestEvent contains several ExecutionLists.

Once you press Execute now in Tosca Commander, it sends the request to the Tosca Distribution Server.

The Tosca Distribution Server distributes these ExecutionLists between the available Tosca Distribution Agents.

Once a Tosca Distribution Agent has executed an ExecutionList, the system saves the results to the common repository.

1. It is used to do parallel executions which can be executed from TOSCA Commander, qTest , Any DevOps Tools like AzureDevops , Jenkins.

2. User should create Test Events in TOSCA Commander and Link the Execution list which needs to be executed in DeX

3.Proper Configuration setup should be done in TOSCA Commander in order to Execute the Tests in Right Agent Machines

4.All the Agent Machine should be RDP enabled and Bypass Windows Start Screen to execute Keyboard and Mouse commands.

5. TOSCA server should be installed along with DeX Server in Windows Server Machine

6. ALL DeX Agent Machine should be connected with DeX Server with TOSCA server End point in Agent Configuration Setup

7. CI Server should be setup along with proper configuration in order to execute scripts from CI tools Azure DevOps or Jenkins etc.

8.Certificate should be installed in TOSCA Server for making HTTPS

Features: 

1. Runs tests in parallel across platforms - Run multiple tests and regression sets in parallel across various platforms, allowing you to accelerate your releases.

2. Unattended execution and real-time monitoring - Run UI tests on machines with locked screens via unattended execution. you can easily monitor the status of the distributed test events and see which agents are being used. 

3. Real-time monitoring - A web based event monitor shared real-time alerts on agent health during your distributed test execution, and gives you the ability to heal agents remotely.

4. Clear reporting and result collection - Gain a detailed breakdown of the test log info and step-by-step results of the test execution in tosca, allowing you to gain a full picture of your release readiness.

5. Easy configuration - Automated load balancing achieves the optimal distribution of test sets- automatically.

DEX Set up Options:

You can set up Tosca Distributed Execution in one of the Following ways : 

1. DEX with AOS (Automation Object Service)

2. DEX without AOS. 

Note - These two ways of setting up tosca DEX are mutually exclusive. You must choose one or the other. Tricents recommends setting up DEX with AOS, Since it has a number of Advantages over Distributed Execution without AOS.

1. DEX with AOS(Automation Object Service) 

To set up Distributed Execution with AOS (Automation Object Service), follow the steps below:

  1. Install the Tricentis Tosca Server on the machine where you want the Tosca Distribution Server.

  2. Install Tosca Commander on the following machines:

    • All machines on which you want to create TestEvents and trigger their execution.

    • The machine that holds the Tosca Distribution Server.

  3. Install Tosca Distribution Agents on the machines where you want your agents, i.e. the machines that should execute the TestEvents.

  4. Administer licenses for the installations of Tosca Commander and for the Tosca Distribution Agents.

  5. Start your Tosca Distribution Agents.

  6. For each agent, define the connection to the Tosca Distribution Server.

  7. On each machine from which you want to trigger executions with Tosca Commander, define the connection to the Tosca Distribution Server.

  8. Activate Distributed Execution with AOS.

  9. Set up workspaces.

  10. Create and configure test results folders.


Once you have set up Distributed Execution with AOS, you can perform the following actions:

  • Create and execute your TestEvents.

  • Monitor the execution of your TestEvents with the Tosca Distributed Execution Monitor.


NOTETo take advantage of the performance improvements that Tosca Distributed Execution offers, install the Tosca Distribution Server and the Tosca Distribution Agents on separate machines.

Tosca Distribution Agents:

Tosca Distributed Execution works with two types of Tosca Distribution Agent:
  • Execution Agent

  • A full installation of Tosca Commander

Execution Agent

Use Execution Agent if you want to save memory and disk space.

This agent can only execute TestCases created with engine 3.0. You can use Execution Agent with Tosca Unattended Execution and Tosca Continuous Integration, provided that you are not running mixed and/or classic tests.


A full installation of Tosca Commander

A full installation of Tosca Commander can execute TestEvents created with Classic EnginesEngines 3.0, or both. They work with Tosca Unattended Execution and Tosca Continuous Integration.