天天看点

测试学习笔记之软件测试高频面试题

软件测试高频面试题

1:什么是功能,性能,兼容

  • 功能:能做什么?
  • 性能:做事情的质量和速度
  • 兼容:哪些地方可以使用

2:测试分为那几个阶段,每个阶段的意义

  • 单元测试:小的方法,类测试。

    测试技术:黑盒测试(功能),白盒测试偏多

    侧重点:功能性测试,健壮测试,性能测试,兼容性测试(逆向测试)

    单元测试前提条件:完成编译的测试对象,测试环境,开发工具,测试对象的规范说明书

  • 集成测试:不同类和方法进行测试。

    测试重点:接口和系统内不同部分的相互作用(交互)

    测试条件:完成集成的北侧系统,测试台,有关组件间交互的文档

    测试技术包括:黑盒测试,白盒测试,黑盒测试居多。对比单元测试,白盒测试有所下降

  • 系统测试:整体全方位的测试。

    对整个系统能不能满足用户需求的测试,

    测试目的:检查软件是否满足需求

  • 验收测试:用户进行测试。一般由用户/客户进行确认是否可以接受一个系统的验证性测试。验收测试根据用户的需求,业务流程进行正式测试以确保系统符合所有验收的准则
  • 阿尔法测试:潜在客户、用户在开发场地进行的测试(内部测试)

    贝塔测试:由潜在客户、用户在自己的环境下进行测试(公测)

前三个测试是为了尽可能的发现缺陷,验收测试为了能够进行使用。

3:确认测试,回归测试

  • 确认测试:缺陷修复后,验证缺陷是否真的修复
  • 回归测试:确认修复后,确保对程序的修改没有给软件的其他未改变部分带来新的缺陷

4:软件开发模型?软件测试主要有哪些模型?、

软件开发模型:大爆炸模型(边想边开发,不利于测试,适用于刚刚摸索软件定位阶段),边写边改模型。瀑布模型(每阶段都要一步步来,测试只能在后面进行)。螺旋模型()。敏捷开发模型(测试和开发放在一起)

测试模型:

  • V模型 :用户需求–需求分析–概要设计–详细设计–编码–单元测试–集成测试–系统测试–验收测试

    ​ 优点:测试各个阶段和开发的各个阶段相对应

    ​ 缺点:编码完成后侧进行测试,未对文档进行测试,导致需求阶段的错误一直在最后测试阶段才被发现

  • W模型 :左边的V是:需求分析–概要设计–详细设计–编码实现–模块集成–系统构建–系统安装,右边 的V是:需求测试–概要测试–详细设计测试–单元测试–集成测试–系统测试–验收测试

    ​ 优点:和开发同步进行测试,便于更早的发现问题

    ​ 缺点:不利于迭代

  • H模型 :测试完全的独立出来,测试准备和测试执行清晰的准备出来了,H模型测试流程是只要准备工 作完成,达到测试就绪点,测试就可以执行

    ​ 优点:反映出测试要提前准备,尽早测试可以进行迭代,反复进行

  • 敏捷测试:协同测试的一种形式;敏捷测试侧重单元测试和验收测试(先设计单元测试用例,然后进行编码,之后执行测试);敏捷测试强调客户参与,单元测试通过之后代码集成到代码库,再有客户进行验收测试,验收测试情况反映给开发人员,缺陷得以解决。

5:简述测试的基本过程

  • ​ 1:测试人员进行测试需求分析
  • ​ 2:测试负责人负责编写测试计划
  • ​ 3:测试人员根据测试需求分析设计和编写测试用例
  • ​ 4:测试人员搭建测试环境,创建测试数据,执行测试用例,提交缺陷报告并跟进,记录测试 时间
  • ​ 5:进行测试的评估和总结
  • ​ 每一个步骤完成之后都要进行评审

6:怎么进行测试需求分析

  • ​ 1:收集各类文档,仔细阅读文档,提出问题,分析问题或沟通解决
  • ​ 2:编写测试需求分析说明书:功能分解,编写检查点和测试点
  • ​ 3:需求评审

7:拿到项目之后,需要分析和咨询软件那些方面问题?

