Spring Framework Fundamentals
Basic Understanding of CI/CD Pipeline
Basic GIT BEST PRACTICES
Software Testing Best Practice
Spring Boot Fundamentals
100

Any 3 features of Spring Boot

Auto Configuration

Stand-alone

Opinionated


100

What part of CI/CD Pipeline does these co-relate to?

Releases new changes to one or more environments, including production. This means that on top of having automated testing, you can also have automated release process and you can deploy your application at any point in time by clicking on a button.

Continuous Delivery

100
Name this Git Commit

It is also called "One Commit for One Change"

The smallest, most important improvement you can make in your source code. It is large enough to add value but tiny enough to be manageable

Atomic Commit

100

What is Two-Tier Test Automation Approach

First, run quick sanity checks on each commit to the source code in order to quickly validate changes. You can then run more extensive regression testing at night. This way, you can provide immediate feedback to developers while they are still focused on that portion of the code.

100

Name the Four Layers in Spring Boot Architecture

  • Presentation Layer [Views]
  • Business Layer [Data access layer: services and classes]
  • Persistence Layer Translates Business objects from and to DB rows]
  • Database Layer - CRUD


100

Name 3 Spring Framework projects?

Spring Data Project

Spring Cloud Project

Spring Security Project

Spring batch

Spring Social

100

Explain each Pipeline Stage

Build

Test

Release

Deploy

Validation and Compliance

  • Build - The stage where the application is compiled.
  • Test - The stage where code is tested. Automation here can save both time and effort.
  • Release - The stage where the application is delivered to the repository.
  • Deploy - In this stage code is deployed to production.
  • Validation and compliance - The steps to validate a build are determined by the needs of your organization. Image security scanning tools, like Clair, can ensure the quality of images by comparing them to known vulnerabilities (CVEs).


100

Commit _______ and Commit _________

Commit Early, Commit Often

Your message will be clear and focused

Easy for other developers to understand the code History

If you do small commits, it allows you to use useful tools like "git-bisect" -> This cmd used Binary search algo to find which commit in your project's history introduced a Bug -> between good and bad commits.


100

Give any 5 best Software QA practices

Define a Process

Test Early and Test Often[Introducing the QA team early to a project gives them foresight to potential bugs and defects that they might face later down the road. It will end up saving the project both time and money as functionality is being implemented].

Test on Real devices 

Automation [The QA team will want to use automation when the functionality is imperative and risk based. Having reusable regression automation testing allows us to ensure quality on parts of the project that have been seen before while also pointing out new complex issues for the QA team to solve.]

Be the Quality Advocate but don't own Quality

[quality is owned by every individual on the team, but QA should act as the guided voice]

100

Fill info about Spring Boot Goals

  • Provides ________ Development approach
  • Avoids defining more ______ Configuration
  • Avoids writing lots of ______ statements
  • Avoids ____ Configuration.

Opinionated 

Annotation 

import 

XML

100

What is Boilerplate code?

Boilerplate code are the sections of the code that have to be included in many places without or with, little alterations. A considerable amount of code needs to be written by the programmer for minor functionality; this part of the code is called boilerplate.

Repetitive 

Why to use?

  • Boost Early Development: The main advantage of using boilerplate code is to reduce your initial software development time by reusing core things.
  • Less Complexity: It also takes care of complexity from your code & gives you possibly cleaner code.
  • Short Learning Curve: If your software uses the standard boilerplate code as a base then there will be no learning curve for new developers who have worked on the same boilerplate.
100

What part of CI/CD Pipeline does these co-relate to?

Developers merge their changes back to the main branch as often as possible. The changes are validated by creating a Build and running automated tests against it

Continuous Integration

100

Call out any two Git Pull best practice

Do not delay in Pull request

Reduces code quality and raise Conflicts. Always good to review the pull request soon for any merge or to deploy.

For one concern, raise one pull req

Single or several Atomic commits but only for one Feature. If large, split into features to Tidy up

Complete your work before a Pull Request

Valuable Comments with Pull Request

Define Code Owners

Use Git Ignore Keeps Repo clean, ensures files that are not monitored by git remain untracked

Use Rebase Easy to Review, Commit hostory remains stacked up as an exact sequence

Use Diff Helps in understanding if it is appropriate release or merge; Understand what precisely then= new changes are

Use Git Stash save changes temporarily with right message

Tag your Release : You can mark unique release versions of the code.

Helps you to compare changes of different releases; Easy to rollback a release and update

Don't mix refractoring with a new feature  Do not refractor and add a new feature in the same commit -> against git best practices -> Team productivity increases

100

Name 4 Attributes of a Best Quality Software

Maintainability

Efficiency

Dependability

Usability


100

Annotaion to enable caching by auto configuration

 @EnableCaching

100

Six key Areas of Spring Framework

Spring Web

Spring Core

Spring Data Access

Spring AOP (Spring Aspect Oriented Programming)

Spring Testing

Spring Integration

100

What part of CI/CD Pipeline does these co-relate to?

Every change that passes all stages of your production pipeline is released to production. There is no human intervention, and only a failed test will prevent a new change to be deployed to production.

Continuous Development












100

Do not Commit these four from your branch

Generated files

Dependencies

Local Configuration Files

Broken code

100

What are you going to do if there is no Functional Spec or any documents related to the system and developer who wrote the code does not work in the company anymore, but you have a system and need to test?

In this case, you need to do the Exploratory Testing of the product. It is about exploring, finding out about the software, what it does, what it doesn’t do, what works and what doesn’t work.

In this testing, you will come to know about the system and its basic workflow. In Exploratory Testing, you can also discover ‘blocker’ bugs that are harmful to your system and therefore, protect your system from being crashed.

If you are a white box tester, the next step is to look for different module codes. By this, you will be able to analyze the test cases for different modules and their relations.

100

How to disable a specific Auto Configuration?

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) 

OR

using environmental property

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

100

Who/ what Company is the Founder of Spring Framework?

A. Baeldung

B. Pivotal Software

C. Rod Johnson

D. Palo Alto

Rod Johnson

100

Abbreviate SAST DAST

Static Analysis Security Testing

Dynamic Analysis Security Testing

100

What is GIT 'AFTER' Tech?

Increase Productivity by 80%

A - Atomic Commits

F - Frequent Commits

T - Test before you push your changes

E - Enforce Standards

R - Refractoring is not a new Feature

100

Integrate all tests with ________________ (one of the topics displayed here)



























What Type of Testing can be Automated with CI/CD?

  • API testing
  • Load testing
  • UI testing
  • Regression testing
  • Unit and component testing
  • Functional testing
  • Nonfunctional testing
  • Cross-browser testing
100

Different ways to Create SB application using Maven

  • Spring Maven Project
  • Spring Starter Project Wizard
  • Spring Initializr
  • Spring Boot CLI