发表于: 2018-06-28 23:07:38

1 860


今天完成的事情:

1今天整理了任务2的一些知识点,并提交了任务2.

任务1只是大概过了下黑盒白盒测试的一些基础概念 

任务二就是将这些黑盒测试和白盒测试分别详细的讲解其测试原理和方法。

黑盒测试: 在完全不考虑内部结构和内部特性的情况下 通过相关暴露的接口,来对程序进行测试。 

白盒测试 (结构化测试 透明盒测试):针对逻辑的程序结构来设计测试用例 用逻辑的覆盖率来衡量测试的完整性。逻辑的主要单位 

黑盒测试主要测试什么。

1是否有不正确或是遗漏的功能?

2在接口上,输入是否能正确的接受?能否输出正确的结果?

3是否有数据结构错误或外部信息(例如数据文件)访问错误?

4 性能上是否能满足要求?

白盒测试主要测试什么。

语句 条件 条件组合 分支 路径

语句覆盖 测试用例设计出来执行以后 会保证程序每条语句至少执行一次。

判定覆盖 每个分支执行一次。

条件覆盖 覆盖到每个表达式 表达式至少计算一次。

条件组合覆盖 覆盖所有各种不同条件的组合情况。

路径覆盖 指程序当中每一种可能的路径至少执行一次。 

分支是路径的一部分

从黑盒测试和白盒测试的优缺点来讲

黑盒测试的优缺点。

优点

1 容易实施,不需要关注内部的实现。

2 更贴近用户的使用角度。

缺点

1 测试覆盖率较低,一般只能覆盖到代码的量的不到40%。

2 针对黑盒的自动化测试,复用率较低,维护成本较高。

白盒测试的优缺点。

优点 

1 迫使测试人员去自习思考软件的实现,理解原理 

2 可以检测代码中每条分支和路径。

3 揭示隐藏在代码中的错误

4 对代码的测试比较彻底

  

缺点 

1 昂贵。(要做到较高的覆盖率,工作量很大)

2 无法检测代码中遗漏的路径和数据敏感性错误。(少写的代码)

3 不能直接验证需求的正确性(只能验证代码的正确性)

从测试软件的手段来讲

黑盒测试 是动态测试 手工测试 

白盒测试 不仅包含静态测试也包含动态测试  自动化测试。

静态测试 

定义:

静态测试是指无需执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序不足之处,减少错误出现的概率

动态测试

定义 

动态测试是指通过运行被测程序,检查运行结果于预期结果的差异,并分析运行效率,正确性和健壮性。

手工测试 

由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。

自动化测试。

适用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查

黑盒测试的主要设计方法

等价类划分法 

吧所有的输入等价的规成一类 这样最后会形成典型的代表性的输入,对典型的数据进行测试用例的设计。

边界值分析法 

特殊的等价类划分 

关注各种各样的边界条件(比最大的值大一点比最小的值小一点。)

错误推测法 

基于经验或直觉 来判断程序中出现错误的地方 ,界面输入的时候特殊字符的处理,文件不存在 文件超大。

因果图法 

是指拿到程序的需求规格说明书 针对每种输入和输出 他会把输入和输出 看成是原因和结果。对输入和输出赋予特定的标识符然后将这些形成一个叫因果图 最终根据一个语义的一个说明,形成一个语义的判定表 根据判定表来编写测试用例。

正交实验分析法 

通过正交性 从一组数据当中 筛选出典型的 代表性的设计方法 这种设计方法主要是筛选输入数据 然后设计测试用例的输入和输出。

状态迁移图法 

通过处理软件功能点 状态迁移关系 来设计测试用例 

流程分析法 通过梳理逻辑执行路径 来设计测试用例。.

白盒测试的主要测试的方法

代码检测法 

主要包括多面检查 代码审查 代码走查 主要检查 代码和设计的一致性 对代码本身进行检查。

静态结构分析法 

测试者通过使用测试工具的来分析 源代码的系统结构数据结构 内部的控制逻辑 通过内部结构的分析来设计测试用例。  

静态质量度量法 

根据标准的质量模型作为基础

逻辑覆盖法 

语句覆盖 条件覆盖 条件组合覆盖 分支覆盖(判定覆盖) 路径覆盖 条件判定组合覆盖 

基本路径测试法(主要)

通过分析控制构造的圈复杂度 到处基本可执行路径的集合 进而设计测试用例的方法。

动态测试也分为单元测试、集成测试、确认测试、系统测试、验收测试、

单元测试 :对软件中的最小可测试单元进行检查和验证。(人为定义的一个最小的可测试模快)

单元测试的原则

1.尽可能保证各个测试用例是相互独立的。

