软件测试理论知识点
第一天
1、按是否查看程序内部结构分为:
(1)黑盒测试(black-box testing):只关心输入和输出的结果
(2)白盒测试(white-box testing):去研究里面的源代码和程序结构
2、按是否运行程序分为:
(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
3、按阶段划分:
(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:
1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing)
界面测试(UI testing)UI=User Interface
易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(performance testing)
软件的性能主要有时间性能和空间性能两种
时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:
一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)
5、其他测试类型:
回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。(means or all the test data is random, to validate the some edge bugs.)
1、测试三大方法
1、黑盒测试:主要是针对代码展现出的功能进行测试
(1) 等价类划分法(常用)
(2) 边界值分析法(常用)
(3) 决策表法
(4) 因果图法
(5) 场景法(常用)
(6) 正交试验法
(7) 错误推测法
2、白盒测试:代码逻辑测试
(1) 逻辑覆盖法
(2) 基本路径法
(3) 程序插装
3、灰盒测试:
介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
第二天
1、测试用例内容
(1) 测试编号,所属模块,标题,优先级,测试环境,前提条件,输入数据,操作步骤,预期结果,测试时间,测试版本,测试人员,实际结果,测试结果,备注
2、测试用例的作用
(1) 作为执行测试的指导
① 指导测试的实施
② 规划测试数据的准备
③ 编写测试脚本的"设计规格说明书"
④ 评估测试结果的度量基准
⑤ 分析缺陷的标准
3、编写用例所需资料
(1) 需求说明书(需求人员编写)
(2) 设计说明书(开发人员编写)
(3) 原型图(产品经理编写)
4、测试流程
(1) 需求分析
(2) 测试计划编写
(3) 测试用例设计
(4) 编写测试用例
(5) 测试用例评审
(6) 修改完善测试用例
(7) 搭建测试环境
(8) 执行测试,提交bug
(9) 回归测试
(10) 编写测试报告
5、等价类划分的基本概念:
等价类划分属于典型的黑盒测试方法,根据程序对数据的需求,把程序的输入域划分成若干个小部分,区分出那些数据是有效的那些是无效的,从每个部分中选取少数代表性数据作为测试用例。
①有效等价类:合理地输入数据集合,如果用户输入有效等价类中的数据,程序应该正确计算和执行,无效等价类者反之。
6、边界值的设计方法
边界值方法产生的测试效果和等价值方法相同,只是边界值方法选择测试数据时更有针对性。其构造测试数据时需要考虑3点:①上点:输入域边界上的点 ②离点 ③内点:输入域范围内的任意一点
8、单元测试
单元测试是在软件开发过程中要进行的最低级别的测试活动,针对软件设计的最小单元——模块。
目标:
①验证代码是与设计相符合的;
②跟踪需求与设计的实现;
③发现设计和需求中存在的缺陷;
④发现在编码过程中引入的错误。
9、集成测试
集成测试时值根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验。
集成测试与系统测试的区别:
①测试对象不同:集成测试对象是由通过了单元测试的各个模块②所集成起来的构件;系统测试对象则除了软件之外,还包括计算机硬件及相关的外设、数据采集和传输机构、支持软件、系统操作人员等整个系统。
③测试时间不同:集成测试先于系统测试。
④测试方法不同:集成测试通常采用白盒和黑盒相结合的测试方法;系统测试通常使用黑盒测试。
⑤测试内容不同:集成测试主要测试各个单元模块之间的接口及各模块及集成后的功能;系统测试主要是测试整合系统的功能和性能。
⑥测试目的不同:集成测试是为了发现单元间接口的错误,以及发现集成的软件同概要设计规格说明不一致的地方;系统测试是为了找出软件与系统定义不符合或矛盾的地方。
⑦测试角度不同:集成测试是站在测试人员的角度上进行的;系统测试是站在用户的角度进行的。
10、集成测试的策略
一次性集成方式:把所有系统构建一次性集成到一起进行测试,不考虑构建之间的相互依赖性或可能存在的风险,其主要目的是在最短的时间内把系统组装起来,使用最少的测试来验证整个系统。
自顶向下的增量式集成方式:从顶层控制开始,采用与设计一样的顺序,将模块按系统结构的层次,沿控制层次自顶向下逐步集成测试,以验证系统的接口稳定性。
自底向上的增量式集成方式:从程序模块结构的最底层模块开始集成和测试,目标是检测整个系统的稳定性。
混合的增量式:对软件结构中较上层使用自顶向下方法,对软件结构中较下层使用自底向上方法。
11、系统测试包括以下:
(1) 功能测试
(2) 兼容性测试
(3) 安全性测试
(4) 易用性测试
(5) 性能测试:包括常见的负载测试、压力测试、数据库容量测试。
(6) 自动化测试
(7) 回归测试
(8) 提交bug
12、阿尔法测试(α)
通常也叫做“验证测试”,主要是指软件开发以后在软件开发环境下测试
13、β测试
在用户的应用环境下进行测试
14、静态测试
静态测试又称为静态分析技术,实际上是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查。其包括以下:
①代码测试 ②界面测试 ③文档测试:主要测试用户手册和需求说明。
15、动态测试
动态测试是指通过人工或是用工具运行程序进行检查,检查实际输出结果和预期结果是否相符合。
16、因果图法
(1) 输入条件
(2) 输出结果
17、使用因果图法设计测试用例的步骤:
(1) 找出所有的输入条件或输入条件的等价类
(2) 明确所有的输出结果
(3) 明确所有输入条件之间的制约关系以及组合关系
(4) 输出同理
(5) 找出所有的组合关系,什么样的输入条件组合会产生那种输出结果
(6) 根据因果图写出判定表
(7) 根据判定表设计测试用例
18、适合使用判定表设计测试用例的条件
(1) 规格说明以判定表的形式给出,或者很容易转换成判定表
(2) 条件的排列顺序不影响执行
19、在冒烟测试时主要采用场景法进行测试。
20、将测试内容按照大纲划分,找出主干、支干分支等,最后细分到功能点形成测试用例。