软件测试 概述
2014-06-06 09:15
274 查看
软件测试的轮廓
软件测试层次:概念、技巧、工具
软件测试构成:问题、方法、目标、领域
软件质量图:
软件质量的指标:
1Functionality: Give the user what they want in a correct way, and nothing more
合适、正确、遵从标准、安全
2Usability: Minimize the effort needed for use of the software
易理解、易学习、易操作、人性化
3Reliability:The probability of failure free operation of a computer program in a specified environment for a specified time.
• MTTF: mean time to failure
可用 、能容错、可恢复、健壮
4Maintainability:The ease of maintaining the software and The capability of the software to be modified.
应变能力、稳定能力、测试能力
5Portability: The capability of software to be transferred from one environment to another.
适应、易安装、共存性(能与其他软件共用资源)、一致性、可迭代
软件开发“铁三角”定律:
正确理解软件质量中的三个概念:Failure(事件结果)、Fault(设计缺陷、逻辑漏洞)、Error(认识、判断错误)
bug的来源:
1客户 需求不清晰
2需求工程师 与客户沟通存在问题,理解不一致
3设计师 系统设计漏洞
4编程人员
4质量管控团队
5操作人员
6使用编写人员 操作手册编写错误
Fault类别:
功能、算法、接口、检车、分配
软件测试的困难:
1系统复杂
2遵从标准
3系统多变
Quality Assurance: 质量保证:改正错误
• A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives.
Quality Control: 质量管控 评估错误
• A set of activities designed to evaluate a developed work product.
Differences:
• QA focus on the process elements of a project. QC activities focus on finding defects in specific deliverables.
• QA makes sure you are doing the right things, the right way, QC makes sure the results of what you've done are what you expected.
Validation:验证 :系统是否符合用户需求?
does the software system meets the user's real needs? are we building the right software?
Verification:校验 系统实现是否符合设计方案?
does the software system meets the requirements specifications? are we building the software right?
Software Verification Techniques
Inspection 检查
• A constructive review of the artifacts, typically the code (code review)
Model checking 模型检查
• Proving that the programs in question to be absolutely correct with respect to some formal properties on any input
Program analysis 程序分析
• Identifying certain problematic code patterns that are known to be bug-prone.
Testing 测试
• Finding bugs by executing input cases to a program and comparing the outputs with some reference system.
The characteristic of a technique:
• Sound: An analysis of a program P with respect to a property p is sound if the analysis returns true only when the program does satisfy this property.
• Complete: An analysis of a program P with respect to a property p is complete if the analysis always returns true when the program actually does satisfy the property
• Static: An analysis is static if it can infer the properties without running the program.
• Dynamic: An analysis is dynamic if it can infer the properties by running the program.
软件测试 的基本活动:Testing can be broken up into four general types of activities
1. Test Design
2. Test Automation
3. Test Execution
4. Test Evaluation
理解软件测试技术的四个维度:
Problems 问题
• Fundamental problems: test adequacy, test oracle, test generation
• Other important problems: test automation, test selection...
Methods 方法
• Exploratory testing, black box testing, white box testing, model-based testing
1Exploratory method (探索性测试方法)
• Explore the software while designing and executing tests
simultaneously.
2 Black box method(黑盒测试方法)
• Treat the program as a black box, ignoring its internal structure.
3 White box method (白盒测试方法)
• Logical analysis of code element (e.g. basic block, branch, path ...).
4 Model-based method(基于模型的测试方法)
• Based on a formal model of the software.
Objectives 目标
• Functional testing (unit testing, integration testing, system testing), Performance testing, Validation testing (alpha testing, beta testing), Performance testing (stress testing, load testing), Reliability testing,Regression testing, Security testing, Compatibility
testing, ...
Domains 领域
• Unit testing, integration testing, system testing, acceptance testing
1Operation system
• Kernel, device driver
2 Database application
• SQL table, transaction processing, ACID
3 Web application
• Javascript, Ajax, HTML5
4 Multi-threaded application
• Data race, atomicity, transactional memory, asychronized tasks
5 Cloud application
• Map-reduce, distributed computing
6 Mobile application
• Android, touch-screen, sensors…
软件测试流程:
软件测试层次:概念、技巧、工具
软件测试构成:问题、方法、目标、领域
软件质量图:
软件质量的指标:
1Functionality: Give the user what they want in a correct way, and nothing more
合适、正确、遵从标准、安全
2Usability: Minimize the effort needed for use of the software
易理解、易学习、易操作、人性化
3Reliability:The probability of failure free operation of a computer program in a specified environment for a specified time.
• MTTF: mean time to failure
可用 、能容错、可恢复、健壮
4Maintainability:The ease of maintaining the software and The capability of the software to be modified.
应变能力、稳定能力、测试能力
5Portability: The capability of software to be transferred from one environment to another.
适应、易安装、共存性(能与其他软件共用资源)、一致性、可迭代
软件开发“铁三角”定律:
正确理解软件质量中的三个概念:Failure(事件结果)、Fault(设计缺陷、逻辑漏洞)、Error(认识、判断错误)
bug的来源:
1客户 需求不清晰
2需求工程师 与客户沟通存在问题,理解不一致
3设计师 系统设计漏洞
4编程人员
4质量管控团队
5操作人员
6使用编写人员 操作手册编写错误
Fault类别:
功能、算法、接口、检车、分配
软件测试的困难:
1系统复杂
2遵从标准
3系统多变
Quality Assurance: 质量保证:改正错误
• A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives.
Quality Control: 质量管控 评估错误
• A set of activities designed to evaluate a developed work product.
Differences:
• QA focus on the process elements of a project. QC activities focus on finding defects in specific deliverables.
• QA makes sure you are doing the right things, the right way, QC makes sure the results of what you've done are what you expected.
Validation:验证 :系统是否符合用户需求?
does the software system meets the user's real needs? are we building the right software?
Verification:校验 系统实现是否符合设计方案?
does the software system meets the requirements specifications? are we building the software right?
Software Verification Techniques
Inspection 检查
• A constructive review of the artifacts, typically the code (code review)
Model checking 模型检查
• Proving that the programs in question to be absolutely correct with respect to some formal properties on any input
Program analysis 程序分析
• Identifying certain problematic code patterns that are known to be bug-prone.
Testing 测试
• Finding bugs by executing input cases to a program and comparing the outputs with some reference system.
The characteristic of a technique:
• Sound: An analysis of a program P with respect to a property p is sound if the analysis returns true only when the program does satisfy this property.
• Complete: An analysis of a program P with respect to a property p is complete if the analysis always returns true when the program actually does satisfy the property
• Static: An analysis is static if it can infer the properties without running the program.
• Dynamic: An analysis is dynamic if it can infer the properties by running the program.
软件测试 的基本活动:Testing can be broken up into four general types of activities
1. Test Design
2. Test Automation
3. Test Execution
4. Test Evaluation
理解软件测试技术的四个维度:
Problems 问题
• Fundamental problems: test adequacy, test oracle, test generation
• Other important problems: test automation, test selection...
Methods 方法
• Exploratory testing, black box testing, white box testing, model-based testing
1Exploratory method (探索性测试方法)
• Explore the software while designing and executing tests
simultaneously.
2 Black box method(黑盒测试方法)
• Treat the program as a black box, ignoring its internal structure.
3 White box method (白盒测试方法)
• Logical analysis of code element (e.g. basic block, branch, path ...).
4 Model-based method(基于模型的测试方法)
• Based on a formal model of the software.
Objectives 目标
• Functional testing (unit testing, integration testing, system testing), Performance testing, Validation testing (alpha testing, beta testing), Performance testing (stress testing, load testing), Reliability testing,Regression testing, Security testing, Compatibility
testing, ...
Domains 领域
• Unit testing, integration testing, system testing, acceptance testing
1Operation system
• Kernel, device driver
2 Database application
• SQL table, transaction processing, ACID
3 Web application
• Javascript, Ajax, HTML5
4 Multi-threaded application
• Data race, atomicity, transactional memory, asychronized tasks
5 Cloud application
• Map-reduce, distributed computing
6 Mobile application
• Android, touch-screen, sensors…
软件测试流程:
相关文章推荐
- 北航课程 软件测试工具与实践1: 课程概述
- 软件测试概述
- 软件测试概述
- 【软件测试】网络应用篇:第一章 网络应用概述
- 【软件测试】网络应用篇:第一章 网络应用概述
- M$的测试计划概述-第 4 章 — 软件和硬件配置
- (2012) 北航课程 软件测试工具与实践2: 软件测试工具概述1
- 利用压力测试来保证软件的质量(一) 概述
- 软件测试系列(3)—软件测试体系框架概述
- 自动化软件测试概述
- M$的测试计划概述-第 4 章 — 软件和硬件配置
- 北航 研究生 课程 软件测试工具与实践: 测试工具概述[2004-2007]
- 北航 研究生 课程 软件测试工具与实践: 课程概述[2004-2007]
- 软件测试工具分类概述
- 软件测试概述
- [原创]软件测试管理之“测试角色和职能”概述
- 软件测试概述
- M$的测试计划概述-第 4 章 — 软件和硬件配置
- 【软件测试】操作系统篇:第一章 计算机操作系统概述
- (2012) 北航课程 软件测试工具与实践1: 课程概述