Testing
Design
Agile
Git
Object-Oriented Programming
100

requirement analysis, test planning, test case development, environment
setup, execution, and closure

Software Testing Life Cycle (STLC)

100

Break software into smaller components with clear responsibilities. This improves testing,
maintenance, reuse, and teamwork.

Modularity

100

What is Agile

Iterative software development that emphasizes collaboration, working software, feedback, and
responding to change

100

Stages all changed files in the current project

git add

100

Keeps data and the methods that operate on it together and control access to internal details

Encapsulation

200

A bug or flaw that causes incorrect or unexpected behavior.
 Testing can find defects and reduce risk, but a nontrivial system cannot usually be proven completely
bug-free just by testing.

Software defect

200

Should be understandable, modular, maintainable, testable, scalable, and organized
around clear responsibilities.

Good architecture

200

- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.

Agile Manifesto core values

200

Saves staged changes to local history.

git commit

200

A class derives behavior/data from another class; an IS-A relationship.

Inheritance

300

Verification vs Validation

Verification: Checks work against specifications/design.


Validation: Checks whether the product meets user/customer needs

300

Architecture Patterns

- MVC

- Layered

- Microservices

- Client-server

- UML

300

Scrum

An Agile framework that organizes work into short iterations.

300

Sends local commits to the remote repository.

git push

300

Different objects can respond differently to the same method/interface.

Polymorphism

400

Testing types

- Unit testing

- Integration testing

- System testing

- Acceptance testing

- Manual testing

400
Unified Modeling Language - diagrams used to model software systems.
 Structural/static diagrams show what the system is made of, e.g., a class diagram.
 Behavioral/dynamic diagrams show interactions or behavior over time, e.g., sequence or activity
diagrams.

UML

400

A fixed time-box in which the team completes selected work.

Sprint

400

Gets remote changes and integrates them locally.

git pull

400

Expose the important interface while hiding unnecessary implementation details.

Abstraction

500

Checks whether the software satisfies user/customer requirements

Acceptance testing

500

A visual workflow board such as To Do -> In Progress -> Testing -> Done; often used to limit work in
progress and make status visible

Kanban

500

Facilitates Scrum, helps remove blockers, and supports the team in following the process.

Scrum Master

500

Combines changes from branches.

git merge

500

Prefer building objects from smaller objects when a HAS-A relationship is
clearer and less tightly coupled than inheritance

Composition over inheritance