Search test library by skills or roles
⌘ K

DevOps Test

The DevOps Test is a scenario-based online test designed to assess a candidate's proficiency in working with Linux, Git, Python, Docker and DevOps skills.

Get started for free
Preview questions

Screen candidates with a 45 mins test

Test duration:  45 mins
Difficulty level:  Moderate
Availability:  Ready to use
Questions:
  • 3 Git MCQs
  • 4 Docker MCQs
  • 4 Linux MCQs
  • 4 Python MCQs
  • 5 DevOps MCQs
Covered skills:
Git basics
Git workflows
Git branching models
Docker containers and volumes
Docker images and networking
Linux commands
Shell scripting
File system management
Python fundamentals
Scripting and web scraping
Python OOP
Data Structures
Python Coding
Get started for free
Preview questions

Use Adaface tests trusted by recruitment teams globally

Adaface is used by 1500+ businesses in 80 countries.

Adaface skill assessments measure on-the-job skills of candidates, providing employers with an accurate tool for screening potential hires.

Amazon Morgan Stanley Vodafone United Nations HCL PayPal Bosch WeWork Optimum Solutions Deloitte NCS Sokrati J&T Express Capegemini

Use the DevOps Assessment Test to shortlist qualified candidates

The DevOps Test helps recruiters and hiring managers identify qualified candidates from a pool of resumes, and helps in taking objective hiring decisions. It reduces the administrative overhead of interviewing too many candidates and saves time by filtering out unqualified candidates at the first step of the hiring process.

The test screens for the following skills that hiring managers look for in candidates:

  • Able to effectively use Git for version control
  • Proficient in Docker containerization and volume management
  • Skilled in working with Linux commands and shell scripting
  • Knowledgeable in Python fundamentals and scripting
  • Experienced with DevOps principles and practices
  • Familiar with Git workflows and branching models
  • Competent in managing Docker images and networking
  • Proficient in file system management on Linux
  • Capable of creating Python scripts for web scraping
  • Skilled in object-oriented programming in Python
  • Proficient in data structures in Python
  • Competent in coding with Python
Get started for free
Preview questions

Screen candidates with the highest quality questions

We have a very high focus on the quality of questions that test for on-the-job skills. Every question is non-googleable and we have a very high bar for the level of subject matter experts we onboard to create these questions. We have crawlers to check if any of the questions are leaked online. If/ when a question gets leaked, we get an alert. We change the question for you & let you know.

How we design questions

These are just a small sample from our library of 15,000+ questions. The actual questions on this DevOps Online Test will be non-googleable.

🧐 Question

Medium

ZeroDivisionError and IndexError
Exceptions
Solve
What will the following Python code output?
 image

Medium

Session
File Handling
Dictionary
Solve
 image
The function high_sess should compute the highest number of events per session of each user in the database by reading a comma-separated value input file of session data. The result should be returned from the function as a dictionary. The first column of each line in the input file is expected to contain the user’s name represented as a string. The second column is expected to contain an integer representing the events in a session. Here is an example input file:
Tony,10
Stark,12
Black,25
Your program should ignore a non-conforming line like this one.
Stark,3
Widow,6
Widow,14
The resulting return value for this file should be the following dictionary: { 'Stark':12, 'Black':25, 'Tony':10, 'Widow':14 }
What should replace the CODE TO FILL line to complete the function?
 image

Medium

Max Code
Arrays
Solve
Below are code lines to create a Python function. Ignoring indentation, what lines should be used and in what order for the following function to be complete:
 image

Medium

Recursive Function
Recursion
Dictionary
Lists
Solve
Consider the following Python code:
 image
In the above code, recursive_search is a function that takes a dictionary (data) and a target key (target) as arguments. It searches for the target key within the dictionary, which could potentially have nested dictionaries and lists as values, and returns the value associated with the target key. If the target key is not found, it returns None.

nested_dict is a dictionary that contains multiple levels of nested dictionaries and lists. The recursive_search function is then called with nested_dict as the data and 'target_key' as the target.

What will the output be after executing the above code?

Medium

Stacking problem
Stack
Linkedlist
Solve
What does the below function ‘fun’ does?
 image
