# The Sofy Glossary: No-Code Automation Testing Terms to Know

Given how quickly the DevOps landscape continues to shift, it's easy to get confused. Fortunately, Sofy is here to help!

**UPDATED:** June 06, 2023-**POSTED:** February 19, 2022

While many terms found throughout Sofy’s website and documentation are nothing new to seasoned engineers, Sofy’s no-code approach makes what were once highly technical, time-consuming, and just generally _complex_ tasks incredibly easy to approach. In turn, a portion of our user community benefits from a little explanation of technical terms they may encounter while interacting with Sofy. To help make an easy process even easier, we’ve compiled the brief glossary below.

### _APK & IPA_

APK and IPA are file types. APK is the standard file format for Android apps and IPA is a common file format used by Apple apps.

### _API ( **application programming interface)**_

An API is a software interface that allows two or more apps to communicate with one another.

### _Apple provisioning, UDIDs, & developer provisioning files_

Apple places specific restrictions on app distribution in the company’s software ecosystem. Sofy primarily handle developer builds, beta versions of an app. Apple restricts developer build use to devices for which the company has granted permission specifically for testing purposes. Apple requires that developers integrate unique device IDs (UDIDs) into their test builds (a process known as _signing the build_). You can find Apple permission information in a test build’s developer provisioning file.

### _AR & VR_

AR ( _augmented reality_) and VR ( _virtual reality_) refer to two different but closely related approaches to human interface and interaction with virtual spaces. Augmented reality generally manifests today as a digital user interface overlay attached to cameras or similar devices, allowing users to interact with or simply view the world around them with digital augmentation, like notifications about receiving text messages or emails.

Today, well-known augmented reality devices include sunglasses featuring digital overlays (like Google’s line of [Glass smart glasses](https://en.wikipedia.org/wiki/Google_Glass) and smart phone camera-focused games such as Niantic, Nintendo, and the Pokémon Company’s highly popular _[Pokémon Go](https://en.wikipedia.org/wiki/Pok%C3%A9mon_Go)_(2016).

Rather than augmenting the world around a user, virtual reality invites users to enter a new reality altogether: A _virtual_ one. Virtual reality provides users with a simulation of an environment. They experience this environment by way of a device, usually a dedicated virtual reality headset combined with peripherals that allow a user to interact with the user’s digital surroundings. Well-known virtual reality companies include [VIVE](https://en.wikipedia.org/wiki/HTC_Vive) and [Meta](https://en.wikipedia.org/wiki/Meta_Platforms).

Both augmented reality and virtual reality offer a wide variety of potential applications. These include not only recreation (such as VR-specific games) and the ability to socialize with other users in virtual spaces, but are increasingly also used for a wide variety of other purposes, such as medical and military training.

### _Automation, mobile automation_

We all know what _automation_ is—we’re surrounded by automated tasks performed by, for example, machines and Artificial Intelligence—but the phrase _mobile automation_ is not as immediately clear. For our purposes at Sofy, _mobile automation_ refers to automated testing performed on mobile devices, often through an app (such as [Appium](/content/blog/is-appium-outdated/index.html)) or a browser-based service.

### _Bug tracking platforms_

Certainly, bugs are a crucial part of the world’s ecosystems, but when it comes to the digital world, bugs are simply no good. We’ve all encountered bugs in software and know that they can be a serious problem. It’s important for developers to squash them as quickly as possible, and ideally before they multiply! In turn, every development team needs some organized means of tracking bugs. This usually takes the form of a platform (such as Jira) where users who experience problems inform development teams by way of submitting a formal ‘ticket’. This ticket is then viewed and addressed by engineers and other relevant personnel.

### _CI/CD_

CI stands for _Continuous Integration_ while CD is an abbreviation of _Continuous Deployment_. Together, CI/CD form a developmental pipeline in which developers make frequent and reliable incremental code changes. The CI/CD pipeline maximizes efficiency, keeping development on schedule. Sofy integrates with developer platforms, allowing developers to directly upload their work to Sofy. [Have a look at the top CI/CD platforms we see in use by the Sofy community here](/content/blog/top-ci-cd-platforms-continuous-integration-and-deployment-tools-to-know/index.html).

### _Cloud, cloud device_

Whereas an actual cloud floats above us, far away in the sky, ‘The Cloud’ exists on servers across the world. In short, ‘The Cloud’ is simply _the internet_. Cloud services are those that may be accessed solely ‘in the Cloud’ and, in turn, a Cloud Device is a device that you access through the internet. Sofy’s test lab, where engineers can test apps with physical devices, makes for an excellent example.

### _Element attributes_

When you look at an app and see an icon, picture, or a button, what you’re seeing are known as _elements_. While these may look perfectly simple and straightforward when handling a public build, ‘under the hood’ elements can be quite complex, involving a wide variety of attributes, which in turn are essentially a large number of scripts. Sofy uses these attributes to generate automations (that is, generating scripts under the hood). This makes working with elements easy. For example, Sofy ensures that an element is not a factor when creating an automation because Sofy reads all elements on a screen as a JSON (JavaScript Object Notation) file.

### _Machine learning_(ML)

Generally speaking, machine learning is the processes wherein a program gains information to complete a task by way of algorithms. When properly setup, learning algorithms can ideally complete tasks without necessarily being programmed to do so. The concept of machine learning is closely tied to a variety of fields and topics, such as data mining, natural language processing (see below), and artificial intelligence. Arguably still in its infancy, machine learning is a rapidly developing field.

### _Manual-code, low-code, & no-code_

The differences between manual-code, low-code, and no-code are significant, and each come with their pros and cons. [You can read about each in-depth here](/content/blog/mobile-app-testing-approaches-manual-code-low-code-or-no-code-automation/index.html). Sofy’s no-code approach bypasses historic problems associated with each by automatically generating scripts in the backend, saving development time, effort, and resources.

### _Natural language processing_(NLP)

Natural language is—put plainly—organic human language. In the context of machine learning (see above), the ability for machines to process. By way of natural language processes, machines can use language to perform tasks like generating instructions for human audiences. Natural language processing is closely associated with machine learning (see above).

### _Quality assurance_(QA)

From our transportation to the food we eat, we have quality assurance processes to thank for safety and ease of use in just about every aspect of our daily lives. In the mobile app development space, quality assurance makes for the difference between an unusable mess and the smooth experience we enjoy from the apps we turn to for vital information and services every day.

Mobile app quality assurance typically involves ensuring that an app’s user interface (UI) is appealing, coherent, and—crucially—usable. Quality assurance personnel either manually test an app on a device in their possession or by way of writing script to automate a sequence of actions. Sofy provides developers with the ability to easily perform these tasks without the time sink of code.

### _UX Journey_

Abbreviated from the _User Experience Journey_, this consists of a user’s experience throughout a process, as designed by the owner of the process, usually a company. For example, a user’s journey from visiting an ATM and withdrawing money is a planned, measured, and monitored process conducted by a bank or credit union. For more information on this subject, [see this article](/content/blog/the-ux-journey-and-test-complexity/index.html).
