CSE 3901 MIDTERM COMPLETE PREPARATION
GUIDE WITH CODING PRACTICES AND TEAM
PROJECT WORKFLOW
◉ Unit Testing.
Answer: Individual components are tested in isolation under unit
test (UUT).
Black box is testing only to specifications, White box is testing based
on code structure
◉ Integration Testing.
Answer: Modules are tested in combination to check interfaces. Best
done incrementally.
Bottom Up: start with most basic, easy to exercise all features, can
write a driver for higher levels
Top down: Start at top (main) test interfaces early
◉ System Testing.
Answer: Verify that systems as a whole meet the requirements and
specifications.
alpha: tested by developers before release
beta: by "friendly customers" before general release
,acceptance: by end customer, they better be happy!
◉ TDD.
Answer: Test Driven Development
◉ Repository = ?.
Answer: working tree + store
◉ working tree.
Answer: the project itself, an ordinary directory including files and
sub directories. developers retrieve copies to work on
◉ store.
Answer: hidden directory (.git) in root directory of working tree.
Brings in a time component. You should never access .git directly
◉ Commit.
Answer: creates a snapshot, each is identified by a hash and is
almost guaranteed to be unique.
◉ Index.
Answer: virtual snapshot stored at .git/index. this is a gateway for
moving changes made in the working tree to the store
,◉ Snapshot.
Answer: apply your modifications in the working copy to the
repository. changes the repository, "commits" changes
◉ History.
Answer: Directed Acyclic Graph of snapshots. Stacking a snapshot
and its predecessors gives a snapshot of the project (aka a revision
or a version)
◉ Branch.
Answer: pointer to a commit
◉ Head.
Answer: a special reference, usually pointing to a branch. think that
this is "attached" to a branch
◉ git status.
Answer: displays differences between head and index
◉ git add.
Answer: updates index based on files in working tree
, ◉ git commit.
Answer: stores current content of index along with a log message
(makes wt == index)
◉ git branch.
Answer: creates a new branch pointing to where the head is
◉ git checkout xxx.
Answer: updates index and working tree, points head to whatever
the argument is. only do this if the working tree is clean
◉ git log.
Answer: display snapshots in a store, DAG
◉ merge.
Answer: bring history together, bring work from another branch into
the current branch
◉ DVC.
Answer: Distributed Version Control, multiple people distributed
across a network contributing to a central repository
◉ Dynamically Typed Programming Language.
GUIDE WITH CODING PRACTICES AND TEAM
PROJECT WORKFLOW
◉ Unit Testing.
Answer: Individual components are tested in isolation under unit
test (UUT).
Black box is testing only to specifications, White box is testing based
on code structure
◉ Integration Testing.
Answer: Modules are tested in combination to check interfaces. Best
done incrementally.
Bottom Up: start with most basic, easy to exercise all features, can
write a driver for higher levels
Top down: Start at top (main) test interfaces early
◉ System Testing.
Answer: Verify that systems as a whole meet the requirements and
specifications.
alpha: tested by developers before release
beta: by "friendly customers" before general release
,acceptance: by end customer, they better be happy!
◉ TDD.
Answer: Test Driven Development
◉ Repository = ?.
Answer: working tree + store
◉ working tree.
Answer: the project itself, an ordinary directory including files and
sub directories. developers retrieve copies to work on
◉ store.
Answer: hidden directory (.git) in root directory of working tree.
Brings in a time component. You should never access .git directly
◉ Commit.
Answer: creates a snapshot, each is identified by a hash and is
almost guaranteed to be unique.
◉ Index.
Answer: virtual snapshot stored at .git/index. this is a gateway for
moving changes made in the working tree to the store
,◉ Snapshot.
Answer: apply your modifications in the working copy to the
repository. changes the repository, "commits" changes
◉ History.
Answer: Directed Acyclic Graph of snapshots. Stacking a snapshot
and its predecessors gives a snapshot of the project (aka a revision
or a version)
◉ Branch.
Answer: pointer to a commit
◉ Head.
Answer: a special reference, usually pointing to a branch. think that
this is "attached" to a branch
◉ git status.
Answer: displays differences between head and index
◉ git add.
Answer: updates index based on files in working tree
, ◉ git commit.
Answer: stores current content of index along with a log message
(makes wt == index)
◉ git branch.
Answer: creates a new branch pointing to where the head is
◉ git checkout xxx.
Answer: updates index and working tree, points head to whatever
the argument is. only do this if the working tree is clean
◉ git log.
Answer: display snapshots in a store, DAG
◉ merge.
Answer: bring history together, bring work from another branch into
the current branch
◉ DVC.
Answer: Distributed Version Control, multiple people distributed
across a network contributing to a central repository
◉ Dynamically Typed Programming Language.