第一章    测试基础
软件测试的定义:
使用人工和自动的手段来运行或测试某个系统的过程。其目的是检验它是否满足规定的需求弄清预期结果与实际结果间的差别scalar conservation law
软件测试的目的:
证明    检测 预防
证明:
1) 获取系统在可接受风险范围内可用的信心
2) 尝试在非正常情况和条件下的功能和特性
3) 保证一个工作产品是完整的且可用或可被集成的
检测:
1) 发现缺陷,错误和系统不足房地产系统
2) 定义系统能力和局限性
3) 提供组件、工作产品和系统的质量信息
预防:
1) 通过将测试活动提前介入到软件生命周期中,尽早的发现并消除前期研发阶段引入的缺陷,以防止前期缺陷遗留并放大到后续环节
matlab软件中文教程2) 通过对发现的缺陷进行分析,出导致这些缺陷产生的流程上的不足,通过改进流程,预防同类缺陷再次产生
软件生命周期:
计划->需求分析->概要设计->详细设计->编码->测试->运行维护
1) 计划:
SDP (软件研发计划)            UTP(单元测试计划)
SVVP(软件验证与确认计划)    ITP (集成测试计划)
                            STP (系统测试计划)
2) 需求分析:
python基础知识测试SRS(软件需求规格说明)
根据研发类型,需求来源,则用户针对的具体对象分为两种:针对产品的与针对项目的
3) 设计:
HLD(High Level Design概要设计)
LLD(Low Level Design 详细设计)
4) 编码:
写成以某个程序设计语言表示的源程序清单,使用RDBMS(Relational Database Management System 关系型数据库管理系统)工具建立数据库。
5) 测试:
检验软件是否符合客户需求,达到质量要求。
按测试阶段分  单元测试(UT
              集成测试(IT
              系统测试(ST——最先介入,最晚结束
6) 运行维护:
将软件交付用户投入正式使用,以后便进入维护阶段,可能有多种原因需要对其进行修改,如软件错误、系统软件升级、增强软件功能、提高性能等。
软件研发的相关要素:
人员  过程  工具
1) 人员组成
分析人员
linux网络编程进行两终端通信设计人员
开发人员
测试人员
配置管理人员(CMO,SCM
SQA
2) 组架构
                 
软件研发流程:
常见的软件研发流程:瀑布模型,螺旋模型,RUP流程,IPD流程
软件缺陷和BUG(包括错误和不足):
缺陷的引入是随时的,不确定的
缺陷可以归结为三类:遗漏、错误、额外的实现
附录:
1) SDP: Software Develop Plan软件研发计划
2) SVVP: Software Verification and Validation Plan软件验证与生效计划
 
第二章 测试过程
划分为三阶段
单元测试(Unit Testing
集成测试(Integration Testing
系统测试(System Testing
*确认测试(Validation Testing           
a) UT:针对软件基本组成单元
目的:检验软件模块对《详细设计说明书》的符合程度。
UT  面向过程:函数
面向对象:类  属性
              方法
b) IT:针对组装后功能及模块间接口是否正确
目的:检验软件模块对《概要设计说明书》的符合程度。
c) ST:针对硬件、外设、某些支持软件、数据和人员等
目的:检验对《软件需求规格说明书》的符合程度。
d) VT:纯系统测试,介于ITST之间
若该软件包括硬件外设等,则VT相当于IT
若该软件为纯系统软件,则VT相当于ST
UT,IT,ST的比较
UT
IT
ST
测试方法
白盒(某些情况下也可用黑盒测试)
灰盒
黑盒(某些情况下也可用白盒测试)
考察范围
数据结构、逻辑控制、异常处理
模块间接口组合后的功能
系统相对于需求的符合程度
评估标准
逻辑覆盖率
方法:
TDD(测试驱动开发)
接口覆盖率
方法:
1.每个接口被覆盖的程度
2.每个接口的等价类、边界值被覆盖的程度
测试用例对需求项的覆盖程度
方法:
1. 等价类两两组合
2. 边界值分析
3. 业务流程法
4. 状态迁移法
5. 错误猜测法
6. 输出域覆盖
条纹边框素材
回归测试(Regression Testing)