A: Sum of digits of the number passed to fun.
B: Number of digits of the number passed to fun.
C: 0 if the number passed to fun is divisible by 10. 1 otherwise.
D: Sum of all digits number passed to fun except for the last digit.

Medium

Debugging Issues
Environment Variables
Debugging
Solve
You are working on a Linux system and have recently installed a new program named myprogram. The executable is located in /opt/myprogram/bin/. You want to be able to run this program from any directory in your shell without specifying the full path.
You executed the following command:
export PATH="/opt/myprogram/bin"
However, when you try to run the program using myprogram, you get the following error message:
-bash: myprogram: command not found

Which of the following commands can fix this issue and allow you to run the program?
A: export PATH=$PATH:/opt/myprogram/bin/
B: export PATH="/opt/myprogram:$PATH"
C: export PATH="/opt/myprogram/bin:$PATH"
D: ln -s /opt/myprogram/bin/myprogram /usr/local/bin/myprogram

Easy

File Structure and Navigation
Files
Basic Commands
Solve
Consider the following directory structure:
 image
You start at /home/user and execute the following commands:
 image
What will be the resulting directory structure?
 image

Medium

Fork mellow yellow
Solve
How many times will the following code will print "Mellow Yellow"?
 image

Medium

Remote server connection
SSH
Solve
Our software engineering intern, Wu is looking to use port 4545 on localhost to connect to a remote server called woot.bananas.com on port 80. Which command would you recommend for this?
 image

Medium

git commit without git add
Solve
Suppose a remote repository is cloned in local system and a old file named “modified_file” is modified and now if following command is run, what will "git status" return?
 image
 image

Medium

Merge into live branch
Solve
Which of the following commands will merge dev-fixes into the master-live branch?

a. git checkout master-live and git merge dev-fixes
b. git checkout dev-fixes and git merge master-live
c. git merge master-live and git checkout dev-fixes
d. git merge dev-fixes and git checkout master-live

Medium

Docker Multistage Build Analysis
Multistage Builds
Optimization
Solve
Consider the following Dockerfile, which utilizes multistage builds. The aim is to build a lightweight, optimized image that just runs the application.
 image
The Dockerfile first defines a base image that includes Node.js and npm, then it creates an intermediate image to install the npm dependencies. Afterwards, it runs the tests in another stage and finally, creates the release image.

Which of the following statements are true?

A: The final image will include the test scripts.
B: If a test fails, the final image will not be created.
C: The node_modules directory in the final image comes from the base image.
D: The final image will only contain the necessary application files and dependencies.
E: If the application's source code changes, only the release stage needs to be rebuilt.

Easy

Docker Networking and Volume Mounting Interplay
Networking
Volume Mounting
Solve
You have two docker containers, X and Y. Container X is running a web service listening on port 8080, and container Y is supposed to consume this service. Both containers are created from images that don't have any special network configurations.

Container X has a Dockerfile as follows:
 image
And, you build and run it with the following commands:
 image
Container Y is also running alpine with python installed, and it's supposed to read data from the `/app/data` directory and send a GET request to `http://localhost:8080` every 5 minutes. The Dockerfile for container B is:
 image
And you run it with:
 image
Assuming all the python scripts work perfectly and firewall isn't blocking any connections, you find that container Y can't access the web service of container X via `http://localhost:8080` and also it can't read the data in `/app/data` directory. What could be the potential reason(s)?
A: Y can't access X's web service because they're in different Docker networks.
B: Y can't read the data because the volume is not shared correctly.
C: Both A and B are correct.
D: Both A and B are incorrect.

Medium

Dockerfile Optimization
Dockerfile
Multi-stage builds
Layer Caching
Solve
You have been asked to optimize a Dockerfile for a Python application that involves a heavy dependency installation. Here is the Dockerfile you are starting with:
 image
Given that the application's source code changes frequently but the dependencies listed in requirements.txt rarely change, how can you optimize this Dockerfile to take advantage of Docker's layer caching, reducing the build time?
A: Move the `RUN pip install` command to before the `COPY` command.
B: Change `COPY . /app` to `COPY ./app.py /app` and move the `RUN pip install` command to before the `COPY` command.
C: Add `RUN pip cache purge` before `RUN pip install`.
D: Replace the base image with `python:3.8-slim`.
E: Implement multi-stage builds.

