Basic DevOps Interview Questions: You Need to Know

Nowadays whenever we appear for interviews it is expected from a Test automation engineer to know about the basics of DevOps and basic details of the tools being used in the project apart from the QA tools or Test automation tools. In this article, I have tried to cover some basic DevOps Interview Questions for SDET.

1) What are the roles and responsibilities of SDET?

SDET is a person who is well-versed in Testing and development. They remain concerned with white-box as well as black-box testing. The scope is very wide which includes focusing on multiple skills and technologies like Test Automation, Performance Testing, Security, CI/CD, and so on based on the project requirement.

2) What is DevOps?

DevOps is a set of practices and tools designed to shorten the life cycle of a software development process. It is used to automate and integrate the processes between software development and other operations so that the software can be built, tested, and released in a faster and more reliable manner.

3) Have you used any DevOps tools in your project?

Yes, In the Continuous testing phase, I have used testing tools such as Selenium, TestNG, and Junit. Git was used as a version control tool and Jenkins and Docker were used for CI/CD and Containerization.

4) What are the popular tools in DevOps?

  • Git – Versioning Control Tool
  • Jenkins – CI/CD Tool
  • Selenium/TestNg – Continuous Testing tool
  • Ansible/Chef – Configuration  Management and Deployment tools 
  • Nagios – Continuos Monitoring Tool
  • Docker – Containerization tool 

5) Do you know any source code management tools?

Source code management (SCM) is where the teams share and collaborate on their work. Git and BitBucket are two popular tools. These tools are also referred to as Version control systems because these are used to track modifications and maintain the version history.

6) What is the difference between Git and GitHub?

Git is a distributed version control system for tracking changes in computer files. It is a command-line tool and is installed locally in the system. GitHub is a service that provides a web interface to upload files. It is a hosting service for Git Repositories.

7) If you have worked with Git, can you explain the lifecycle of Git?

  1. Fetch the working copy of the application code from the remote repository using the clone operation on your local.
  2. Modify the Working copy as per the required operation.
  3. Review code Changes.
  4. Commit changes after successful review.
  5. Push your changes to the remote repository.

8) What is the Staging Area in Git?

Before committing a file, it must be formatted and reviewed in an intermediary area known as the ‘Staging area’ or ‘Indexing area’ in Git.

9) What is Git Stash?

Git stash is a built-in command with the distributed Version control tool in Git that locally stores all the most recent changes in a workspace and resets the state of the workspace to the prior commit state. A user can retrieve all files put into the stash with the git stash pop and git stash applies commands.

10) What are the advantages of using Git?

1)High Availability.
2) Collaboration friendly.
3)Data redundancy and replication.

11) What is the difference between Maven and Jenkins?

Jenkins is a continuous integration tool used to automate the various stages of the software development lifecycle, including building, testing, and deploying applications while Maven is a build automation and dependency management tool used for building Java projects.

12) What is Jenkins?

Jenkins is a powerful automation tool written in Java, It allows continuous integration and continuous delivery of projects. It supports Windows, macOS, and Unix-like operating systems. It is portable and has rich plugins and strong community support.

13) What is a Jenkins job?

A Jenkins job is a runnable task that Jenkins controls to achieve a required objective. There are several types of build jobs in Jenkins:

1)Freestyle
2)Maven
3)External Job
4)Pipeline

14) What is Webhook?

A webhook is a method of communication between two applications or services in real time. It allows one application to notify another application or service automatically when a specific event occurs. Webhooks are commonly used for various purposes, including Real-Time Notifications and Integration and Automation.

15) How do you store credentials in Jenkins?

Credentials can be stored securely using the Credentials plugin, which stores different types of credentials like Username and password, SSH, AWS Credentials, etc.

16) How to create a pipeline Job in Jenkins?

From the Jenkins dashboard, click on New Item -> Enter the Job name ->Select Pipeline, and Click the OK button.

DevOps Interview Questions

Select the Pipeline section, in Definition select Pipeline script, from try sample Pipeline

pipeline {
    agent any
    stages {
        stage ('Build') {
            steps {
                sh 'echo Hello Build stage'
            }
        }
        stage ('Test') {
            steps {
                sh 'echo hello Test stage'
            }
        }
    }
}

Click on Build Now.

17) What is Docker?

Docker is a platform to develop, ship, and run applications by using containers. Docker aids the user in testing and deploying the code into production. In Docker, every application runs on separate containers and has its own set of dependencies and libraries.

18) What is Docker Hub?

Docker Hub is a registry service on the cloud that allows you to download docker images that are built by other communities. You can also upload your docker-built images to Docker Hub.

19) What is a Docker File?

A docker file is a text document that contains instructions on how to build your images.

20) What is Docker Image?

A docker image is the source of a docker container in other words docker images are used to create containers.

21) What Role does docker play in Test Automation?

1)Wrapping the tests with Docker will help you easily move them to a different workspace as required.
2)A lot of unnecessary computing overhead can be avoided while setting up the Selenium grid.
3)Chances of discrepancies between environments are very, very low because all the team members can use the same container, irrespective of the operating system.
4)Docker is scalable. Suppose You want to add more browsers for parallel execution ex:4 instances of Chrome, This can be done easily in Docker.

22) Do you know where is your application hosted?

Yes, AWS/Azure server as per your project.

23) What is AWS?

AWS is a cloud platform that provides on-demand resources for hosting web services, storage, networking, databases, and other resources over the Internet with pay-you-go pricing.

24) What databases have you used in your application? Are you using RDS?

Yes, we are using RDS (Amazon relation database service) which supports an array of database engines to store and organize data.

25) Have you worked on AWS Lambdas?

AWS lambdas allow you to write custom logic to AWS resources. It is a serverless computing service that lets you run code for virtually any type of application or backend service without managing or provisioning services. I never wrote lambdas but executed the already written lambdas to test a few services

26) What is SSH or RDP?

SSH (Secure socket shell) is a network protocol that we use to log into the remote machine and command line execution. RDP (Remote desktop protocol) is used to remotely access a computer. SSH works with the Linux operating system. When we create a Linux instance we access it using SSH, if we create a Windows instance then it is accessible by using RDP.

27) What are the alternatives to Jenkins?

Several Jenkins alternatives are available for Continuous Integration like TeamCity, GitLab, Bamboo, Circle CI, Urbancode etc.

28) What is the purpose of branching in Git?

In GIT, branching serves the goal of allowing you to make your branches and jump between them. You will be able to continue working on recent projects while returning to earlier ones.

To create a new branch in git, use the below command

git checkout -b <new-branch>

To switch to an existing branch

git checkout <branchname>

To see all branches including local and remote use the below-mentioned command:

git branch -a

To learn Software testing interview questions, click here.

Discover more from AutomationQaHub

Subscribe now to keep reading and get access to the full archive.

Continue reading