​ 软件主要的功能,流程,开发环境,运行环境,用户群,测试范围,测试优先级

8:需求评审都有那些人参与?

​ 项目负责人,开发负责人,测试负责人,开发人员,测试人员,需求经理,客户等

9:什么是测试策略,什么是测试范围?

  • 测试策略:(如何进行某种测试),比如功能性能兼容性测试,用于说明测试方法以及如何使用测试方法
  • 测试范围:根据需求进行划分

10:什么是BVT测试,冒烟测试,版本验证测试,怎么测试?

​ 冒烟测试用例主要进行主要功能或者小版本的测试,已确认是否值得深度测试,或者在灰度阶段 进行主要功能测试

11:测试计划的内容和目的,编写要素是什么?

  • 测试计划:项目开始的时候就需要进行测试计划,对测试进行一些规定主要包括:测试区域,测试范围,测试周期,进度安排(测试任务,人员安排),测试方法/途径,测试交流和测试风险分析等内容。
  • 测试目的:指导测试过程,规定测试范围,方法,资源和进度明确正在测试的项目需要测试的特征,要执行的测试任务,每个任务的责任人以及与计划相关的风险。
  • 测试计划编写6要素(6W1H)

    why:为什么要进行这些测试

    what:测试那些方面,不同阶段的工作内容

    when:测试不同阶段的起止时间

    where:显影文档,缺陷的存放位置,测试环境等

    who:项目有关人员组成

    how:如何去做,使用那些测试工具和测试方法进行测试

12:怎么判断是不是软件缺陷

  • ​ 1:判断软件是否达到了产品说明书标明的功能
  • ​ 2:软件出现了产品说明书指明不会出现的错误
  • ​ 3:软件功能超出了产品说明书指定范围
  • ​ 4:软件未达到产品说明书虽然没有指出但是应该达到的目标
  • ​ 5:软件测试人能源具体问题具体分析,认为软件难以理解,不易使用,运行速度缓慢或者最 终用户认为不好。

13:缺陷报告的写法准则

  • correct(准确):每个组成部分的描述准确,不会引起误解
  • clear(清晰):每个组成部分描述清晰,易于理解
  • concise(简洁):只包含必不可少的信息,不包括任何多余的内容
  • complete(完整):包含复现该缺陷的完整步骤或其他版本信息
  • consistent(一致):按照一致的格式书写全部缺陷报告

14:缺陷报告内容

  • ​ 缺陷标题(缺陷摘要,缺陷概要)
  • ​ 预处理
  • ​ 复现步骤
  • ​ 预期结果
  • ​ 实际结果
  • ​ 严重程度(致命缺陷:立即修复,严重缺陷:立即修复,一般缺陷:列入发布清单,小缺陷:下一版本修复,建议:不修复)
  • ​ 优先级(必须立马解决,缺陷正常排队等待或列入软件发布清单,可在方便时纠正,下一版本修复,不修复)
  • ​ 测试环境
  • ​ 测试版本
  • ​ 测试执行人
  • ​ 注释

15:简述缺陷报告的处理流程(缺陷的生命周期)

  • 测试人员提交缺陷报告
  • 测试负责人审核后将缺陷分配给相关开发人员修改
  • 缺陷修复后有测试人员根据缺陷报告中的修改记录进行反测
  • 反测通过的缺陷报告有负责人关闭
  • 反测未通过的缺陷报告直接返回给相应的开发人员重新修改,然后再次反测,直到缺陷修复

16:重复缺陷处理流程

​ 提交缺陷–分配缺陷–是重复缺陷–置为无效缺陷

17:缺陷状态

  • 新建/已提交
  • 打开
  • 已拒绝
  • 已解决/已修复
  • 已关闭

18:什么是桩模块,驱动模块,自底向上,自顶向下

  • 桩模块:被测试模块调用的模块
  • 驱动模块:调用被测模块的模块
  • 自顶向下测试:适用于想尽快看到系统功能,高层接口变化小,底层接口还未被定义或经常修改等的测试,这种测试会有大量的装模块开发
  • 自底向上测试:适用于底层接口较稳定,高层接口变换频繁,效率高于自顶向下测试,

