软件测试考试

软件测试概念:

软件测试的目的:
基于不同的立场,存在着两种完全不同的测试目的
1) 从用户的角度出发,希望通过软件测试暴露软件
中隐藏的错误和缺陷,以考虑是否可接受该产品。
2)从软件开发者的角度出发,希望测试成为表明软
件产品中不存在错误的过程,验证该软件已正确地
实现了用户的要求,确立人们对软件质量的信心。

定义:通过经济、高效的方法,捕捉软件中的错误,从
而达到保证软件内在质量的目的

软件测试对应于开发各个阶段的工作:
项目规划阶段:负责整个测试阶段的监控。
需求分析阶段:确定测试需求分析,制定系统测试
计划。测试需求分析是指分析产品生存周期中测试
所需的资源、配置、各阶段评审通过的标准等。
概要设计和详细设计阶段:制定集成测试计划和单
元测试计划。
程序编写阶段:开发相应的测试代码或测试脚本。
测试阶段:实施测试,并提交相应的测试报告。

常用的软件测试的过程模型:
V模型:
在这里插入图片描述
W:
在这里插入图片描述
在这里插入图片描述

H:在这里插入图片描述

静态测试:

动态测试

黑盒测试

1.目的:
(1)检测是否有遗忘或者错误的功能
(2)在接口上,输入能否正确地接受? 能否输出正确的结果
(3)是否有数据结构错误或外部信息(例如数据文件)的访问错误?

2.方法:
1)等价划分:
使一个测试用例尽可能覆盖多个有效等价类; 一个测试用例只能覆盖一个无效等价类;
2)边值分析:
选用等价类的边缘值作为测试用例
3)错误推测:
4)因果图法:

白盒测试

目的:
(1)对程序模块的所有独立的执行路径至少测试一

(2)对所有的逻辑判定,取“真”与取“假”的两
种情况都至少测试一次;
(3)在循环的边界和运行界限内执行循环体

逻辑覆盖法

在这里插入图片描述

1)语句覆盖
字面意思(走有内容框框的路线)
在这里插入图片描述
2)判定覆盖(走菱形两侧)
在这里插入图片描述
3)条件覆盖(菱形中可能存在^v)
在这里插入图片描述
4)判断/条件覆盖
组合

5)条件组合覆盖
每一个判断里面的小条件,如果是组合的,都需要出现TTTFFFFT的形式,进行编号,直到所有的都被遍历

6)路径覆盖
每一条分支都会执行一次

基本路径法:

主旨:程序中的循环体最多只执行一次
点覆盖
边覆盖:长度<1的边全在里面
边对覆盖:长度<2的边全在里面
主路径覆盖
1)主路径:不会被当做子集包含的路径
蕴含点覆盖,边覆盖,不蕴含边对覆盖

流图的圈复杂度:(三种方法)
V(G)=区域数,边-点+2,判断节点数量+1

基于质量和经验的测试(列举)

1.功能测试
方法:

2.非功能测试(14种只选了8种)
性能测试:检测软件是否符合需求规格说明书上的各项性能指标,并满足性能相关的一些约束和限制条件
压力测试:保证系统不崩溃的前提下,用于评价系统超过所描述的需求或资源限制时的情况
**容量测试:**采用特定手段,检测系统能够承载处理任务的极限值所进行的特定测试
健壮性测试:系统遇到故障后,能否修复故障或者忽略此次故障继续正常运行
**安全性测试:**检查系统对非法入侵的防范能力
兼容性测试:检查软件之间能否正常的交互和共享信息
**恢复性测试:**检查系统的容错能力,当系统出错时,能否在指定的时间内修正错误并重启程序
**可靠性测试:**是给系统一定的业务量,使系统运行一段时间,用来测试系统是否稳定

• 软件缺陷(选择题)
– 缺陷特点、来源
– 基于缺陷分类的测试规则

软件测试过程

