A Few Review Questions Dan Fleck Fall 2008

advertisement
A Few Review Questions
Dan Fleck
Fall 2008
System Test Case
Enter invalid username
in the input box
Able to enter text
Enter invalid password
in the input box
Able to enter text
Click login button
Error message
displayed saying “invalid
username or password”
What is wrong with this system test case?
(formatting is wrong, but what else is?)
System Test Case
Run the system and at
System cancels the
any point press “cancel” action
What is wrong with this system test case?
(formatting is wrong, but what else is?)
Many project managers fail. What are some
of the main reasons projects fail and how
can you lower your risk of failure?
Problems with these requirements?
Users shall have an ATM Card
 The game system shall provide a way to
regenerate players and provide a scoring
mechanism
 The game system shall be fun to play
 The game system may be accessible for
the disabled

What is the difference between
design and analysis phase?
Analysis describes WHAT the system
must do, design describes HOW the
system will do it.
 Analysis describes the problem domain,
design describes the solution domain

What is a design principle?

Good things you should try to do when
creating a system. (Principles that have
historically lead to successful projects.)
Explain the interface
segregation principle

Don’t make large multipurpose interfaces –
instead use several small focused ones.

Don’t make clients depend on interfaces they
don’t use.

Class should depend on each other through the
smallest possible interface.
Why???
What am I violating? How
should I fix it?
class Cat {
public int numberOfFeet = 4;
}
class Owner { public Cat cat; }
class Veterinarian {
public void amputate(Owner o) {
o.cat.numberOfFeet = 2;
}
What am I violating? How should I fix it?
Law of Demeter and poor encapsulation
class Cat {
public int numberOfFeet = 4;
}
class Veterinarian {
public void amputate(Cat c) {
c.NumberOfFeet(2);
}
}
If I have a serial database that
only allows one user to query it
at a time, what pattern could I
use?

Singleton - limits access to a shared
resource by ensuring only one object is
ever created (in this case, the database
connection)

Which gang is least-scary?
Republicans
 Crips
 Democrats
 Gang of Four
 Bloods


Why?
Define coupling (and I don’t mean the
terrible show from 2000)
 Define cohesion

Cast of Coupling (2000)

You and Dracula are
both afraid if
stakeholders get
upset. Why?
Define critical path and tell me
when I should pack for the cruise
Activity
Duration
Predecessor
1. Requirements collection
5
2. Screen Design
6
1
3. Report Design
6
1
4. Database Design
2
2,3
5. User Documentation
6
4
6. Programming
5
4
7. Testing
3
6
8. Installation
2
5, 7
9. Celebration Cruise
30
8

Carl and Bob are racing, but are friends
and want to finish in a tie (at the same
time), what is the schedule dependency
that describes this (FS, FF, SF, SS) best?
Why is it necessary to quantify
your plans?
What is expectation management? Why is it
important? Give an example from your life
where it was not done and the results?
Define verification
 Define validation
 Define IV&V
 If my software requirements say the
background should be blue, but I like red
better, will I fail in verification, validation or
both?


What is dynamic verification?

What is an example of static verification?

Which is FindBugs?
What is a stopping rule for testing? Or
what do I mean by that?
A stopping rule is a rule to determine
when you can “stop” testing. Older testing
techniques provided no quantifiable
stopping rule. Newer techniques using
coverage criteria do provide a stopping
rule
 Using the older techniques, when do you
stop testing?

My goal was to get 30 questions for the
review by the time Heros starts at 9pm. It
is now 8:30pm and I have 18 slides. I
started at 7pm.
 What are some metrics I should calculate
now to understand my Heros Watching
Potential (HWP) ?
 If I decide to watch it now, and finish the
slides in the morning, how much earlier
do I need to wake up tomorrow?

What are some advantages and
disadvantages of metrics based
on lines of code?

In the software fault, error and failure
model, is a software fault still present if it
does not generate a failure?

Yes… the failure may appear later or
once new code is added, but the fault is
there regardless.

Define white box and black box testing

Don’t forget… just knowing the answers
to these questions is NOT enough. Look
at the review guide online for the full list of
things to know!!!!
Explain the steps in mutation testing
 How do I kill a mutant?

1.
2.
3.
4.
Create a set of test cases that all pass
Induce small changes to the program: mutants
Find tests that cause the mutant programs to fail: killing mutants
Failure is defined as different output from the original program
A mutant is a variation of my software created by changing lines
of code. By introducing changes to the source code, I can detect
if the testing done is thorough or not.
I kill a mutant by writing a test case that fails for the mutant code,
but not for the original code
Diagrams

Still know how to draw these diagrams? I
would.
Use case diagram
 Class diagram
 Sequence diagram
 Level 0 Context diagram
 Activity diagram (with/without swimlanes)

I hope you enjoyed the class. I did!
Download