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:

  1. googletesting.blogspot.com How Google Tests Software

    http://www.51testing.com

     

 

 

 

 

 

posted on 2011-11-16 16:41  Mark Jiao  阅读(443)  评论(0编辑  收藏  举报

导航