2.一般由代码的开发人员来实施的,用以检验所开发的代码功能符合自己的设计要求

单元测试的益处

1.能尽早发现缺陷。

2.有利于重构。

3.简化集成。

4.文档。

5.用于设计。(可以验证设计)

单元测试的限制。

1不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。

2.每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。

单元测试框架

xunit

junit nunit phpunit cppunit

集成测试 

定义

是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模快,子系统获系统的过程中规格部分工作是否达到或实现相应技术指标及要求的活动。

1. big bang (一次性集成。把所有的模快都组装好然后一起测试。)

2.自顶向下。(沿控制层逐层向下来集成,逐层来测试,覆盖到所有模快。)

3.自低向上。(程序模快的最低曾逐层向上组装,逐层的测试。优点,能较好的锁定软件缺陷的所在地。)

4.核心系统集成。(把核心的模快部分挑选出来并对这些部件进行测试,在逐步向外围测试。)

5.高频集成。()

集成测试和单元测试。

1测试对象不同。

2测试的依据不同。

3测试方法不同。

确认测试

确认测试又称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。

测试内容安装测试

功能测试

可靠性测试

安全性测试

时间及空间性能测试

易用性测试

可移植性测试

可维护性测试

文档测试

方法:通过集成测试之后,软件已完全组装起来,接口方面的错误也已排除,确认测试即可开始。确认测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。

1. 确认测试标准

实现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无论是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意。

确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。

2. 配置复审

确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序,并且包括软件维护所必须的细节。

系统测试 

定义 

是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,一发现软件潜在的问题,保证系统的正常运行。

关注点

关注系统本身的使用

关注系统与其他相关系统间的联通

关注系统在不同使用压力下的表现。

关注系统在真实使用环境下的表现。

系统测试和集成测试。

测试对象

集成测试:由通过了单元测试的各个模块所集成起来的构件。

系统测试:除了软件之外,还包括计算机硬件及相关的外围设备,数据采集和传输机构,支持软件,系统操作人员等 整个系统

测试时间

集成测试介于单元测试和系统测试之间测试。

而系统测试在集成测试之后。

测试内容

集成测试:各个单元模快之间的接口。

系统测试:整个系统的功能和性能

测试角度

集成测试:偏于奇数角度的验证。

系统测试:偏于业务角度的验证。

验收测试 

定义 

  也称交付测试。针对用户需求,业务流程的正式的测试,确定系统是否满足验收标准,由用户,客户或者其他授权机构决定是否接受系统。

细分

用户验收测试。

运行验收测试。

合同和规范验收测试。 

然后就是兼容性测试

兼容性测试 

软件本身的兼容性 

主要是指软件向后兼容 新开发软件的版本需要对历史版本的功能和配置相应的数据兼容 不能因为版本升级导致很多以前的功能或者历史数据不能使用 

不同平台下的兼容性 

字面意思。在不同承载的平台的兼容性。

软件对运行设备的兼容性 

软件运行在不同的设备上可能对软件的运行结果产生差异 这个时候就要进行设备兼容性测试 例如32 64 位系统 电脑手机  电视盒子。

软件互操作性 

同一个厂商有不同的软件 这些不同的软件会功能的交互 要考虑到相互的影响和 交互的时候功能是否正常  例如手机运用要和主流的应用进行兼容性测试例如 微信 qq。

web兼容性的问题

浏览器的兼容  

不同厂商的浏览器 导致web应用 可能在不同的浏览器上有区别。

例如ie6-8 9,10  浏览器内核为trident4-6  不同的版本 内核不一样的。

fire fox 内核为gecko 

safari chrome 内核为webkit 

opear 内核为presto。

不同的内核导致兼容性的差异 需要重点测试的。

浏览器兼容性测试工具

browsershots通过不同页下的截图对比差异  browsersandbox 不同的插件来实现浏览器模拟测试。

google 浏览器测试插件 www. w3help.org 

根据代码来判断兼容性。

同时也要根据不同的客户端进行兼容性测试

如不同版本的手机(Android and ios) 电脑(Windows and Mac)

测试其分辨率 不同设备之间运行有什么差异 网络状态 手机内存 and 电脑内存。


明天的计划:

1开始任务三的编写测试点。、

2查一写测试点编写的范围。


遇到的问题:

今天看了一下慕课网python测试接口的教程,目前只看到了get请求,代码竟然奇迹般看的懂一些。但是慕课网的接口测试都是测得登录的接口,我们平时测接口也是测登录的接口吗?


收获:

1对黑盒测试和白盒测试整体有了一个跟细分了了解

2接触了一些python的学习。








返回列表 返回列表
评论

    分享到