分为四个阶段:
单元测试,集成测试,系统测试,验收测试
1)单元测试(模块测试):
以白盒为主
辅助模块:驱动模块和存根模块
测试策略:(桩模块和驱动模块的位置)
1)自顶向下
2)自底向上
3)孤立测试策略:不考虑模块间的关联,为每个模块设计桩模块和驱动模块,每个模块
进行独立的单元测试。
优点:简单,覆盖率高。缺点:多个模块,增加测试成本。

2)集成测试:(组装测试)
在单元测试基础之上,将各个模块组装起来进行的测试,其主要目的:是发现与接口有关的模块之间的问题。

组装方案:

非增量式集成测试:(一次测完)
独立地测试程序的每个模块(单元测试),然
后再把它们组合成一个整体进行测试。

增量式集成测试:(反复衔接测试)
将待测模块与已测模块集合连接起来进行测试
。在这一过程中,不断地把待测模块连接到已
测模块集(或其子集)上,对待测模块进行测试
,直到最后一个模块测试完毕为止。

增量式集成又分为自顶向下集成,自底向上集成以及三明治模式(读在下写在上)
在这里插入图片描述

自顶向下:(s为存根模块)
在这里插入图片描述
自底向上:(主要依赖驱动程序)
在这里插入图片描述
无论是自顶而下增值还是自底而上增值,都还可选择深度优先或者宽度优先增值。

在这里插入图片描述

3)系统测试:(黑盒,此时已经不需要关注底层代码)
系统一词

系统测试的目标:不是要找出软件故障,而是要证明系统的性能。但是也需要进行功能测试

系统开发人员和系统开发组织不能进行系统测试。由独立的测试机构完成

(开发机构最关心的1是让系统测试能够按时圆满的完成,并不是想说明系统测试与其目标是否一致。)

内容:
包含哪些因素:

4)验收测试:(有效性测试,确认测试,功能测试)
软件有效性标准:需求规格说明书
α测试:
由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。
β测试:
在开发者不能控制的环境中的“真实”应用:由
软件的最终用户们在一个或多个客户场所进行。
γ测试:
此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行。

5)回归测试:
是一种可以用于单元测试、集成测试、系统测试和验收测试各个测试过程的测试技术。

使用情况:
软件增加了新的功能
软件中的缺陷被修正
软件系统运行环境发生改变
发生了一个特殊的外部事件

自动化测试

自动化测试定义:把以人为驱动的测试行为转化为机器执行的一种过程。

自动化测试前提:
1)所有测试实现自动化是不现实的,百分之30-40就足够了
2)产品本身有较强的可维护性
3)软件的需求变动不频繁,即存在稳定模块和非稳定模块,需要对稳定模块使用自动化测试,非稳定模块采用人工测试
4)项目的周期要足够长,且本身并非紧迫的大项目

相比于手工测试的优点:
1)能执行更多、更频繁的测试,使某些测试任务的执行
比手动方式更高效,可以更快地将软件推向市场。
2)能执行一些采用手动测试比较困难或不可能进行的测
试。
3)能更好地利用资源,可以利用晚上或周末空闲的设备
执行自动化测试。
4)将任务自动化,让测试人员投入更多的精力设计出更
多更好的测试用例,提高测试准确性和测试人员的积
极性。
5)自动测试具有一致性和可重复性的特点,而且测试更
客观,提高了软件的信任度。

五个级别:(按照自动化测试的成熟度模型)
1)录制/回放:人工完成一遍需要测试的流程,由工具记录下用户与应用程序交互的过程,形成一个脚本,早测试执行期间可以回放
2)录制、编辑和回放
测试人员使用自动化工具来捕获想要测试的功能。将测试脚本中的任何测试数据,如名字、账号等,从测试脚本的代码中完全删除,并将他们转换成为变量。
3)编程与回放
4)数据驱动的测试
数据驱动从数据文件读取输入数据,通过变量
的参数化将测试数据传人测试脚本,不同的数
据文件对应不同的测试用例。达到数据与脚本分离的效果。
5)关键字驱动的测试
后面三个没有感觉到区别,,,不就是测试用例外挂吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值