19:测试名词解释

  • 性能测试:处理速度,响应时间,CPU使用,内存使用,硬盘使用等
  • 负载测试:通多不断增加负载来测试一个系统的性能
  • 压力测试:通过增加负载超过系统正常工作能力来考察系统能付在异常情况下正常工作。
  • 功能测试:测试软件能做什么,是完成应该做的工作,没做不该做的工作
  • 结构测试:也称作白盒测试。对程序结构进行测试
  • 静态测试:不执行程序的测试,针对文档和不需要执行的代码
  • 动态测试:需要执行程序,方法一般采用黑盒测试和饱和测试方法

20:黑盒测试

  • 黑盒测试:也称作功能测试,基于规格说明书的测试,关注输入数据到程序中,输出结果是否正确,侧重测试软件能做什么
  • 黑盒测试方法
  • 测试大纲法:进行功能拆分,把功能从大到小划分出来,
  • 场景法:具体测试的某一个场景,对业务流程进行测试,将业务区分为基本流(按照正确的流程进行测试用例设计)和备选流(测试各种错误流程)。
  • 等价类划分:将输入区域划分为若干等价的类别,有效等价类(根据规格说明书进行用例设计),无效等价类(违反规格说明书进行用例设计)
  • 边界值分析法:依据输入数据的范围进行用例设计,一般选择边界点上的4或6个数进行用例设计
  • 错误猜测法:根据测试经验猜测出易出错点,
  • 决策表法:分析不同输入的各种组合产生不同的输出
  • 随机测试法:测试用例测试完成后,随机测试
  • 探索测试:未写测试用例,熟悉业务,直接进行测试的方法

21:白盒测试

  • 白盒测试:也称结构测试,是对程序内部逻辑结构进行测试
  • 白盒测试方法
  • 语句覆盖:程序中的可执行语句至少执行一次,能发现语句错误,但不能发现逻辑错误(f非注释语句至少执行一次,顺序语句)
  • 判定覆盖:也称作分支覆盖,程序中的每个判定的取真值分支和取假值分支至少执行一次。能发现逻辑错误,打不呢那个发现组合判断中的条件错误(循环,选择语句中的条件要正确)
  • 条件覆盖:程序每个判定中每个条件至少满足一次,能发现条件错误,不能发现逻辑错误错(循环或者判断中条件测试要正反各测一次)
  • 判定-条件覆盖:每个条件中的所有可能取值至少执行一次,同时每个判定的可能结果至少执行一次
  • 条件组合覆盖:所有小条件取值组合至少执行一次(要求很高的)
  • 路径覆盖:用力覆盖程序中的所有可能的执行路径。如果路径数很多,会变得不切实际

22:测试用例的内容

  • 用例编号
  • 测试概要
  • 测试步骤
  • 预计结果
  • 输入数据
  • 优先级(冒烟测试,高,中,低)
  • 前置条件等

23:软件安全性应该从哪几方面进行测试

  • ​ 软件安全性测试包括:程序和数据库安全性测试
  • ​ 根据系统安全指标不同测试策略也不同
  • ​ 用户认证安全的测试要考虑的问题:明确区分系统中不同用户权限,系统中会不会出现用户冲突,系统会不会因用户的权限的改变造成混乱,用户登录密码是否可见,可复制,是否可以通过攫夺路径登录系统
  • ​ 系统网络安全测试要考虑的问题:测试采取的防护措施是否正确配置好,有关系统的补丁是否打上,看防护系统是否坚固,采用成熟的网络漏洞检测工具检查系统相关漏洞,采用各种防外挂工具检查程序
  • ​ 数据库安全考虑:系统数据是否机密(用户的账号和密码是否加密保存),系统输几局的完整性,系统数据可备份和恢复能力(数据是否备份,可否恢复,恢复的数据是否完整)

24:好的测试用例有哪些特点?

  • 用例完整,简洁,一致

    ​ 至少含有编号,标题,步骤和预期结果

  • 用例表名测试目的
  • 用例覆盖率高
  • 用例能够是工作量最小化(用例不重复)
  • 用例描述正确,规范
  • 用例分类以及描述要足够清晰
  • 用例要具有可测试性
  • 测试用易于与维护
  • 可复用
  • 可重复性(不管谁执行,结果都一样)
  • 可追踪性(用例能够追踪到一个具体的需求)

