requirement analysis, test planning, test case development, environment
setup, execution, and closure
Software Testing Life Cycle (STLC)
Break software into smaller components with clear responsibilities. This improves testing,
maintenance, reuse, and teamwork.
Modularity
What is Agile
Iterative software development that emphasizes collaboration, working software, feedback, and
responding to change
Stages all changed files in the current project
git add
Keeps data and the methods that operate on it together and control access to internal details
Encapsulation
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
Should be understandable, modular, maintainable, testable, scalable, and organized
around clear responsibilities.
Good architecture
- 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
Saves staged changes to local history.
git commit
A class derives behavior/data from another class; an IS-A relationship.
Inheritance
Verification vs Validation
Verification: Checks work against specifications/design.
Validation: Checks whether the product meets user/customer needs
Architecture Patterns
- MVC
- Layered
- Microservices
- Client-server
- UML
Scrum
An Agile framework that organizes work into short iterations.
Sends local commits to the remote repository.
git push
Different objects can respond differently to the same method/interface.
Polymorphism
Testing types
- Unit testing
- Integration testing
- System testing
- Acceptance testing
- Manual testing
UML
A fixed time-box in which the team completes selected work.
Sprint
Gets remote changes and integrates them locally.
git pull
Expose the important interface while hiding unnecessary implementation details.
Abstraction
Checks whether the software satisfies user/customer requirements
Acceptance testing
A visual workflow board such as To Do -> In Progress -> Testing -> Done; often used to limit work in
progress and make status visible
Kanban
Facilitates Scrum, helps remove blockers, and supports the team in following the process.
Scrum Master
Combines changes from branches.
git merge
Prefer building objects from smaller objects when a HAS-A relationship is
clearer and less tightly coupled than inheritance
Composition over inheritance