Testing
Agile
Software engineering
implementation
Technical stuff
100

Can software ever really be bug free?

No for any system of non-trivial complexity. As computer scientist Edsger Dijkstra famously noted: "Program testing can be used to show the presence of bugs, but never to show their absence." Because the number of possible states and user interaction paths in complex software explodes exponentially, achieving absolute zero bugs is practically impossible

100

What are core role in Agile team

Scrum Master, Product Owner, and Developers 

100

What are Functional and non-functional requirements

Functional requirements is What the system should do 

non-functional requirements  is  How good the system do it

100

What is Single Responsibility Principle?

 A module, class, or function should have one—and only one—reason to change

100

What is API?

API (Application Programming Interface) is a set of rules and protocols that lets different software applications communicate and share data with each othe

200

What is Software Defect?

Software Defect: An error, flaw, or fault in a software program that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.

200

What is the different between Scrum and Sprint?

  • Think of Scrum as a marathon training program—it sets up the rules, schedule, nutrition guidelines, and overall strategy.

  • Think of a Sprint as an individual training session or run within that program—a focused, timed interval where you execute specific goals.

200

What is Modularity?

 A design principle that divides a system into smaller, self-contained, and interchangeable parts (modules) that can be developed, tested, and maintained independently.

200

What is CRUB?

CRUD (Create, Read, Update, Delete): The four core operations of persistent data storage and database management.

200

What is different between git pull and git push

git push: A command used to upload your local repository's committed history

git pull: A command that downloads the latest changes from a remote repository and automatically tries to integrate (merge) them into your current local branch 

300

Validation vs Verification

  • Verification: "Are we building the product right?" Checks whether the software conforms to its specified requirements and design (e.g., code reviews, static analysis).

  • Validation: "Are we building the right product?" Checks whether the software meets the user's actual needs and expectations in the real world (e.g., user acceptance testing).

300

What is Agile?

 An iterative approach to project management and software development that helps teams deliver value to customers faster, emphasizing flexibility, continuous feedback, and cross-functional collaboration. 


300

What is a good architect design?

 A design that is maintainable, scalable, testable, and robust. It features high cohesion (modules do one clear thing) and low coupling (modules are minimally dependent on one another), ensuring that changes in one part of the system don't break others.

300

Why we choose Composition over Inheritance?


Inheritance should generally be reserved for true, strict hierarchical relationships ("Is-A") where behavior rarely changes. For almost everything else, composition gives you the modularity, maintainability, and adaptability modern software demands.

300

What is different between INNER JOIN, LEFT JOIN, and RIGHT JOIN?

An INNER JOIN returns only the rows that have matching values in both tables. 

A LEFT JOIN returns all rows from the left table, and the matched rows from the right table

A RIGHT JOIN is the exact opposite of a LEFT JOIN. It returns all rows from the right table, and the matched rows from the left table.  

400

What are Software Testing Life Cycle Phases?

  1. Requirement Analysis: Identifying what needs to be tested.

  2. Test Planning: Defining strategy, resources, schedules, and tools.

  3. Test Case Development: Writing detailed test scenarios and steps.

  4. Test Environment Setup: Configuring the hardware and software for testing.

  5. Test Execution: Running tests and logging bugs.

  6. Test Cycle Closure: Evaluating execution metrics and documenting lessons learned.

400

What are the core value of Agile?

  1. Individuals and interactions over processes and tools.

  2. Working software over comprehensive documentation.

  3. Customer collaboration over contract negotiation.

  4. Responding to change over following a plan.

400

What is Kanban?

A visual workflow management method designed to help teams optimize the flow of work. It typically uses a board with columns representing different stages of progress (e.g., To Do, In Progress, Done) alongside strict WIP (Work-In-Progress) limits.

400

What can be as refactoring code?

Extracting Functions or Methods: Taking a long, messy block of code inside a function and breaking it down into smaller, well-named helper functions.

Renaming Variables and Functions: Changing vague names to descriptive, intention-revealing names 

Removing Duplicate Code (DRY - Don't Repeat Yourself): Finding identical or very similar blocks of code spread across different files or functions and combining them into a single reusable function or component.

Simplifying Conditional Logic: Replacing deeply nested if/else statements with guard clauses, polymorphic behavior, or lookup tables to make the logic easier to follow.

Removing Dead Code: Deleting unused variables, functions, old imports, or unreachable code blocks that clutter the codebase.

Managing Class/Module Responsibilities: Splitting large, bloated classes or files into smaller ones, ensuring each module has a single, well-defined responsibility (Single Responsibility Principle).

400

What is Staging Area?

an intermediate preview space where you prepare and organize changes before saving them permanently to the repository history

500

What the diffrent between Unit Test, Integration Test, System Test and acceptance Test

Unit Testing: Testing individual components, functions, or methods in isolation.


Integration Testing: Testing how multiple units or modules work together as a group.


System Testing: Testing the complete, integrated software system as a whole against all requirements.


Acceptance Testing: Testing whether the software meets business requirements and is ready for delivery (often performed by the client/users, known as UAT).

500

Provide  at least 5 guiding rule of Agile

  1. Satisfy the customer: Prioritize early and continuous delivery of valuable software.

  2. Welcome changing requirements: Adapt to changes even late in the development cycle to give the customer a competitive advantage.

  3. Deliver working software frequently: Release functional products regularly, ranging from a couple of weeks to a couple of months, favoring shorter timescales.

  4. Collaborate daily: Business people and developers must work together closely every day throughout the project.

  5. Build around motivated individuals: Provide the support, environment, and trust needed to get the job done.

  6. Prefer face-to-face conversation: Use direct communication as the most efficient and effective way to share information within a team.

  7. Measure progress by working software: Track functional software as the primary indicator of a project's advancement.

  8. Promote sustainable development: Maintain a constant, indefinite pace that sponsors, developers, and users can sustain without burnout.

  9. Strive for technical excellence: Pay continuous attention to good design and clean code to enhance agility.

  10. Embrace simplicity: Maximize the amount of work not done by cutting out unnecessary complexity.

  11. Foster self-organizing teams: Allow the best architectures, requirements, and designs to emerge from empowered teams.

  12. Reflect and adjust: Have the team regularly evaluate how to become more effective, then tune and adjust behavior accordingly.

500

What is UML Diagram?


a standardized visual chart used to design, document, and build software systems, business workflows, and data structures

500

What is Object-Oriented Programming ?

programming paradigm based on the concept of "objects," which bundle data (attributes/properties) and behaviors (methods/functions) together.

500

How to create a table USER  that contain id  ,username, password , time of creation in MySQL?

CREATE TABLE users (

    id INT AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(50) NOT NULL UNIQUE,

    password VARCHAR(100) NOT NULL,

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);