Software Testing Essentials 软件测试精要
1. Full Life Cycle Test Strategies
SDLC: Software development life cycle (SDLC)
· Iterative
· Incremental
Waterfall Model and Spiral Model, Prototype model, V-Model
Rational Unified Process,RUP
Agile: http://www.agilemanifesto.org/
Inception-->Sprint (Plan>Dev>Test>Deliver)-->Transition
· What make “Waterfall” waterfall? sequential and document-driven.
· What make “Agile” agile? Flexible.
Why/What/How are we testing? Test Goal/ Test Strategy/Test Plan/Test Case
Test Goals: fall into 2 categories: Bug finding or validation.
Test Strategy
A test strategy is defined as:
The plans and methods used to test your product to reach its goal.
Test Plan: is a schedule, define scope – what to test, not to test; risks;
Objective, Scope, Strategy, Schedule, Resource, Risk;
Test Strategy: is not a schedule, define techniques and approach/methods to do testing; many test plans have a “Test Approach” section which is the test strategy.
2. Test Case Essentials
Test Case: title/objective, data, steps, expected res.
Test case design criteria:
· Test cases with no steps because it takes most of time to write, review and maintain test steps. (not for complex tests).
· A test case should be an idea how you test.
· A test ideally executes a single test objective.
· Neither too simple nor too complex. (combine a too simple test case with others)
· Not redundant with other test. (think of equivalence classes)
· Best of its breed (think of boundary conditions)
3. Test Methods
Test Type
Unit Testing: always white-box;
Integration Testing: gray-box, UI;
System Testing: always black-box and UI layer testing.
User Acceptance Testing: test before release; executed by users;
Passive Testing: Functional Testing
Active Testing: Ad Hoc Testing
Test Methods
Requirement-based Testing Requirement traceability (TestDirector), not bug-finding but a validation test.
Regression Testing: a confidence test, not active testing, not a bug finding method. has limitations; make sure of no bugs; repeating; automation testing;
Forced Error Testing: fault injection. Aka. negative testing. Testing aimed at showing software does not work.
· False passive: run into exception but test passed, due to bad test cases;
· False negative: designed negative test case;
Exploratory Testing: Test it when you explore it. It’s an approach and idea not a defined process. Do it when you think it’s proper.
Ad Hoc Testing: no test plan, no test case. Or rough test plan with areas concentration at one time. Find bugs and test cases. not documented before running; could find missing cases; Regression tests and ad hoc tests complement each other.
Scenario-based Testing: to test/simulate user behavior. Design use cases.
Model-based Testing: is a technique that generates tests. Create a model. State transition.
Data Driven Testing: a test technique that can be used in test methods like action based testing, model based testing, and scenario based testing.
Action-based Testing: aka. Keyword-based testing. Action: do something.
Risk-based Testing: not a test method but a prioritization or selection methods. Test potential problems. Known problems are not risks. Risk analysis: severity, frequency and priority.
Test Method |
Bug Finding? |
Validation? |
Coverage? |
Maintenance Cost |
A test strategy sample |
Requirements-based/Functional |
X |
√ |
√ |
√√ |
25% |
Regression |
X |
√ |
√ |
√√√ |
25% |
Negative/ Forced Error |
√ |
X |
X |
√ |
10% |
Ad Hoc/ Exploratory |
√√ |
X |
X |
X |
25% |
Scenario |
√ |
- |
X |
- |
15% |
Model-based |
√ |
√ |
√ |
√ |
|
Action-based |
√ |
√ |
√ |
√ |
|
Discussion: which will find more bugs?
Function Testing vs. Error Testing
20% 80%
Boundary Definition: equivalent classes;
Sample: Application name in Workbench;
· 26 English chars, 10 numbers;
· Windows reserved chars: /\:*?”<>| ( /\+$?%*:|”<>.[tab])
· Blank space, -,_,…
· Empty/long string;
· Non-ASCII chars(FG);
· Multi-byte chars(CFK);
New Feature Testing In a Sprint
Test Case Coverage:
· Functional |
· Negative |
· Stress |
· Globalization |
· Boundary |
· Platform |
· Performance |
· Security |
Reference:
-
googletesting.blogspot.com How Google Tests Software
http://www.51testing.com