软件測试相关简要记录
软件測试
编码和測试统称为实现。
通常在编写出每一个模块之后就对程序做必要的測试,这叫做单元測试。
模板的编写者和測试者是同一个人。
之后会进行其它综合測试。由专门的測试人员承担这份工作。也就是软件測试project师。
软件測试的工作量往往占软件开发总工作量的40%以上。
编码
对于编码有例如以下要求:
1)程序内部的文档
2)数据说明
3)语句构造
4)输入输出
5)效率:程序执行时间、存储器效率、输入输出的效率
软件測试基础
一、软件測试的目标
1)測试是为了发现程序中的错误而执行程序的过程
2)好的測试方案极可能发现迄今为止尚未发现的错误的測试方案
3)成功的測试是发现了至今为止尚未发现的错误的測试
注:測试仅仅能查找出程序中的错误。而不能证明測试中没有错误。
二、软件測试准则
1)全部的測试都应该能追溯到用户需求
2)应该远在測试開始之前就制定出測试计划
3)把Pareto原理(測试发现的错误中的80%非常可能是程序中20%的模块造成的)应用到软件測试中
4)应该从“小规模”測试開始,并逐步进行“大规模”測试
5)穷举測试是不可能的
6)应该由第三方从事測试工作
三、測试方法
白盒測试和黑盒測试。先进行白盒測试。后进行黑盒測试。(随后会有补充)
四、測试步骤
1)模块測试(又被称为单元測试)
2)子系统測试(将经过单元測试的模块放到一起形成一个子系统)
3)系统測试(将经过測试的子系统装配成一个完整的系统来測试)
4)验收測试(将软件系统作为一个单一的总体。它是用户积极參与下进行的,验收測试也被称为确认測试)
5)平行执行(将新旧系统同一时候执行进行比較,目的是:1。能够在准生产环节中执行新系统而不冒风险。2。用户能有一个熟悉新系统的过程。3,能够验证用户指南和使用手冊之类的文档;4,能够以准生产模式对新系统进行全负荷測试。能够用測试结果验证性能指标)
五、測试阶段的信息流
输入的信息由两大类:
1)软件配置,包含需求说明书、设计说明书和源程序说明书清单等
2)測试配置,包含測试计划和測试方案,所谓測试方案不仅仅是測试时使用的输入数据(称为測试用例),还应该包含每组输入数据预定要检验的功能,以及每组数据预期应该取得的正确输出
(測试配置是软件配置的一个子集。也就是说终于交出的软件配置应该包含測试配置和測试的实际结果和測试的记录)
单元測试
一、測试重点
1)模块接口
包含:參数的数目、次序、属性或单位系统与变元是否一致;是否改动了仅仅作输入用的变元;全局变量的定义和使用方法在各个模块中是否一致
2)局部数据结构
常有局部数据说明、初始化、默认值等方面的错误
3)重要的执行通路
4)出错处理通路
错误常在:1 对错误的描写叙述是难以理解的;2 记下的错误与实际遇到的错误不同;3 在对错误进行处理之前,错误条件已经引起系统干预。4 对错误的处理不对;5 描写叙述错误的信息不足以帮助确定造成错误的位置
5)边界条件
二、代码审查
三、计算机測试
为每一个单元測试开发驱动软件和(或)存根软件
集成測试
一、自顶向下集成
二、自底向上集成
三、在软件结构的较上层使用自顶向下方法与软件结构中较下层使用的自底向上方法相结合。
四、回归測试
确认測试
确认測试也称为验收測试,它的目的是验证软件的有效性。
验证(verification)是指保证软件正确的实现了某个特定要求的一系列活动。
确认(validation)是指保证软件确实满足了用户需求进行的一系列活动。
软件有效性的定义:假设软件的功能和性能如同用户所合理期待的那样。软件就是有效的。
一、软件測试的两种可能结果:
1)功能和性能与用户要求一致,软件是能够接受的。
2)功能和性能与用户要求有差距。
二、软件配置复查
三、Alpha和Beta測试
Alpha測试由用户在开发人员的场所进行,而且在开发人员对用户的“指导”下进行測试。
开发人员负责记录发现的错误和使用中遇到的问题。
也就是说Alpha測试是在受控的环境中进行的。
Beta測试由软件的终于用户在一个或多个客户场所进行。开发人员通常不在场。也就是说是不受控的环境。用户记录在Beta測试中遇到的一切问题(真实的或想象的)。并定期将这些报告给开发人员。
也就是说。作为计算机/软件的用户而言,我们寻常接触最多的Beta版的软件,而Alpha版的软件除了自己开发/測试的基本不会遇到。
白盒測试技术
一、逻辑覆盖
1)语句覆盖
2)判定覆盖
3)条件覆盖
4)判定/条件覆盖
5)条件组合覆盖
6)点覆盖
7)边覆盖
8)路径覆盖
二、控制结构測试
1)基本路径測试
主要是:1 依据过程设计结果画出对应的流图。2 计算流图的环形复杂度。环形复杂度定量度量程序的逻辑复杂性;3 确定线性独立的基本集合;4 设计可强制执行基本集合中每条路径的測试用例
环形复杂度计算方式:V(G)=P+1,P是流图中判定(if等)结点的数目。
2)条件測试
3)循环測试
主要包含:简单循环,嵌套循环。串接循环(也就是两个循环并列。而非包含关系,包含关系时为嵌套循环)
黑盒測试
一、黑盒測试力图解决的问题:
1)功能不对或遗漏了功能
2)界面错误
3)数据结构错误或外部数据库訪问错误
4)性能错误
5)初始化和终止错误
二、设计黑盒測试时应考虑的问题:
1)如何測试功能的有效性?
2)哪些类型的输入可构成好測试用例?
3)系统是否对特定的输入值特别敏感?
4)如何划定数据类的边界?
5)系统能够承受什么样的数据率和数据量?
6)数据的特定组合将对系统执行产生什么样影响?
三、等价划分
将输入域划分成若干个数据类,据此导出測试用例。
四、边界值复习
五、错误猜測
调试
一、调试途径
1)蛮干法
2)回溯法
3)原因排除法
软件可靠性
软件可靠性是程序在给定的时间间隔内,依照规格说明书的规定成功地执行的概率
错误的含义是开发人员造成的软件差错(Bug)
故障的含义是由错误引起的软件的不对行为
一、估算平均无故障时间的方法
1)符号
2)预计错误总数
植入错误发和分别測试法