软件测试--目标维度

软件测试--目标维度


软件测试重要概念的理解:
Aspect 1: Validation vs. Verification
Verification testing :(校验测试:实现是否符合设计)
定义:evaluates software to determine whether theproducts of a given development phase satisfy the conditions imposed at the start of that phase.
1an internal process.
2Unit, integration, and system testing are all verification testing.

Validation testing :(验证测试:系统是否符合用户要求)
定义:evaluate software during or at the end of the development process to determine whether it really addresses what the customers need.
 Acceptance testing is validation testing.


Aspect 2: Static vs. Dynamic
Static testing:(静态测试)
定义:a form of software testing where the software isn't actually used.
静态测试的类型:
1Peer Reviews:The programmer shows her/his code to one or two other programmers or testers who act as reviewers and receive casual comments.
2Walkthroughs:The programmer presents her/his source code to a small group (five or more) of programmers and testers.
3Inspections: The presenter or reader isn't the original programmer. The other participants are called inspectors.


静态测试找到的错误类型:Faults Detected in Static Testing
1 Violation of coding standard
2 Data declaration errors: improperly declaring or using variables or constants
3 Data reference errors: using a variable, constant, array, string, structure, or class that hasn't been properly declared or initialized.
4 Computation errors: bad math
5 Comparison errors: boundary condition problems
6 Control flow errors: loops and other control constructs in the language not behaving as expected.
7 Subroutine parameter errors: incorrect passing of data to and from software subroutines.
8 Input or output errors:the specified format of the data


Dynamic testing:
定义: examine the software by running it
 Unit, integration, system, and acceptance testing are dynamic testing.


Aspect 3: The Level of Testing


1Unit testing: 
定义:tests individual module to determine whether they correctly implement what specified by the software design.
关注范围:Concentrates on the internal processing logic and data structures of a module (e.g. method or class)
1 Module input/output
2 Local data structures
3 Boundary conditions
4 Basis paths
5 Exception handling


单元测试检测到的错误:
 Misunderstood or incorrect arithmetic precedence
 Mixed mode operations (e.g., int, float, char)
 Incorrect initialization of values
 Precision inaccuracy and round-off errors
 Incorrect symbolic representation of an expression (e.g. int vs. float)
 Comparison of different data types
 Incorrect logical operators or precedence
 Expectation of equality when precision error makes equality unlikely (using == with float types)
 Incorrect comparison of variables
 Improper or nonexistent loop termination
 Failure to exit when divergent iteration is encountered
 Improperly modified loop variables
 Boundary value violations
 Exception condition processing is incorrect


2 Integration testing: 
定义:tests the interfaces of modules and their interaction through these modules.
关注范围:Test all interfaces between modules and the interaction of modules
集成测试类型:Types of Integration Testing

1Big-Bang


2Bottom-up


优缺点分析:
 Con:
• Tests the most important sub-system (user interface) last
• Drivers needed
 Pro
• No stubs needed
• Useful for integration testing of the following systems
• Object-oriented systems
• Real-time systems
• Systems with strict performance requirements.

3Top-down


优缺点分析:
Pro
 Test cases can be defined in terms of the functionality of the system (functional requirements)
 No drivers needed
Cons
 Writing stubs is difficult: Stubs must allow all possible conditions to be tested.
 Large number of stubs may be required, especially if the lowest level of the system contains many methods.
 Some interfaces are not tested separately.

4Sandwich


优缺点分析:Pros and Cons
 Top and Bottom Layer Tests can be done in parallel
 Problem: Does not test the individual subsystems and their interfaces thoroughly before integration
 Solution: Modified sandwich testing strategy


5Modified Sandwich

 

 Test in parallel:
• Middle layer with drivers and stubs
• Top layer with stubs
• Bottom layer with drivers
 Test in parallel:
• Top layer accessing middle layer (top layer replacesdrivers)
• Bottom accessed by middle layer (bottom layer
replaces stubs).


6Continuous testing 
定义:assumes an agile development process that deploys continuous build (持续集成)


3系统测试 System testing
定义:conducted on a complete, integrated system to test the system's compliance with its specified requirements.


4Acceptance testing
定义: done by the customers to validate whether the software really provides what they need.
测试类型:
1Alpha testing :is conducted at the developer’s site by customers
2Beta testing :is conducted at customer’s site by customers


软件测试目标:
1 Functional testing: verify that the software performs and functions correctly according to the functionality requirements
2 Non-functional testing: verify the non-functional requirements of the software, such as reliability, performance
Non-functional testing 包括:Recovery testing、Security testing、Load testing、Stress testing、Usability testing


软件测试的方法:

1White-box testing: a method of software testing that examines the internal structures or workings of the software.


2Black-box testing: a method of software testing that examines the behavior of an application without peering into its internal structures or workings.


3Model-based testing: a special kind of black-box testing that is based on a rigorous (typically formal) model of the expected software behavior.




负责软件测试的人员:
1Developer testing:white-box testing
2QA team testing: black-box testing
3 User testing:

Regression testing (回归测试)
定义:re-executes test cases that have already been conducted to ensure that changes to the software do not introduce unintended behavior.


 Smoke testing (冒烟测试)
定义:is a special kind of regression testing that is executed immediately after the whole system is built.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值