Sofrware Design Flashcards
(22 cards)
White Box Test
Takes into account code, internal mechanism, it is usually done for unit testing. Sometimes part of integration tests.
Waterfall Development
Visitor Pattern
Separate an algorithm from an object structure, increase cohesion by removing processing code, visitor calls accept me, and element replies visit me.
Vertical Slice
Unit Testing
UML Sequence Diagram
Shows messages between objects
UML class relationships
There are six kinds of relationships. Dependency: changes to the definition of a class imply changes to another. Association: Dependency + Can’t imagine using one class without the other. Aggregation: Association+ an object includes objects from another class. Composition: Association + an object is built with objects from another class
UML Class Diagrams
Best communication tool between analysts and users. Has three parts Name, Attributes, Methods. + and - are used to show visibility of the methods.
Two Way Merg
Triangulation and Faking
Triangulation: If you don’t know the solution and you’re exploring, go step by step, from the simplest cases to the most complicated ones - from very specific, stupid implementations to the one that solves all your requirements.
Faking: Cheating tests by not calculating but returning the “excepted” result. Coding is complicated so fake answers until you are happy.
Top Down Integration Testing
Top-down approaches can be useful in testing software that is intended to be generic, tests in layers going down the dependency graph
Too Many Comments Smell
Refactor so some comments not needed
Too Few Comments Smell
You have to few comments
Three Way Merge
Test Harness
TDD(Test Driven Development)
-Always have working code
-Write code and test it at same time
TDD Cycle:
-Write test
-Compile test
-Write just enough code to get test to compile
-Run test and watch it fail
-Run all tests few times
-Refactor
-Repeat from step 1
Task
System Testing
-Block-box testing
-Tests high level design
-Done by an independent testing team in the candidate release branch
-Scale is whole system
System Prototype
Sync Merge
Structural Design Pattern
Stress Testing
-When: in systems that are intended to react in real-time like control systems
-How: