Build and Release Engineer Interview Questions and Answers

Q1 : What do you know about Software Configuration Management?
A : Software configuration management (SCM or S/W CM) is the task of tracking and controlling changes in the software, part of the larger cross-disciplinary field of configuration management. SCM practices include revision control and the establishment of baselines.

Q2 : Which version control (VC) or software configuration management (SCM) systems work with Merge?
A : You can use Tortoise SVN, which has Merge Utility embedded in it.

Q3 : What is the purpose of continuous integration for a development team?
A : The primary purpose of CI is to provide regular, fast feedback to developers as they commit changes to the shared code repository (VCS).
The idea is that we’re always integrating our code on commit so that when conflicts arise, they can be addressed more quickly and easily than if the changes had been made days, week, or even months ago.

Q4 : Which SCM tools Jenkins supports?
A : AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clear case and RTC.

Q5 : What are the goals of SCM? Why do we use Software Configuration Management?
A : We can achieve various goals using SCM, they are:
Configuration identification – Identifying configurations, configuration items, and baselines.
Configuration control – Implementing a controlled change process. This is usually achieved by setting up a change control board whose primary function is to approve or reject all change requests that are sent against any baseline.
  • Configuration status accounting – Recording and reporting all the necessary information on the status of the development process.
  • Configuration auditing – Ensuring that configurations contain all their intended parts and are sound with respect to their specifying documents, including requirements, architectural specifications, and user manuals.
  • Build management – Managing the process and tools used for builds.
  • Process management – Ensuring adherence to the organization’s development process.
  • Environment management – Managing the software and hardware that host the system.
  • Teamwork – Facilitate team interactions related to the process.
  • Defect tracking – Making sure every defect has traceability back to the source.

Q6 : What is the difference between Maven, Ant, and Jenkins?
A : Maven and Ant Are Build Technologies whereas Jenkins is a continuous integration tool.

Q7 : What are different version control tools?
A : Version control tools are a great way to enable collaboration, maintain versions, and track changes across the team.
CVS, SVN, or Subversion, GIT, Mercurial, and Bazaar.
Q8 : Why do we need Software Configuration Management?
A : Configuration Management focuses on establishing and maintaining, the consistency of a system or product throughout its lifetime. CM is a collection of competencies, techniques, and tools whose purpose is to ensure the consistency of the system’s requirements, functional attributes, and physical properties
Q9 : What are the various ways in which build can be scheduled in Jenkins?
A :
  • Builds can be triggered by source code management commits.
  • Can be triggered after completion of other builds.
  • Can be scheduled to run at specified time (crons)
  • Manual Build Requests
Q10: What is Continuous Integration?
A : Continuous Integration (CI) is the process of automating the build and testing of code every time a team member commits changes to version control.
Q11 : What are different continuous tools?
A :  There are many Continuous Integration tools out there in the market you have to choose the best one as per your project requirements.
Jenkins is a cross-platform CI tool and it offers configuration both through GUI interface and console commands.
TeamCity is the mature CI server, coming from the labs of the JetBrains company.
Travis CI is one of the oldest hosted solutions out there and it has won the trust of many people.
Go is the newest Cruise Control incarnation from the ThoughtWorks company.
Atlassian BAMBOO – Modern and fast cloud  CI tool integrated into Bitbucket.
GitLab CI is fully integrated with GitLab and it can easily hook projects using the GitLab API.
CircleCI Flexible cloud CI tool that offers parallelization up to 16x.
CODESHIP – Powerful hosted solution with docker support, flexible plans suited both for small teams and enterprises alike.
CODEFRESH – Easy to use tool with Docker containers at its core and very nice feature of launching the built Docker images to the hosted environment.
Q12 : What are the advantages of Software Configuration Management?
A :  The advantages of software configuration management (SCM) are:
  • It reduces redundant work
  • It effectively manages simultaneous updates
  • It avoids configuration related problems
  • It simplifies coordination between team members
  • It is helpful in tracking defects

Q13 : How is attenuation happens from Jenkins to remote server? 
A : we have already like password less log in enable, so from Jenkins server anyone log in to the remote the Linux server and all without asking the password the key exchange is already done.

Q14 : What factors influence the opening of a feature branch?
A : Typically, feature branches are created in cases where the new feature or enhancement has broad-sweeping changes to the code base such that introducing them in the trunk may be too disruptive. Also, feature branches may be used for prototyping or proof-of-concept for code that may never end up in trunk.

Q15 : How can I change the default location of the generated jar when I command “mvn package”?
A : By default, the location of the generated jar is in ${project.build.directory} or in your target directory. We can change this by configuring the outputDirectory of maven-jar-plugin.

Q16 : What is the difference between compile and install?
A : Compile compiles the source code of the project
whereas
Install installs the package into the local repository, for use as a dependency in other projects locally.

Q17 : What is a transitive dependency? Can we override Transitive Dependency version and If Yes, how?
A : Transitive dependency is the dependencies not defined directly in the current POM but the POM of the dependent projects.
Yes, we can override transitive dependency version by specifying the dependency in the current POM.

Q18 : What is the use of !! command? Can I use it in conjunction with some other string to complete a command? 
A : It’s used to execute last command. Yes, this can be used with other string to execute new command. For eg – if ls was the last command, we can execute !! -l for having the long listing.

Q19 : What is Jenkins?
A : It is a continuous integration tool written in Java.

Q20 : What is Repository?
A : Repository is the heart of any version control system. It is central place where developers store all their work. Repository not only stores files but also history. Repository is accessed over a network, with repository acting as a server and version control tool acting as a client. Client can connect to repository, and then they can store/retrieve their changes to/from repository.