软件系统概要设计说明书-系统概要设计图
第一部分:(软件)测试概念类
1、软件质量
软件质量是“软件满足规定或潜在用户需求特性的总和”。
反映出如下3方面的问题:
1)软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。
2)软件人员必须遵循软件过程规范,用工程化的方法来开发软件。
3)满足一些没有明确规定的隐含需求。
2、什么是软件测试
软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行查错的活动。简单地说,软件测试是为了发现错误而执行程序的过程。
软件测试是软件质量保证(QA)的一个重要环节。
3、测试目的
从用户角度出发,通过软件测试暴露软件中潜在的错误和缺陷。
4、测试中应该注意的原则
1)有合法的数据输入,同样有非法的数据输入
2)在对程序修改之后应该进行回归测试
3)应充分注意测试中的集群现象(发现的问题越多,未发现的问题也越多)
4)妥善保留测试计划、测试用例和相关的测试报告
5)对测试结果做全面检查,避免遗漏
6)严格执行测试计划,排除测试的随意性
5、软件测试对象
软件测试贯穿于整个软件生命周期中,不同阶段测试的对象和方法不同。
主要包括可执行研究报告、项目实施计划、软件需求说明书或系统功能说明书。开发阶段的概要设计说明书、详细设计说明书以及源程序。
单元测试--集成测试--确认测试--系统测试--验收测试
软件验证(Verfication):保证软件正确实现特定功能的一系列活动和过程。其目的是保证软件在其生命周期每一个阶段的成果都满足上一阶段设定的目标。
软件确认(Validation):保证软件满足用户需求的一系列活动过程。其目的是在软件开发完后保证软件与用户的需求相吻合。
6、软件测试V模型
7、简述软件测试过程的关键活动,以及保证软件测试质量的手段。
1)关键活动
a.测试需求分析
b.制定测试计划
c.测试设计
d.测试执行
e.测试分析与总结
2)质量保证手段
a.制定质量保证计划、质量体系建立
b.测试活动审核、测试文档评审
c.测试过程中数据收集、度量和分析
7、软件测试类型
1)按开发阶段划分:单元测试(模块测试)、集成测试、确认测试(系统测试)、验收测试
单元测试内容:模块接口、局部数据结构、重要的执行路径、错误处理、边界测试
单元测试步骤:
a、按照下图配置测试环境,设计辅助测试模块
b、编写测试数据
c、进行多个单元的并行测试
集成测试:渐进式和非渐进式
确认测试:确认测试标准、配置复审
系统测试:恢复测试、安全性测试、强度测试、性能测试
2)按照实施组织划分:开发方测试、用户测试、第三方测试
3)按照测试方式划分:静态测试、动态测试
4)按照测试技术划分:白盒测试、黑盒测试(功能测试)、灰盒测试
8、软件问题的概念与分类
1)软件错误:软件生命周期内不希望或者不可接受的认为错误,其结果将导致软件缺陷的产生;
2)软件缺陷:存在于软件中的那些不希望或者不可接受的偏差软件系统概要设计说明书,其结果是软件运行到某个阶段时出现软件故障。
软件缺陷分类:
a、软件未达到产品说明书标明的功能;
b、软件出现了产品说明书中指明不会出现的错误;
c、软件功能超出了产品说明书指定的范围;
d、软件未达到产品说明书未指出但应达到的目标;
e、软件测试人员认为软件难以理解、不易使用、运行速度慢或最终用户认为不好使用;
3)软件故障:是指在软件运行的过程中出现的一种不希望或不可接受的内部状态;
4)软件失效:是指在软件运行的过程中出现的一种不希望或不可接受的外部行为结果;
软件失效机理:软件错误是一种认为的错误,一个错误必定会产生一个或多个缺陷。当一个软件缺陷被激活时,并产生一个软件故障。同一个软件缺陷在不同的条件下激活,可能会产生不同的软件故障。软件故障没有及时地使用容错措施加以处理,便可导致软件失效。同一故障在不同的条件下可能产生不同的软件失效。
产生软件错误、缺陷的原因:实践表明,大多数软件缺陷产生的原因并非源自编程的错误,主要来自于产品说明书的编写和产品方案的设计。罪魁祸首是产品说明书,编写不全面、不准确或者经常更改及其开发人员对说明书的理解沟通不足导致。第二罪源是设计方案,也就是软件设计说明书。
9、白盒测试
1)白盒测试也被称为逻辑驱动测试。
2)白盒测试技术
a、控制流程图:一般只有两种简单的符号--节点和控制流
控制流程图中的独立路径数:N=e-n+2, e代表边的数量,n代表节点数量
(包括起始点和终点)
b、代码覆盖率分析(最常用的基本技术)
10、白盒测试之代码覆盖率分析
1)逻辑覆盖:主要针对程序中由于判定条件所产生的逻辑分支结构进行测试。
逻辑覆盖度量标准有5种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖
(1个判定由1个或多个条件组成)
语句覆盖:每个语句至少被执行1次
判定覆盖:每个分支至少通过1次(每个判定获得一次真值和假值)
条件覆盖:每个判定中每个条件至少取得一次真值和假值
判定/条件覆盖:综合利用两者的优势,使得条件和判定的真假都至少出现一次
条件组合:组合判定中的各种条件,使得每种条件至少被执行1次;
2)路径覆盖
程序每一条可能被执行的路径都需执行一次;
11、计算Case数量最少的方法:
N=并联相加*串连
12、白盒测试的方法
1)代码检查法
2)静态结构分析法
3)代码质量度量法(逻辑覆盖归于此类)
12、黑盒测试定义
黑盒测试是一种功能测试,也称为数据驱动测试。一般是为了发现以下几类错误:
1)是否有不正确或者遗漏的功能;
2)输入是否可正确接受?能否输出正确的结果?
3)是否有数据结构错误或外部信息访问错误?
4)性能上是否能够满足要求?
5)是否有初始化或终止性错误?
根据需求说明书的功能规定来设计测试用例软件系统概要设计说明书,只考虑程序外部结构,不考虑内部逻辑结构,针对软件界面和软件功能进行测试。
13、黑盒测试方法
1)等价类划分法:有效等价类和无效等价类
2)边界值分析法:等于边界或稍微超出
3)错误猜测法:凭经验猜测
4)因果图法
特点:
a、考虑输入条件间的组合关系
b、考虑输出条件对输入条件的信赖关系,即因果关系
c、测试用例发现错误的效率高
d、能检查出功能说明中的某些不一致或者遗漏
基本步骤如下:
a、分割功能说明书
b、识别“原因”和“结果”,并加以编号
c、根据功能说明中规定的原因和结果之间的关系画出因果图
d、根据功能说明在因果图中加上约束符号
e、根据因果图画出判定表
因果图基本符号:
因果图约束条件:
因果图:
判定表:
5)判定表驱动法
判定表通常由4个部分组成:
a、条件桩:列出了问题的所有条件,条件的次数无关紧要;
b、动作桩:列出了问题规定可能采取的操作。这些操作顺序是没有约束的;
c、条件项:列出针对它左列条件的取值,在所有可能情况下的真假值;
d、动作项:列出在条件项的各种取值情况下应采取的动作。
6)正交实验法
正交试验设计法:全面试验法、多次单因子试验法
a、列出因子与水平关系表
b、全面试验法
所以因子和水平进行组合试验,总共的试验次数为:n=tc(t为水平、c为因子)
c、多次单因子实验法
只改变其中一个因子,其他因子固定不变,得出每个因子最佳的水平组合。
(这个实验法前提是每个因子是独立的)
总共的试验次数为:n=c*(t-1)+1 (t为水平、c为因子)
也可以表示为:Ln(tc)
7)功能图法
动态说明和静态说明
8)场景法
站在用户的角度模拟触发场景
14、缺陷严重度定义
15、CMMI级别定义
CMMI全称是Capability Maturity Model Integration, 即软件能力成熟度模型集成。
CMMI的5个级别(低至高):初始级、可管理级、已定义级、量化管理级、优化管理级。
每个等级分解为:过程域、特殊目标、特殊实践、通用目标、通用目标和通用实践和共同特性。
能力度等级:不完整级、已执行级、已管理级、已定义级、量化管理级、最优化级。
评估方式:自我评估和主任评估
评估方法:SCAMPI
评估类型:组织具体和整体的软件能力评估
基本思想:
1)解决软件项目过程改进难度增大问题
2)实现软件工程的并行与多科学组合
3)实现过程改进的最佳效益