Medium

Dockerfile Updates
Cache
Solve
Check the following Dockerfile used for a project (STAGE 1):
 image
We created an image from this Dockerfile on Dec 14 2021. A couple of weeks after Dec 14 2021, Ubuntu released new security updates to their repository. After 2 months, we modified the file (STAGE 2):
 image
Couple of weeks later, we further modified the file to add a local file ada.txt to /ada.txt (STAGE 3): (Note that ada.txt exists in /home/adaface and the dockerfile exists in /home/code folders)
 image
Pick correct statements:

A: If we run “docker build .” at STAGE 2, new Ubuntu updates will be fetched because apt-get update will be run again since cache is invalidated for all lines/layers of Dockerfile when a new line is added.
B: If we run “docker build .” at STAGE 2, new Ubuntu updates will not be fetched since cache is invalidated only for last two lines of the updated Dockerfile. Since the first two commands remain the same, cached layers are re-used skipping apt get update.
C: To skip Cache, “docker build -no-cache .” can be used at STAGE 2. This will ensure new Ubuntu updates are picked up.
D: Docker command “docker build .” at STAGE 3 works as expected and adds local file ada.txt to the image.
E: Docker command “docker build .” at STAGE 3 gives an error “no such file or directory” since /home/adaface/ada.txt is not part of the Dockerfile context.

Medium

Efficient Dockerfile
Dockerfile
Solve
Review the following Dockerfiles that work on two projects (project and project2):
 image
All Docker files have the same end result:

- ‘project’ is cloned from git. After running few commands, ‘project’ code is removed.
- ‘project2’ is copied from file system and permissions to the folder is changed.
Pick the correct statements:

A: File 1 is the most efficient of all.
B: File 2 is the most efficient of all.
C: File 3 is the most efficient of all.
D: File 4 is the most efficient of all.
E: Merging multiple RUN commands into a single RUN command is efficient for ‘project’ since each RUN command creates a new layer with changed files and folders. Deleting files with RUN only marks these files as deleted but does not reclaim disk space. 
F: Copying ‘project2’ files and changing ownership in two separate commands will result in two layers since Docker duplicates all the files twice.

Medium

Resource Analysis
Process Management
System Performance
Log Analysis
Solve
As a senior DevOps engineer, you are tasked with diagnosing performance issues on a Linux server running Ubuntu 20.04. The server hosts several critical applications, but lately, users have been experiencing significant slowness. Initial monitoring shows that CPU and memory utilization are consistently high. To identify the root cause, you check the output of `top` and `ps` commands, which indicate that a particular process is consuming an unusually high amount of resources. However, the process name is generic and does not clearly indicate which application or service it belongs to. You also examine `/var/log/syslog` for any unusual entries but find nothing out of the ordinary. Based on this situation, which of the following steps would most effectively help you identify and resolve the performance issue?
A: Increase the server's physical memory and CPU capacity.
B: Use the `lsof` command to identify the files opened by the suspect process.
C: Reboot the server to reset all processes.
D: Examine the `/etc/hosts` file for any incorrect configurations.
E: Run the `netstat` command to check for abnormal network activity.
F: Check the crontab for any recently added scheduled tasks.

Medium

Streamlined DevOps
Continuous Integration
Scripting
Solve
You are in charge of developing a Bash script for setting up a continuous integration pipeline for a web application. The source code is hosted in a Git repository. The script's goals include:

1. Ensuring the local copy of the repository in /var/www/html is updated to the latest version.
2. Creating a .env file with APP_ENV=production in the project root if it doesn't already exist.
3. Running a test suite with ./run_tests.sh and handling any test failures appropriately.
4. Logging the current timestamp and commit hash in deployment_log.txt in the project root if tests pass.

Which of the following script options would most effectively and safely accomplish these tasks?
 image
🧐 Question🔧 Skill

Medium

ZeroDivisionError and IndexError
Exceptions

2 mins

Python
Solve

Medium

Session
File Handling
Dictionary

2 mins

Python
Solve

Medium

Max Code
Arrays

2 mins

Python
Solve

