试卷
201服务外包软件测试考试样卷(1)【附答案】
单项选择题(每题1分,共40题40分)
多项选择题(每题2分,共10题20分)
判断题(每题1分,共10题10分)
填空题(每题1分,共10题10分)
问答题(每题5分,共4题20分)(第四问为英译汉*2)
复习
软件测试定义
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试目的
评估实际运行效果与预期效果差异
发现并上报缺陷
提前预防缺陷
促进软件质量改进
为决策者提供信息
测试人员职责
通过评估软件实际运行效果与预期效果的差异、发现和预防软件缺陷,来促进软件质量的改进,从而支撑项目的最终成功交付
缺陷被发现越晚,修复起来花费成本会成倍放大。
从需求阶段,就开始制定测试计划,坚持软件开发阶段的技术评审,才能尽早预防和发现错误,杜绝隐患, 提高产品质量。
软件测试重要性
软件总存在缺陷。只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去
软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性
测试是所有工程学科的基本组成单元,自然也是软件开发的重要组成部分
测试人员水平越高,找到软件问题的时间就越早,软件就越容易更正,产品发布之后越稳定,公司赚的钱也越多
软件测试的基本原则是什么?
原则一:测试显示软件存在缺陷
测试只能证明软件是存在缺陷的(证伪),却不能证明软件是没有缺陷的(证实)。
原则二:穷尽测试是不可能的
原则三:尽早介入测试
原则四:缺陷具有集群性
在软件测试活动中,80%的缺陷发生在20%的模块中。
原则五:杀虫剂悖论
软件测试也是类似的, 当我们一直使用相同的方法或手段去寻找bug的话,可能很难发现bug甚至无法发现bug。
原则六:测试是上下文相关的
原则七:“没有错误就是好” 是谬误
软件测试不仅仅是找出缺陷,还是确认软件是否满足需求,如果产品不能满足用户的需求,即使没有出现任何缺陷,这个产品也是失败的。
软件测试的6个对象
1. 软件需求
2.软件概要设计
3.软件源代码
4.软件详细设计
5.可运行程序
6.软件运行环境
软件开发与测试流程
软件测试分类
黑盒测试
把被测对象看作一个黑盒,测试软件产品的功能,而不需关注软件产品的内部结构和处理过程。 等价类划分
边界值分析
正交实验分析
场景分析 ……
等价类划分
等价类是指某个输入域的子集,在该子集合中,测试某等价类的代表值就等于这一类其他值的测试,对于揭露程序的错误是等效的。因此,全部输入数据可以合理划分为若干个等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量的代表性的测试数据取得比较好的效果。
有效等价类:对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和意义
无效等价类:与有效等价类相反,是指对程序的规格说明无意义,不合理的数据构成的集合
边界值分析
1.如果规定了输入域的取值范围,则选取刚好在范围边界的点,以及刚好超过边界的点,作为测试的输入数据。
2.如果规定了输入值的个数,则用最大个数,最小个数,比最小个数少 1,比最大个数多 1 的数作为测试数据。
3.如果规定了输入是一个有序的集合,则选取集合的第一个元素和最后一个元素作为测试数据。
示例:计算 1---100 区间内的两个整数之和(包括 1 和 100)
首先分析边界值:1,100(有效等价类),其次是边界值两边的值:0,2,99,101(0 和 101 是无效等价类,2 和 99 是有效等价类)。把有效等价类中的数值换为边界值,这里有 4 个有效等价类的值要取,分别是 1,2,99,100,那么这四个值两个输入框都需要取到。无效等价类中也要覆盖到 0 和 101 这两个值,同样的两个输入框都需要覆盖。
场景分析法
场景法一般包含基本流和备选流(也叫备用流),从一个流程开始,通过描述经过的路径来确定过程,经过遍历所有的基本流和备用流来形成整个场景。场景法的基本设计步骤如下:
根据说明,描述程序的基本流以及各项备选流
根据基本流和各项备选流生成不同的场景
对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值
对每一个场景生成相应的测试用例
决策表/判定表分析
决策表又叫判定表,是分析多种逻辑条件下执行不同操作的技术。决策表由四个部分组成,包括:
列出问题的所有条件,条件的顺序无关紧要;
列出问题规定可能采取的所有动作,排列顺序没有约束;
列出了在条件项的各种取值的有机关联情况下应采取的动作;
列出了针对条件桩的取值在所有可能情况下的真假值;
示例:打印机是否能打印出来正确的内容,有多个因素影响,包括驱动程序、纸张、墨粉等。(为了简化问题,不考虑中途断电、卡纸等因素的影响)
条件桩:(1) 驱动程序是否正确;(2) 是否有纸张;(3) 是否有墨粉
动作桩:(假定:缺纸告警优先级最高,其次墨粉告警,最后驱动程序告警。) (1) 打印内容;(2) 提示驱动程序不对;(3) 提示没有纸张;(4) 提示没有墨粉
优化后决策表:
白盒测试
白盒测试是根据被测程序的内部结构设计测试用例的一种测试方法。
主要用于单元测试阶段,代码和逻辑的测试,重点复杂的测试,是一种测试用例设计方法,
白盒测试优缺点
优点:代码覆盖率高
缺点:覆盖所有代码路径难度大
业务功能可能覆盖不全
测试开销大
语句覆盖:使得程序中每条语句操作至少被执行一次
判断覆盖:使得程序中的每个判断的”真“和”假“都至少被执行一次
将两个判定 if(x>0 && y>0)和if(magic<0) 分别定义为P1、P2
条件覆盖:每个条件至少有一次取真值,有一次取假值
将if(x>0 && y>0)和if(magic<0) 分别定义为P1、P2
将x>0、y>0、magic<0 分别定义为C1、C2、C3
条件覆盖不能保证判定覆盖
判断条件覆盖:使得被测程序中的每个判断本身的判定结果(真假)至少满足一次,每个逻辑条件的可能值也至少被满足一次。就是既满足判断覆盖,也满足条件覆盖。
将if(x>0 && y>0)和if(magic<0) 分别定义为P1、P2
将x>0、y>0、magic<0 分别定义为C1、C2、C3
条件组合覆盖:使得被测程序中的每个判定中条件结果的所有可能组合至少执行一次
条件组合覆盖能够满足语句覆盖、判定覆盖、条件覆盖、判定条件覆盖
但是条件组合覆盖不能保证所有路径被执行。
路径覆盖:设计测试用例,覆盖程序中所有可能的路径
路径覆盖可以对程序进行彻底的测试,比前面五种覆盖更广。
基本路径测试法?????
静态与动态测试分类
静态测试技术:通过手工检查(评审)或自动化分析(静态分析工具)的方式对代码或其他项目文档进行检查。
1、代码检查工具(pclint、coverity、fotify、…) 2、文档评审 3、代码检视技术
动态测试技术:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。
黑盒测试 白盒测试 灰盒测试 兼容性测试 探索性测试
分阶段测试概念
软件缺陷管理
单元测试????
功能测试
兼容性测试
性能测试
安全测试
压力测试
测试用例几大要素
标识符,测试内容,输入条件,预期结果,测试环境信息,与其他测试用例的依赖关系,测试用例需要被开发、审阅、使用、维护和保存。
测试分为哪几个阶段?
一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试
1-单元测试(模块测试)是开发者编写的一小段代码,用于检验被测试代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
2-集成测试(也叫组装测试、联合测试)是单元测试的逻辑扩展。它最简单的形式是:两个已经经过测试的单元组合成一个组件,并且测试它们之间的接口。从这一层上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
3-系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中制定功能的有效方法。(常见的联调测试)。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求而遵循系统设计。
4-验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让用户将其执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预订要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
1-在传统的bugzilla中,bug描述应该包括以下的信息
2-和bug产生对应的软件版本
3-开发的接口人员
4-bug的优先级
5-bug的严重程度
6-bug可能属于的模块,如果不能确认,可以用开发人员来判断
7-bug标题,需要清晰的描述现象
8-bug描述,需要尽量给出重新bug的步骤
9-bug附件中能给出相关的日志和截图。
高质量的bug记录就是指很容易理解的bug记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位。
1)、单元测试:
指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。
2)、集成测试:
组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。
3)、系统测试:
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。
4)、验收测试:
交付测试:确保软件准备就绪。
测试类型划分:
1)、功能测试:
主要针对产品需求说明书对软件进行测试,验证软件功能是否符合需求,包括对原定功能的检验以及测试软件是否存在冗余功能、遗漏功能。
2)、界面测试:
主要对系统的界面进行测试,测试用户界面是否友好,软件是否方便易用、系统设计是否合理、界面位置是否正确等问题。
3)、性能测试:
主要测试系统的性能是否满足用户需求,即在特定的运行条件下验证系统的能力状态。性能测试主要是通过自动化的测试工具模拟正常、峰值、异常负载状况、对系统的各项性能指标进行测试。
性能测试类型包括负载测试,强度测试,容量测试等
负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况
容量测试:确定系统可处理同时在线的最大用户数
4)、强度测试:
迫使系统在异常的资源配置下运行。目的是找出因资源不足或者资源争用而导致的错误。
5)、压力测试:
主要是在超负荷环境中,检验系统是否能够正常运行。
6)、安全测试:
测试系统防止非法入侵的能力。
7)、兼容性测试:
测试软件产品在不同的平台、不同的工具软件或者相同工具软件不同的版本下的兼容性。
8)、安装测试:
主要校验软件是否可以正确安装、安装文件的各项设置是否有效、安装后是否影响整个计算机系统、卸载软件时是否可以卸载干净、卸载软件之后是否影响整个计算机系统。
9)、文档测试:
主要检查内部或外部文档的清晰性和准确性。
黑盒与白盒测试的区别在哪里?静态测试和动态测试的活动分别有哪些?
Selenium 能实现什么功能?
能做接口测试的工具有哪几个?常用的性能测试工具是哪一款?
哪款缺陷管理工具的占有率最高?
Bug流程管理中,问题单回归测试失败后,该怎么处理?
Bug流程管理中,问题单修复完成后该怎么处理?
测试用例的基本要素
要素名称 含义
功能模块 待测试模块名称
功能特征 待测试模块功能特征
测试时间 测试进行时间
用例编号 唯一标识该测试用例的值
输入数据 测试需要的数据列表
操作步骤 按照操作步骤的顺序,准确详细的描述
期望结果 按照规格设计所要求的的正确结果
优先级 依据重要程度确定优先级
预置条件 测试进行时的前置条件
测试类型 该用例是功能测试/冒烟测试/接口测试/性能测试等
————————————————
版权声明:本文为CSDN博主「石头缝里的小松鼠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yutian8233/article/details/118483116