您的位置:首页 > 其它

软件测试 概述

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…

软件测试流程:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试