Software Testing Essentials 软件测试精要
2011-11-16 16:41
295 查看
1. Full Life Cycle Test Strategies
SDLC: Software development life cycle (SDLC)
· Iterative
· Incremental
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.
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:
Reference:
googletesting.blogspot.com How Google Tests Software http://www.51testing.com
SDLC: Software development life cycle (SDLC)
· Iterative
· Incremental
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 | √ | √ | √ | √ |
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 |
googletesting.blogspot.com How Google Tests Software http://www.51testing.com
相关文章推荐
- 如何学习软件测试?How to study software testing?
- 如何学习软件测试?How to study software testing?
- 软件测试software testing summarize
- 如何学习软件测试?How to study software testing?
- 如何学习软件测试?How to study software testing?
- 如何学习软件测试?How to study software testing?
- [Testing] 软件测试工程师需要掌握的知识.
- Testing - 软件测试的思维和技巧
- Testing - 软件测试知识梳理 - 测试方法
- iOS 软件无需上线发送测试包测试 - TestFlight Beta Testing
- 软件测试的原则-Vital Program Testing Guidelines
- About Testing——Chapter 1. 什么是软件测试
- Testing - 软件测试知识梳理 - 自动化测试
- 【testing_第八周】软件测试心得
- Testing - 软件测试知识梳理 - 测试用例
- 研究生课程 软件测试17: Bug Bash and Beta Testing
- 软件测试与质量保证学习笔记(英)_UNIT1_Concept of Software Quality Assurance(原)
- Testing - 软件测试知识梳理 - 理解测试
- Testing - 软件测试杂谈
- 《the art of software testing》第四章 测试用例的设计