Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20054118
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: 项目管理

2007-08-09 14:27:33

软件测试

来源:

 

主要内容:

本质

术语

分类

调试

IEEE标准

 

定义:

•         Glen Myers       Testing is the process of executing a program with the intent of finding errors

•         Paul Jorgensen

•         Testing is obviously concerned with errors, faults, failures and incidents. A test is the act of exercising software with test cases with an objective of

•         Finding failure

•         Demonstrate correct execution

 

测试的生命周期:

      

 

术语:

•         Error

–        Represents mistakes made by people

•         Fault

–        Is result of error. May be categorized as

•         Fault of Commission – we enter something into representation that is incorrect

•         Fault of Omission – Designer can make error of omission, the resulting fault is that something is missing that should have been present in the representation

•         Failure

–        Occurs when fault executes.

•         Incident

–        Behavior of fault. An incident is the symptom(s) associated with a failure that alerts user to the occurrence of a failure

•         Test case

–        Associated with program behavior. It carries set of input and list of expected output

•         Verification

–        Process of determining whether output of one phase of development conforms to its previous phase.

•         Validation

–        Process of determining whether a fully developed system conforms to its SRS document

Verification versus Validation

 

•         Verification is concerned with phase containment of errors

•         Validation is concerned about the final product to be error free

 

 

测试分类:

•         There are two levels of classification

–        One distinguishes at granularity level

•         Unit level

•         System level

•         Integration level

–        Other classification (mostly for unit level) is based on methodologies

•         Black box (Functional) Testing

•         White box (Structural) Testing

•         2, 5

–        Specified behavior that are not tested

•         1, 4

–        Specified behavior that are tested

•         3, 7

–        Test cases corresponding to unspecified behavior

 

•         2, 6

–        Programmed behavior that are not tested

•         1, 3

–        Programmed behavior that are tested

•         4, 7

–        Test cases corresponding to un-programmed behaviors

–         

•         there are no test cases, the testing is incomplete

•         If there are test cases that correspond to unspecified behaviors

–        Either such test cases are unwarranted

–        Specification is deficient (also implies that testers should participate in specification and design reviews)

测试方法:

•         Functional (Black box) inspects specified behavior

•         Structural (White box) inspects programmed behavior

 

•         Few set of guidelines available

•         A logical approach could be

–        Prepare functional test cases as part of specification. However they could be used only after unit and/or system is available.

–        Preparation of Structural test cases could be part of implementation/code phase.

–        Unit, Integration and System testing are performed in order.

单元测试的本质:

•         Applicable to modular design

–        Unit testing inspects individual modules

•         Locate error in smaller region

–        In an integrated system, it may not be easier to determine which module has caused fault

–        Reduces debugging efforts

测试用例

•         Test case is a triplet [I, S, O] where

–        I is input data

–        S is state of system at which data will be input

–        O is the expected output

•         Test suite is set of all test cases

•         Test cases are not randomly selected. Instead even they need to be designed.

测试用例需要设计

•         Almost every non-trivial system has an extremely large input data domain thereby making exhaustive testing impractical

•         If randomly selected then test case may loose significance since it may expose an already detected error by some other test case

•         Number of test cases do not determine the effectiveness

•         Each test case should detect different errors

 

黑盒测试

•         Equivalence class partitioning   等价类划分

•         Boundary value analysis          边界值分析

•         Comparison testing                 比较测试

•         Orthogonal array testing          矩阵测试(正交阵列?)

•         Decision Table based testing    基于决策表测试

–        Cause Effect Graph

•         等价类划分和边界值分析经常有共同的地方,测试时选值要选边界值

 

 

因果图:

•           Testing would be a lot easier:

–        if we could automatically generate test cases from requirements.

•         Work done at IBM:

–        Can requirements specifications be systematically used to design functional test cases?

•         Examine the requirements:

–        restate them as logical relation between inputs and outputs.

–        The result is a Boolean graph representing  the relationships

•         called a cause-effect graph.

•         Convert the graph to a decision table:

–        each column of the decision table corresponds to a test case for functional testing.

创建步骤:

•         Study the functional requirements.

•         Mark and number all causes and effects.

•         Numbered causes and effects:

–        become nodes of the graph.

•         Draw causes on the  LHS

•         Draw effects on the RHS

•         Draw logical relationship between causes and effects

–        as edges in the graph.

•         Extra nodes can be added

–        to simplify the graph

•         Refer “On the Experience of Using Cause-Effect Graphs for Software Specification and Test Generation” by Amit Paradkar. ACM Publications

白盒测试

•           Statement coverage

•         Branch coverage

•         Path coverage

•         Condition coverage

•         Mutation testing

•         Data flow-based testing

 


文件:SoftwareTesting.rar
大小:81KB
下载:下载

 

阅读(3091) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-05-12 11:05:56

有没有其他关于测试的资料呀?我想要学习测试 ,如果有测试方面的资料,能给我发一份吗? 先说声谢谢! 我的邮箱是:yanjianhua1106@163.com