-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTesting.txt
More file actions
51 lines (44 loc) · 2.03 KB
/
Testing.txt
File metadata and controls
51 lines (44 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Testing (Notes from Cracking the Coding Interview, ch. 12).
Rule #1: expect abusive input
What reviewer is looking for:
1. Good list of test cases
2. Big picture understanding: What are the most important things to test?
What's the core functionality of this product that must not break?
3. Ecosystem. Fit the application into the larger world of other programs
and common tasks (email, sharing, etc) and make sure to check those.
4. Organized. Instead of just spouting off test cases, break them down
into categories. "badly formatted input" and "connectivity" are two
general ones I can think of, but use this as an opportunity to show
that you understand how the software works, what the main tasks are,
and how they can go wrong.
5. Practical. Are you testing strategies feasible to implement? Like actual
debugging, not "reinstall it" or "write it all again, but better"
Categories of questions
* Testing a real world object:
Who (users),
How (use cases),
Bounds (including environental),
Stress (when should it break and how),
Strategy (practical testing)
* Testing software
- Same as real world, plus the following
- Automated vs. manual: advantages and disadvantages
- White Box Testing: Unit tests, any kind of test where you have access to
individual functions
- Black Box Testing: testing the software as a whole.
- Always remember to break it down, don't rattle stuff off.
* Testing a function
Test cases:
- Try to ask at least one question before you start, just to show
you're paying attention. Find some kind of assumption to ask about.
- Normal input
- Extreme input
- Null and out of bounds input
- Strange input (i.e. an already sorted array for a sorting function).
Verify output:
- Check for undesired side-effects as well as correctness
* Troubleshooting specific issues (debugging)
- Scenario: when, how often, which version, error report?
- Organize: list out lifecycle of program, iterate though to determine
failure point.
- Lay out how you'd actually do it.