OO Design and Test Planning Flashcards
(16 cards)
What is the purpose of low-level design in software engineering?
Low-level design provides enough detail to guide developers in building the software, serving as the final output of the specification phase and ensuring that developers know exactly what to implement, not design as they go.
Who typically leads the creation of the final low-level design?
A Solution Architect often leads the creation of the final low-level design, using tools like UML and database design, and facilitating consensus and understanding around the architecture.
What are the main components of final specification outputs?
The main components include architecture design, interface design, database design, and component design.
What is the role of UML in component design?
UML is used to visually represent classes, objects, and their relationships, providing clarity and detail for developers to implement the intended design.
What details should a class description document include?
It should specify for each variable - what data format and what it will be used for
for each method - what info does it receive and why, what does it do, what output does it produce and why, who will use the output
and how to verify the class works as expected.
Why are test plans important in software development?
Test plans define what counts as ‘finished’, guide developers in testing their code, help managers estimate testing workload and schedule, and serve as evidence of proper engineering to clients.
What are the three main types of test plans and what do they test?
Development Test Plans - prove that a class functions correctly
System/Integration Test Plans - prove the software meets the specs, tests that cause one class to use another, interface tests
Acceptance Test Plans - shows software meets requirements, often done with a client
What are the typical sections of a test plan document?
Testing Process, Specifications Traceability, Tested Items, Testing Schedule, Test Recording Procedures, Hardware/Software Requirements, Constraints, System Tests - list of all the exact test cases that will be tested
What are the four key elements of a test case?
Statement of what is being tested, Specification of the test inputs, Expected output from the system, Steps needed to carry out the test.
What are the two main types of testing described in the lecture?
Validation Testing - tests that the software produces the right answer
Defect Testing - tests that show the software doesn’t break
What is a common mistake students make when writing tests?
Only writing validation tests and neglecting defect testing.
What information should be included in test documentation?
Test ID, Reason/description, Input data, Expected output, Pass/Fail status, Date and notes.
What should happen when a test fails?
The code should not be shipped; the failure should be documented, the code or test should be corrected, and the test should be rerun until it passes.
How should links between code and test reports be managed?
If code changes due to a test, the change should reference the test/result, who made it, and when.
How do higher-level test documents differ from low-level ones?
Higher-level test documents use requirements or specifications as inputs/outputs rather than just function calls and return values.
At what phase should test planning occur in the software development process?
Test planning should be part of the specification phase, ideally before coding begins.