Medium

Recursive Function
Recursion
Dictionary
Lists

3 mins

Python
Solve

Medium

Stacking problem
Stack
Linkedlist

4 mins

Python
Solve

Medium

Debugging Issues
Environment Variables
Debugging

2 mins

Linux
Solve

Easy

File Structure and Navigation
Files
Basic Commands

2 mins

Linux
Solve

Medium

Fork mellow yellow

2 mins

Linux
Solve

Medium

Remote server connection
SSH

2 mins

Linux
Solve

Medium

git commit without git add

3 mins

Git
Solve

Medium

Merge into live branch

2 mins

Git
Solve

Medium

Docker Multistage Build Analysis
Multistage Builds
Optimization

3 mins

Docker
Solve

Easy

Docker Networking and Volume Mounting Interplay
Networking
Volume Mounting

3 mins

Docker
Solve

Medium

Dockerfile Optimization
Dockerfile
Multi-stage builds
Layer Caching

2 mins

Docker
Solve

Medium

Dockerfile Updates
Cache

2 mins

Docker
Solve

Medium

Efficient Dockerfile
Dockerfile

2 mins

Docker
Solve

Medium

Resource Analysis
Process Management
System Performance
Log Analysis

3 mins

DevOps
Solve

Medium

Streamlined DevOps
Continuous Integration
Scripting

2 mins

DevOps
Solve
🧐 Question🔧 Skill💪 Difficulty⌛ Time
ZeroDivisionError and IndexError
Exceptions
Python
Medium2 mins
Solve
Session
File Handling
Dictionary
Python
Medium2 mins
Solve
Max Code
Arrays
Python
Medium2 mins
Solve
Recursive Function
Recursion
Dictionary
Lists
Python
Medium3 mins
Solve
Stacking problem
Stack
Linkedlist
Python
Medium4 mins
Solve
Debugging Issues
Environment Variables
Debugging
Linux
Medium2 mins
Solve
File Structure and Navigation
Files
Basic Commands
Linux
Easy2 mins
Solve
Fork mellow yellow
Linux
Medium2 mins
Solve
Remote server connection
SSH
Linux
Medium2 mins
Solve
git commit without git add
Git
Medium3 mins
Solve
Merge into live branch
Git
Medium2 mins
Solve
Docker Multistage Build Analysis
Multistage Builds
Optimization
Docker
Medium3 mins
Solve
Docker Networking and Volume Mounting Interplay
Networking
Volume Mounting
Docker
Easy3 mins
Solve
Dockerfile Optimization
Dockerfile
Multi-stage builds
Layer Caching
Docker
Medium2 mins
Solve
Dockerfile Updates
Cache
Docker
Medium2 mins
Solve
Efficient Dockerfile
Dockerfile
Docker
Medium2 mins
Solve
Resource Analysis
Process Management
System Performance
Log Analysis
DevOps
Medium3 mins
Solve
Streamlined DevOps
Continuous Integration
Scripting
DevOps
Medium2 mins
Solve

Test candidates on core DevOps Hiring Test topics

Git basics: Git basics refers to the fundamental concepts and commands used in the Git version control system. This skill should be measured in the test because proficiency in Git basics is crucial for any DevOps professional who needs to manage source code, track changes, and collaborate with other team members effectively.

Git workflows: Git workflows are specific strategies or approaches for using Git, such as centralized, feature branch, or Gitflow workflow. Measuring this skill in the test helps recruiters assess a candidate's understanding of different Git workflows and their ability to choose and implement appropriate workflows for efficient and scalable software development.

Git branching models: Git branching models refer to the strategies and structures for creating and managing branches in Git, such as feature branches, release branches, or hotfix branches. Testing a candidate's knowledge of Git branching models is important as it demonstrates their proficiency in organizing and maintaining code versions, collaborating on parallel workstreams, and ensuring a robust development workflow.

Docker containers and volumes: Docker containers and volumes are essential components of Docker, a popular containerization platform. This skill should be measured in the test as it assesses a candidate's understanding of how to create, configure, and manage Docker containers, which enables developers to package applications with their dependencies and ensures consistent deployment across different environments.

