_____ testing is more suitable for tasks that require repeated execution, while _____ testing is often more suitable for exploratory or usability testing.

  • Exploratory, Regression
  • Integration, Unit
  • Regression, Exploratory
  • Unit, Integration
"Unit testing" is more suitable for tasks that require repeated execution, focusing on individual components. "Integration testing" is suitable for verifying interactions between components.

In the context of SOLID principles, how does the Dependency Inversion Principle aid in creating a flexible architecture?

  • It allows high-level modules to depend on abstractions and not concrete implementations.
  • It encourages high dependence on concrete implementations.
  • It enforces that high-level modules should always use concrete implementations directly.
  • It promotes tight coupling between modules.
The Dependency Inversion Principle (DIP) in SOLID principles advocates that high-level modules should depend on abstractions (interfaces or abstract classes) rather than concrete implementations. This promotes flexibility and allows different implementations to be swapped without affecting the high-level module. DIP aids in creating a flexible and maintainable architecture.

In Test-Driven Development (TDD), what is the purpose of writing a failing test before implementing the code?

  • To confuse developers.
  • To ensure code meets requirements.
  • To increase development time.
  • To make testing unnecessary.
In TDD, writing a failing test first ensures that the code you write is designed to meet specific requirements. It acts as a guide for code implementation, driving development towards the desired outcome.

Using _____ tools during code review can help automate the process of checking for syntax errors and coding standard violations.

  • Debug
  • Debugging
  • Linting
  • Profiling
Using linting tools during code review can automate the process of checking for syntax errors and adherence to coding standards, enhancing code quality.

During the _____ phase of the SDLC, stakeholders and developers decide whether the project is technically and financially feasible.

  • Maintenance
  • Planning
  • Requirements
  • Testing
The Planning phase in the SDLC is where stakeholders and developers decide whether the project is technically and financially feasible before committing to development.

The _____ deployment strategy allows for easy rollback and minimal downtime by having two separate environments.

  • Agile
  • Blue-green
  • Scrum
  • Waterfall
The Blue-Green deployment strategy allows for easy rollback and minimal downtime by having two separate environments. It ensures seamless updates and testing in a controlled manner.

The _____ principle in coding best practices advocates that a function or module should only have responsibility over a single part of the functionality.

  • Agile
  • DRY
  • RAD
  • SOLID
The blank should be filled with "SOLID." The SOLID principles are a set of five principles that help in designing maintainable and scalable software. The Single Responsibility Principle (SRP) is one of these principles and emphasizes that a function or module should have a single responsibility.

How do Source Code Management tools aid in collaborative development?

  • By automating testing
  • By preventing errors
  • By tracking changes and versions
  • By writing code quickly
Source Code Management tools, like Git, aid collaborative development by tracking changes, maintaining version history, and enabling team members to work on the same codebase concurrently, ensuring collaboration and version control.

The _____ tool is widely used for version control and source code management.

  • Docker
  • Git
  • JIRA
  • Jenkins
Git is widely used for version control and source code management. It allows multiple people to collaborate on projects and track changes efficiently.

Imagine a software development team is tasked with creating a mobile application for a bank. During which phase of the SDLC would the team focus on understanding the features the bank wants in the application?

  • Design Phase
  • Maintenance Phase
  • Requirements Phase
  • Testing Phase
The team would focus on understanding the features the bank wants during the Requirements Phase. In this phase, the requirements are gathered and documented to ensure that the software aligns with the bank's needs.