Skip to main content

Getting Started

What to know about quality assurance

On UNGUESS you don’t have to be a developer to find bugs.

However, knowing the world of software development might make it easier for you to understand how apps and websites work. In fact, knowing how the software you use works could help you to perform bug-hunting tasks more effectively. In our articles and on social channels we share useful notions for your learning and curiosity every week.

In this article, we have collected some terms in the area of software development. If you talk to a developer in the future, you will find it easier to understand what they are talking about!

Software Development Glossary

Agile: methodology of software development that involves small, testable, incremental developments constantly. This approach allows the customer to test the product during the development phase rather than at the end. In this way, any improvements and corrections can be taken care of more quickly and dynamically. The principles on which it is based are collected within the “Manifesto for Agile Software Development”.

Back-end: a term that refers to the part of the software with which the user does not interact directly. It generally deals with handling some internal logic, retrieving and possibly manipulating data from a database and returning it to the front-end. Back-end development involves the use of languages (Java, PHP, Python, etc…) and specific technologies.

Branch: literally means “branch.” In the context of software versioning, it refers to a copy of the original code, which allows changes to be made to the software separately from the starting point.

Bug: behavior of software that is anomalous or unexpected compared to what was expected at the design stage.

Database: a set of data or information that is structured and stored in a computer system. They allow data to be saved and searches performed on them. Data collected within a database are generally displayed within tables.

Feature: additional software functionality.

Framework: a set of features and tools that facilitate solving a common “problem.” In the context of software development, frameworks can be used as “extensions” to programming languages.

Front-end: a term which refers to the part of the software that is visible and with which the user interacts. In addition to including the interface and its operations, it is responsible for handling some logic and displaying data sent to it from the back-end. Front-end development involves the use of web page-building technologies (HTML, CSS) and client-side languages such as Javascript for web and cross-platform apps, or native languages such as Swift for iOS apps and Java/Kotlin for Android.

Fullstack: term that encompasses the skills and technologies needed to take care of both the back-end and front-end parts of the software.

GIT: It is the world’s most widely used free version control software. It allows multiple developers to work on the same project. Each developer makes changes to the code on his or her machine locally and then shares them on the remote repository. The project is then updated as each developer shares their changes.

GitHub, GitLab: platforms that allow the project repository to be shared among team members or with anyone (if the project is open source).

HotFix: literally means “quick fix.” In fact, it is a single fix made from code in production.

IDE (Integrated Development Environment): a program that allows the developer to write code and run the applications they are working on. Some IDEs are specific to work with certain programming languages and therefore suitable for that specific programming paradigm. Such as IntelliJ IDEA for Java, PyCharm for Python and Xcode for Swift. But some IDEs can also be used for different languages, thanks to extensions. Such as Visual Studio.

Library: a set of classes that perform specific functionality. For example, Java’s Math class allows you to perform mathematical operations. To use this additional functionality, you must import the library into the class where you intend to use it.

Release: release refers to software released, that is, published and made accessible.

Repository: online space where the files of a software project are contained and shared. The repository can be private and accessible only to members of a group or team. Or it can be public and accessible to anyone, such as open source projects.

Server: a computer that, within a network, allows other computers (called clients) to use a service.

SDK (Software Development Kit): it is a set of tools that enables the development of software for a specific platform. For example, Facebook’s SDK makes it possible to interface with social and leverage its authentication to allow users to log in to third-party software without having to re-enter their registration information.

UAT (User Acceptance Testing): it is a test performed, usually with the end customer, to verify that the software meets acceptance criteria.

Waterfall: methodology of software development that involves phases executed “cascading” in succession. There are generally 5 phases (requirements analysis, design, development, testing and release). Unlike the agile methodology, the software is first finished and then delivered. There are no intermediate stages where customer feedback is sought. This methodology is therefore in most cases risky and slow since any improvements or changes are not possible during “running” development, but only at the end.