25:测试结束的标准是什么

  • 全部测试用例都执行完成
  • 未修改bug都被确认或置为应有状态,暂缓修改的问题都能有详细的解释
  • 测试报告编写完成
  • 测试首尾工作结束
  • 测试总结完成
  • 项目处于试运行或上线阶段
  • 在测试计划中定义结束标准

    ​ 如计划中规定:系统在一定性能下平稳运行72小时,本版本没有严重bug

    ​ 实际测试达到上述要求,然后由开发经理,测试经理,项目经理共同签字,认同测试结束即可发布版本

26:internet主要采用什么协议,该协议的主要层次是什么,internet物理地址和IP地址转换采用什么协议?

internet主要采用TCP(传输控制协议)/IP(网络协议)协议,主要从层次:应用层、传输层,网络层,数据链路层,

internet物理地址和IP地址转换采用ARP(地址解析协议)

案例测试

给一个网站应该怎么测试?

首先,查找需求说明,网站设计等先关文档,分析测试需求

制定测试计划,确定测试范围和测试策略,一般包括几个部分:功能测试,界面测试,性能测试,数据库测试,安全性测试,兼容性测试

设计测试用例

​ 功能性测试可以包括但不限于以下几个方面 :

​ 链接测试:链接是否正确。跳转是否存在空页面,无效页面,是否有不正确出错信息返回

​ 提交功能测试

​ 多媒体元素是否可以正确加载和显示

​ 多语言是否能够正确显示选择语言功能

​ 界面测试可以包括但不限于以下几个方面:

​ 界面是否和UI中一致,主要包括字体,色号,图形大小等

​ 界面是否出现格式出错,乱码等

​ 性能测试:性能测试,压力测试

​ 安全性测试

​ 基本登录功能检查,是否存在潜在错误,导致系统崩溃或权限泄露

​ 兼容性测试

​ 浏览器兼容,操作系统兼容,软件平台兼容等

开展测试,并记录缺陷

定期评审,对测试进行评估和总结,调整测试内容

一台客户端有三百个客户与三百个客户端有三百个客户对服务器试压,有什么区别

300个用户在一个客户端

会占用更多的资源,影响测试结果,需要更大的带宽,不许考虑分布式管理问题

用户分布在不同的客户端

需要考虑使用控制器来整体调配不同客户机上的用户

需要给予相应的权限配置和防火墙设置。

如何测试一个纸杯?

  • 功能:水杯装水看漏不漏,水能不能被喝到
  • 安全性:被子有没有毒或细菌
  • 可靠性:杯子从不同高度落下的损坏程度
  • 可移植性:杯子在不同地方,温度等环境下是否都可以正常使用
  • 兼容性:被子是否能够装果汁,白水,酒精等
  • 易用性:杯子是否烫手,是否有防滑,是否方便引用
  • 用户文档:使用手册是否对杯子的用法,限制,使用条件等有详细的描述
  • 疲劳测试:将杯子盛水放24小时检查泄露事件和情况,将杯子盛油放24小时检查泄露事件和情况
  • 压力测试:用根针并在针上面不断加重量,看压力多大时会穿透水杯
  • 回文测试
    public static boolean huiwen(String str){
        boolean boo = false;
        int len = str.length();
        if(len !=0){
            for(int i = 0;i <= len; i++){
                if(str.charAt(i) == str.charAt(len-1-i) ){
                    if(i == len/2){
                        boo = true;
                    }
    
                }else{
                    break;
                }
            }
    
        }
        return boo;
    }
               

测试:空串,一个字符串,两个字符串(对称,不对称),五个字符串(对称,不对称)

白盒测试角度:

​ 这里的条件覆盖等价于判定覆盖。n!=0成立与不成立均测到

​ for:循环0次不现实,所以不需要测试,1次以上进行测试

​ str.charAt(i) == str.charAt(len-1-i)条件覆盖等价于判定覆盖

​ i == len/2条件覆盖等价于判定覆盖

以上仅供学习