1/30
Question and answer flashcards covering core concepts from the CPSC 310 software engineering lecture notes, including requirements, testing, design, ethics, and practical methodologies.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is Software Engineering?
The process of transforming a mental plan of desired actions for a computer into a representation that can be understood by the computer.
What is the 310-Centric view of SE?
A socio-technical perspective that emphasizes transforming mental plans into computer-understandable representations within a broader social and technical context.
How does CPSC 310 differ from CPSC 210 in terms of codebases and requirements?
CPSC 310 deals with large codebases, multi-version development, collaboration, and changing requirements, unlike the smaller, more static scope of CPSC 210.
List the main stages of the Requirements Engineering lifecycle.
Conception, Elicitation, Analysis, Specification, and Validation.
What is elicitation in requirements engineering?
The process of gathering requirements from clients, users, and other sources.
What is validation in requirements engineering?
Ensuring the elicited requirements are correct, consistent, and complete.
What are functional requirements?
The system functionalities—what the system should do.
What are quality attributes (non-functional requirements)?
Properties the product must have, such as security, reliability, performance, legal compliance, usability, etc.
Give examples of quality attributes.
Security, Reliability, Performance, Legal/Compliance, Usability (and others like debuggability, evolvability).
What is a User Story and what are its components?
A feature described from a user’s perspective, including Role, Goal, Benefit, and Definition of Done (Acceptance Criteria).
What is the Definition of Done (DoD) in a User Story?
The acceptance criteria that determine when a story is complete and ready for review.
What is Black Box testing?
Testing based on the specification without inspecting internal implementation; uses techniques like Equivalence Class Partitioning and Boundary Value Analysis.
What is Glass Box testing?
Testing based on the actual implementation; uses test coverage metrics and mutation testing to evaluate the test suite.
Define Unit, Integration, and End-to-End tests.
Unit tests verify individual units in isolation; Integration tests check how parts work together; End-to-End tests validate the entire application from the user perspective.
What is Test Coverage?
A measure of how much of the code or behavior is exercised by tests, including line/statement, branch, and path coverage.
What is Equivalence Class Partitioning (ECP)?
Partitioning input/output space into equivalence classes; test one representative from each class to cover the domain efficiently.
What is Boundary Value Analysis (BVA)?
Testing at and around partition boundaries using in-bound, on-boundary, and out-of-bound values.
What is Mutation Testing?
Mutate the program’s code and run tests to see if the mutants are caught; helps assess test strength via kill scores.
What is the Ariane 5 failure example used to illustrate?
A software failure caused by an untested or mis-tested edge case, illustrating the necessity of thorough testing.
What are Observability, Controllability, Automatability, and Isolateability in testing?
Key testability properties: Observability (verify test outcomes), Controllability (control the system under test), Automatability (automate tests), Isolateability (test components in isolation).
What are Mocks in testing?
Mock objects simulate the behavior of real components to enable testing in isolation without relying on real, slower, or non-deterministic parts.
What is Test-Driven Development (TDD)?
A development approach where tests are written first to specify and enforce the requirements before implementing the code.
What is Ethics in testing and the role of the ACM Code of Ethics?
Ethics guide software engineers to consider societal impact, safety, fairness, honesty, and responsibility; ACM Code provides principles and professional obligations.
What are the two main kinds of test suites and their purposes?
Unit tests (test individual components) and Acceptance/End-to-End tests (verify the system meets user-facing requirements and behaves correctly for the client).
What is the difference between black-box and glass-box testing?
Black-box tests focus on the specification without looking at the implementation; glass-box tests examine the internal structure and behavior of the implemented code.
What is the purpose of Equivalence Class Partitioning and Boundary Value Analysis together?
To design strong, efficient test suites by partitioning inputs/outputs into representative classes (ECP) and testing boundary values (BVA).
What is a wicked problem in software engineering?
A problem that can only be clearly defined by solving it; understanding emerges through discussion and iterative refinement.
What is a User Story vs an Epic vs Tasks?
User stories are small, testable user requirements; epics group related stories across sprints; tasks are engineering activities to implement stories.
What is the role of AutoTest in CPSC 310?
An automated formative assessment tool that provides feedback and bucket grades to guide learning and assess project progress.
What are the risks of not testing adequately (referencing the Ariane/AI examples)?
Unidentified defects can lead to costly, dangerous, or unethical outcomes; thorough testing mitigates risk and protects public safety.
What is the importance of testability in design (Observability, Controllability, etc.)?
Designing for testability makes it easier to observe results, control behavior, automate tests, and isolate faults, leading to faster, more reliable testing.