Docker images and networking: Docker images are snapshots of containerized applications and their dependencies, while Docker networking allows communication between containers and other network resources. Evaluating a candidate's knowledge of Docker images and networking is important as it reflects their ability to design and optimize container-based architectures, manage network connectivity, and troubleshoot container-related issues.

Linux commands: Linux commands are the instructions used to interact with a Linux-based operating system. This skill is measured in the test to assess a candidate's familiarity with essential Linux commands, such as file management, process control, system monitoring, and user management. Proficiency in Linux commands is crucial for DevOps professionals working with Linux environments.

Shell scripting: Shell scripting involves writing scripts or programs that run in a Unix-like shell, such as Bash, to automate tasks, perform system administration tasks, and execute commands. Testing a candidate's skill in shell scripting is essential as it demonstrates their ability to write efficient and reliable scripts, automate repetitive tasks, and streamline system configuration and maintenance.

File system management: File system management refers to the processes and techniques used to organize, monitor, and control the storage and retrieval of files within an operating system. Measuring this skill in the test helps recruiters evaluate a candidate's understanding of file system structures, permissions, disk usage, and backup strategies, which are crucial for managing and securing data in a DevOps environment.

Python fundamentals: Python fundamentals encompass the core concepts and syntax of the Python programming language, including data types, variables, operators, control structures, and functions. This skill should be measured in the test as it provides recruiters an understanding of a candidate's foundational knowledge of Python, which is widely used in DevOps for automation, scripting, and infrastructure management.

Scripting and web scraping: Scripting and web scraping involve writing scripts or programs to automate tasks and extract data from websites. Measuring this skill in the test assesses a candidate's ability to write scripts using Python or other scripting languages, utilize web scraping libraries or tools, and extract, transform, and analyze data for various DevOps use cases or data-driven decision making.

Python OOP: Python OOP (Object-Oriented Programming) involves designing and implementing classes, objects, and their relationships to create modular and reusable code. Evaluating a candidate's proficiency in Python OOP helps recruiters assess their ability to develop robust and maintainable code structures, implement inheritance and polymorphism, and apply OOP principles for efficient software development and code reuse.

Data Structures: Data structures refer to the organization, storage, and manipulation of data within a computer program. Measuring this skill in the test allows recruiters to evaluate a candidate's understanding of fundamental data structures like lists, dictionaries, arrays, stacks, and queues, which are essential for efficient data processing, algorithm design, and problem-solving in DevOps.

Python Coding: Python coding refers to the practical application of Python programming skills to solve real-world problems and implement software solutions. This skill should be measured in the test to assess a candidate's ability to write clean, maintainable, and efficient Python code, follow coding best practices, and demonstrate proficiency in implementing algorithms, data manipulation, and system automation using Python.

Get started for free
Preview questions

Make informed decisions with actionable reports and benchmarks

View sample scorecard

Screen candidates in 3 easy steps

Pick a test from over 500+ tests

The Adaface test library features 500+ tests to enable you to test candidates on all popular skills- everything from programming languages, software frameworks, devops, logical reasoning, abstract reasoning, critical thinking, fluid intelligence, content marketing, talent acquisition, customer service, accounting, product management, sales and more.

Invite your candidates with 2-clicks

Make informed hiring decisions

Get started for free
Preview questions

Try the most advanced candidate assessment platform

ChatGPT Protection

Non-googleable Questions

Web Proctoring

IP Proctoring

Webcam Proctoring

MCQ Questions

Coding Questions

Typing Questions

Personality Questions

Custom Questions

Ready-to-use Tests

Custom Tests

Custom Branding

Bulk Invites

Public Links

ATS Integrations

Multiple Question Sets

Custom API integrations

Role-based Access

Priority Support

GDPR Compliance


Pick a plan based on your hiring needs

The most advanced candidate screening platform.
14-day free trial. No credit card required.

From
$15
per month (paid annually)
love bonito

With Adaface, we were able to optimise our initial screening process by upwards of 75%, freeing up precious time for both hiring managers and our talent acquisition team alike!

Brandon Lee, Head of People, Love, Bonito

Brandon
love bonito

It's very easy to share assessments with candidates and for candidates to use. We get good feedback from candidates about completing the tests. Adaface are very responsive and friendly to deal with.

