zoukankan      html  css  js  c++  java
  • 软件测试基础面试题

    (1)什么是软件测试?软件测试的目的与原则?

          定义:在规定的条件下对程序进行操作,以发现程序错误、衡量软件质量,并对其是否能满足设计要求进行评估的过程。

          目的:在于发现错误、发现程序中存在的代码或业务逻辑错误、检验产品是否符合用户的需求、提高用户体验。

          原则:如二八原则、测试应尽早启动、介入。

    (2)什么是软件质量?

          软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

    (3)软件的生命周期?

          计划阶段----需求分析----设计阶段----编码----测试----运行与维护

    (4)软件生存周期及其模型?

          整个生存周期包括:问题的定义及规划、需求分析/评审、软件设计、软件编码、测试阶段、运行维护六个时期

          周期模型:瀑布模型、迭代模型

    (5)软件测试分为那几个阶段?

          单元测试、继承测试、系统测试、验收测试是个主要阶段

          单元测试:通常由开发人员进行

          集成测试:将模块按照设计要求组装起来进行测试,主要目的是发现与接口相关的问题

          系统测试:是在继承测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求

          验收测试:上线前的最终测试

    (6)什么是测试用例?测试脚本?两者的关系是什么?

          用例:未实施而编制的一组测试输入、执行条件、各种环境设置以及预期结果以及期望结果的一个特定的集合

          脚本:是为了进行自动化测试而编写的脚本。测试脚本的编写必须对应相应的测试用例。

    (7)目前主要的测试用例设计方法有哪些?

          白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖

          黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法

    (8)黑盒测试和白盒测试的区别?各自的优缺点?

          黑盒测试:优点 - 不需要了解程序内部的代码及实现,与软件的内部实现无关。从用户角度出发,能很容易知道用户会用到哪些功能

                        缺点 - 覆盖率低,大概只能达到总代码量的30%;

          白盒测试:优点 - 版本软件测试人员增加代码额覆盖率,提高代码的质量,发现代码中隐藏的问题

                        缺点:测试基于代码。只能测试开发人员做的队不敌,而不能知道设计的正确与否,可能会漏掉一些功能需求。

                                系统庞大时,测试开销会非常大。

    (9)黑盒测试的测试用例设计方法有哪些?

          等价类划分、边界值分析法、错误猜测法、因果图法、正交表分析法、场景分析法

    (10)测试人员在软件开发过程中的任务是什么?

          尽可能早的找出系统中的bug

          避免软件开发过程中缺陷的出现

          衡量软件的品质,保证系统的质量

          关注用户的需求,并保证系统符合用户需求

    (11)bug的要素?

          状态、类型、所属项目、所属模块、缺陷提交时间、缺陷提交人、严重程度、优先级别、缺陷描述、测试步骤、前置条件、测试数据、期望结果、实际结果

    (12)测试用例包含什么?

          编号、标题、前置条件、执行步骤、预期结果、用例执行日期、实际结果、测试环境

    (13)一条软件缺陷记录都包含了什么内容?

          bug编号、

          bug严重级别、优先级、

          bug产生的模块、

          bug摘要、

          bug对应版本、

          bug详细现象描述,包括一些截图、录像等

          bug出现时的测试环境,产生的条件即对应操作步骤

    (14)如何提交高质量的软件测试记录?

          ① 通用UI要统一、准确

          ② 尽量使用业界惯用的表达术语和表达方法

          ③ 每条缺陷报告只包括一个缺陷

          ④ 不可重现的缺陷也要报告

          ⑤ 明确指明缺陷类型

          ⑥ 明确指明缺陷严重等级和优先等级时刻、明确严重等级和优先等级之间的差别

          ⑦ 描述。简介、准确、完整、揭示缺陷实质

          ⑧ 根据缺陷,可选择是否进行图像捕捉

          ⑨ 尽量使用短句和断句,表面复杂句型句式

          ⑩ 短行之间使用自动数字序号,使用相同的字体、字号、行间距

    (15)你在测试中发现了一个bug,可能开发经理认为不是一个bug,你应该怎么解决?

          将问题提交到缺陷管理库里进行备份

          根据一些需求说明书、产品说明、原型图、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接证据。

          若无文档,可根据用户的一般使用习惯来确认。还有与设计人员、开发人员等确认。

    (16)TCP的三次握手?

          客户端向服务器发出连接请求报文

          服务器收到请求报文后,若同一连接,则发出确认报文

          客户端收到确定报文后,还要向服务器给出确认

    (17)TCP的四次挥手?

          客户端发出连接释放报文,并且停止发送数据     1

          服务器接收到连接释放释放报文,发出确认      2

          客户端收到服务器的确认请求后,等待服务器发送连接释放报文

          服务器将最后的数据发送完毕后,就向客户端发送连接释放报文    

          客户端收到服务器的链接释放报文后,必须发出确认    3

          服务器只要收到了客户端发出的确认,立即进入关闭连接状态

    (18)在linux和windows下如何抓包,使用什么工具?

          windows下抓博有很多工具,如fiddler、charles等

          linux下抓包需要借助tcpdump,还可以保存下来,拷贝到wireshark中进行图形查看分析

          tcpdump是linux系统下的一款抓包命令集,工作原理是基于网卡抓取流动在往卡上的数据包

    (19)wap和web的区别?

          wap网站是用手机访问,web网站是用电脑访问

          wap是无线应用协议的缩写,一种实现移动电话与互联网那个号之间结合的应用协议标准

          web现广泛译为网络、互联网等,表现为三种形式:超文本、超媒体、超文本传输协议等

          web是普通浏览器,一般用浏览器就可以访问

    (20)TCP/IP协议是怎么数据传输的?

          TCP/IP采用了4层层级结构,应用层、传输层、网络层、链路层

          应用层:应用程序键沟通的层,如简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议TeInet等

          传输层:此层中,提供了节点间的数据传送服务,如传输控制协议TCP,用户数据协议UDP等

          网络层:复制提供基本的数据封包传送功能,让每一块数据包都能到达目的主机,网络协议IP

          链路层:对实际的网络媒体的管理。定义如何使用网络来传送数据。

    (21)接口测试工具是用什么工具,接口的请求错误怎么办?

          接口测试一般用postman工具。查找原因首先查看请求错误的原因,检查请求方法有没有写对,请求参数及类型是否漏掉等

    (22)bug提交了,开发并未解决,这个项目必须上线,应该怎么办?

          首先将bug的严重性很清晰的告诉开发人员,以防后面项目上线,用户体验不佳的情况。

          另外开发一再强调不是bug的,可以将问题反映给上上层领导,或者由团队做出最后裁定。

    (23)如果一个项目必须上线了,还有模块没有测完,你作为领导该怎么办?

          调查该名测试人员的整个测试过程的工作情况,进行综合评估,给出结论,是因为偷懒还是复制模块过多漏测还是其他原因。

          对该名测试人员发出警告以及对相关测试主管、项目经理、产品经理发出警告。

    (24)假如我们功能上线了,界面优化的问题,不是代码的问题,你怎么说服开发去改?

          代码有错,直接影响的功能的使用,二姐面优化,只是进一步改善优化代码的质量

    (25)使用过monkey吗?adb命令的相关操作

          adb devices   检查是否连接

          adb version    版本查看

          adb install xxx     安装

          adb shell monkey -s 888 -v -v -v 500   

          adb shell pm list packages     所有应用的包名

          adb shell pm list packages -3   所有第三方应用的包名

    (26)整机测试中的(如通话功能),说出10条测试用例

          ① 不同运营商号码主叫或被叫(网内接通测试)

          ② 网内挂断测试

          ③ 跨网接通测试

          ④ 跨网挂断测试

          ⑤ 不同呼叫方式(键盘输入直接拨号、通讯录选中被叫方号码、通话记录中进行拨号、信息列表中呼叫)的有效性

          ⑥ 网内的通话过程测试(有无噪音、回声、音量调节、通话过程中可否进行其他功能)

          ⑦ 跨网的通话过程测试

           ......

  • 相关阅读:
    5 个非常实用的 vs 调试技巧
    神秘的 _DEBUG 宏从何处来?
    调试实战 —— dll 加载失败之 Debug Release 争锋篇
    Python 基础 —— 字符串 方法
    linux shell的一些技巧
    salt 一些state模块函数的使用方法记录
    salt 添加iptables的sls例子
    linux 内置函数 操作
    zabbix 自动发现 自动添加主机
    zabbix 触发器 的表达式函数
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/12048284.html
Copyright © 2011-2022 走看看