Kirsty Wood, Human Resources, WillyWeather

Brandon
love bonito

We were able to close 106 positions in a record time of 45 days! Adaface enables us to conduct aptitude and psychometric assessments seamlessly. My hiring managers have never been happier with the quality of candidates shortlisted.

Amit Kataria, CHRO, Hanu

Brandon
love bonito

We evaluated several of their competitors and found Adaface to be the most compelling. Great library of questions that are designed to test for fit rather than memorization of algorithms.

Swayam Narain, CTO, Affable

Brandon

Have questions about the DevOps Hiring Test?

What roles can I use the DevOps Assessment Test for?

Here are few roles for which we recommend this test:

  • DevOps Engineer
  • Software Developer
  • System Administrator
  • Cloud Engineer
  • Release Manager
  • Quality Assurance Engineer
  • Site Reliability Engineer
  • IT Operations Engineer
  • Infrastructure Developer CI/CD
  • Associate DevOps Engineer
Can I combine the DevOps Online Test with Docker questions?

Yes, recruiters can request a custom test that includes Docker-related questions. For more details, you can check out our Docker Test.

How to use the DevOps Online Test in my hiring process?

Use this test as a pre-screening tool at the start of your recruitment. Add the test link to your job post or invite candidates via email. This helps you identify skilled candidates earlier.

What are the main DevOps tests?

We offer a variety of DevOps-related tests, including:

Do you have any anti-cheating or proctoring features in place?

We have the following anti-cheating features in place:

  • Non-googleable questions
  • IP proctoring
  • Screen proctoring
  • Web proctoring
  • Webcam proctoring
  • Plagiarism detection
  • Secure browser
  • Copy paste protection

Read more about the proctoring features.

What experience level can I use this test for?

Each Adaface assessment is customized to your job description/ ideal candidate persona (our subject matter experts will pick the right questions for your assessment from our library of 10000+ questions). This assessment can be customized for any experience level.

I'm a candidate. Can I try a practice test?

No. Unfortunately, we do not support practice tests at the moment. However, you can use our sample questions for practice.

Can I get a free trial?

Yes, you can sign up for free and preview this test.

What is the DevOps Online Test?

The DevOps Online Test is designed to evaluate candidates' skills in key DevOps areas such as Git, Docker, Linux, and Python. It is widely used by recruiters to identify proficient DevOps engineers.

What kind of questions are used to evaluate senior DevOps candidates?

The DevOps Online Test assesses senior roles by focusing on advanced topics like Python scripting, web scraping, OOP, CI/CD pipelines, cloud platform deployments, and more.

Can I test DevOps and AWS together in a test?

Absolutely, you can test both together. We recommend our AWS DevOps Test.

Can I combine multiple skills into one custom assessment?

Yes, absolutely. Custom assessments are set up based on your job description, and will include questions on all must-have skills you specify. Here's a quick guide on how you can request a custom test.

How do I interpret test scores?

The primary thing to keep in mind is that an assessment is an elimination tool, not a selection tool. A skills assessment is optimized to help you eliminate candidates who are not technically qualified for the role, it is not optimized to help you find the best candidate for the role. So the ideal way to use an assessment is to decide a threshold score (typically 55%, we help you benchmark) and invite all candidates who score above the threshold for the next rounds of interview.

Does every candidate get the same questions?

Yes, it makes it much easier for you to compare candidates. Options for MCQ questions and the order of questions are randomized. We have anti-cheating/ proctoring features in place. In our enterprise plan, we also have the option to create multiple versions of the same assessment with questions of similar difficulty levels.

What is the cost of using this test?

You can check out our pricing plans.

I just moved to a paid plan. How can I request a custom assessment?

Here is a quick guide on how to request a custom assessment on Adaface.

customers across world
Join 1500+ companies in 80+ countries.
Try the most candidate friendly skills assessment tool today.
g2 badges
Ready to use the Adaface DevOps Online Test?
Ready to use the Adaface DevOps Online Test?
logo
40 min tests.
No trick questions.
Accurate shortlisting.
Terms Privacy Trust Guide
ada
Ada
● Online
Previous
Score: NA
Next
✖️