精华内容
下载资源
问答
  • 问:软件测试的原则? 答:https://blog.csdn.net/weixin_30363263/article/details/102986878 问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 1、将问题提交到缺陷...

    https://blog.csdn.net/mj813/article/details/52451355,对原文进行整理

    扫码关注每日思悟:

    介绍解决锻炼思维问题的思路和方法,从不同角度分析问题,让思维变强大,变宽广的同时在测试方面进行学习和方法的拓展 (作者是互联网测试开发工程师)

    问:软件测试的原则?

    答:https://blog.csdn.net/weixin_30363263/article/details/102986878

    问:你在测试中发现了一个  bug ,但是开发经理认为这不是一个  bug ,你应该怎样解决。

    1、将问题提交到缺陷管理库里面进行备案。
    2、要获取判断的依据和标准:
    根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
    如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
    根据用户的一般使用习惯,来确认是否是缺陷;
    3、与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
    4、合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
    等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

     

    问:给你一个网站,你如何测试?
    1、查找需求说明、网站设计 m 等相关文档,分析测试需求。
    2、制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
         功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
    3、设计测试用例:
         功能性测试可以包括,但不限于以下几个方面:
         链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。提交功能的测试
         多媒体元素是否可以正确加载和显示。多语言支持是否能够正确显示选择的语言等。
         界面测试可以包括但不限于一下几个方面:

    • 页面是否风格统一,美观
    • 页面布局是否合理,重点内容和热点内容是否突出                                                               
    • 控件是否正常使用
    • 对于必须但为安装的空间,是否提供自动下载并安装的功能
    • 文字检查

    性能测试一般从以下三个方面考虑:
         压力测试;             负载测试;             强度测试
    数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
    安全性测试:

    • 基本的登录功能的检查
    • 是否存在溢出错误,导致系统崩溃或者权限泄露
    • 关开发语言的常见安全性问题检查,例如 SQL 注入等。
    • 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合:

    兼容性包括:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性

    4、开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。定期评审,对测试进行评估和总结,调整测试的内容。

    在搜索引擎中输入汉字就可以解析 到对应的域名,请问如何用 r LoadRunner  进行测试。
    建立测试计划,确定测试标准和测试范围

    设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等

    根据测试用例,开发自动测试脚本和场景:

    录制测试脚本
    新建一个脚本(Web/HTML 协议)
    点击录制按钮,在弹出的对话框的 URL 中输入”about:blank”。
    在打开的浏览器中进行正常操作流程后,结束录制。
    调试脚本并保存。可能要注意到字符集的关联。
    设置测试场景
    针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标
    针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件
    下,系统是否会崩溃。

    执行测试,获取测试结果,分析测试结果

    问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别? ?
    300 个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。
    线程之间可能发生干扰,而产生一些异常。
    300 个用户在一个客户端上,需要更大的带宽
    IP 地址的问题,可能需要使用 IP Spoof 来绕过服务器对于单一 IP 地址最大连接数的限制。
    所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

    问:试述软件的概念和特点?软件复用的含义?构件包括哪些?

    软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、文档的完整集合。
    软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

    可以被复用的软件成分一般称作可复用构件

    问:软件生存周期及其模型是什么?
    软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、
    软件设计、编码、测试、软件发布维护的过程。
    在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺
    少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。
    什么是软件测试?软件测试的目的与原则
    使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需
    求或弄清预期结果与实际结果之间的差别。
    软件测试的目的:
    测试是程序的执行过程,目的在于发现错误
    一个成功的测试用例在于发现至今未发现的错误
    一个成功的测试是发现了至今未发现的错误的测试
    确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
    确保产品满足性能和效率的要求
    确保产品是健壮的和适应用户环境的
    软件测试的原则:
    教材的说法:
    软件测试应尽早执行,并贯穿于整个软件生命周期
    软件测试应追溯需求
    测试应由第三方来构造
    穷举测试是不可能的,要遵循 Good-enough 原则
    必须确定预期输出(或结果)
    必须彻底检查每个测试结果
    充分注意测试中的群集现象
    缺陷的二八定理
    严格执行测试计划,排除测试的随意性
    注意合法合理的输入,也要注意非法的非预期的输入
    检查程序是否做了不该做的
    测试应从“小规模”开始,逐步转向“大规模”
    反复使用同样的测试会使软件具有抵抗力
    关注缺陷的修复
    软件配置管理的作用?软件配置包括什么?
    软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。
    软件配置包括如下内容:
    配置项识别
    工作空间管理
    版本控制
    变更控制
    状态报告
    配置审计
     

     

    什么是软件质量?

    软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

     

     

    目前主要的测试用例设计方法是什么?

    白盒测试:
    逻辑覆盖
    循环覆盖
    基本路径覆盖
    黑盒测试:
    边界值分析法
    等价类划分
    错误猜测法
    因果图法
    状态图法
    测试大纲法
    随机测试场景法

     

    软件的安全性应从哪几个方面 去测试?


    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
    用户认证安全的测试要考虑问题:
    明确区分系统中不同用户权限
    系统中会不会出现用户冲突
    系统会不会因用户的权限的改变造成混乱
    用户登陆密码是否是可见、可复制
    是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
    用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
    系统网络安全的测试要考虑问题
    测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
    模拟非授权攻击,看防护系统是否坚固
    采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,
    现在最常用的是 NBSI 系列和 IPhacker IP )
    采用各种木马检查工具检查系统木马情况
    采用各种防外挂工具检查系统各组程序的外挂漏洞
    数据库安全考虑问题:

     

    系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)

    系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这
    个系统的功能实现有了障碍)
    系统数据可管理性
    系统数据的独立性

    系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)


    什么是测试用例 什么是测试脚本 两者的关系是什么?
    为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
    测试脚本是为了进行自动化测试而编写的脚本。
    测试脚本的编写必须对应相应的测试用例,
    简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
    静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
    动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判
    定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率
    和健壮性等性能。
    黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得
    以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间
    的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确
    性。
    白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读
    程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理
    在程序员开发中来实现。
    α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环
    境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。
    β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在
    测试现场,Beta 测试不能由程序员或测试员完成。
    软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么? ? 他们的编号
    和全称是什么? ?
    SQA 由一套软件工程过程和方法组成,以保证(软件的)质量。SQA 贯穿整个软件开发过程,
    (它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测
    试。


    软件产品质量特性是什么? ?
    功能性:适应性、准确性、互操作性、依从性、安全性。

    可靠性:成熟性、容错性、以恢复性。
    可使用性:易理解性、易学习性、易操作性。
    效率:时间特性、资源特性。
    可维护性:易分析性、易变更性、稳定性、易测试性。
    可移植性: 适应性、易安装性、遵循性、易替换性。


    软件测试的策略是什么? ?
    软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束
    而规定的软件测试的原则、方式、方法的集合。


    软件测试分为几个 阶段 各阶段的测试策略和要求是什么? ?
    软件测试按阶段划分可以分为单元测试、集成测试、系统测试和<验收测试>(不一定有)几
    个阶段
    单元测试测试策略:
    自顶向下的单元测试策略
    总结:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
    自底向上的单元测试策略
    总结:比较合理的单元测试策略,但测试周期较长。
    孤立单元测试策略
    总结:最好的单元测试策略。
    集成测试的测试策略:
    大爆炸集成
    适应于一个维护型项目或被测试系统较小
    自顶向下集成
    适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修
    改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能
    行为。
    自底向上集成
    适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
    基于进度的集成
    优点:具有较高的并行度;能够有效缩短项目的开发进度。
    缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
    系统测试的测试策略

    数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容
    量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;
    可用性测试;版本验证测试;文档测试
    在软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?
    单元测试阶段。各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针
    对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成
    单元测试报告,提交缺陷报告。
    集成测试阶段。集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规
    格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标
    及要求的活动。该阶段生成集成测试报告,提交缺陷报告。
    系统测试阶段。将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬
    件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对
    计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。


    测试人员在软件开发过程中的任务是什么?
    1、寻找 Bug;
    2、避免软件开发过程中的缺陷;
    3、衡量软件的品质;
    4、关注用户的需求。
    总的目标是:确保软件的质量。
    在您以往的工作中,一条软件缺陷(或者叫 Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

    一条 Bug 记录最基本应包含:编号、Bug 所属模块、Bug 描述、Bug 级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;

    要有效的发现 Bug 需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认

    肯定,然后再向外发布如此才能提高提交 Bug 的质量。
    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
    黑盒测试的优点有:
    比较简单,不需要了解程序内部的代码及实现;
    与软件的内部实现无关;
    从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
    基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
    在做软件自动化测试时较为方便。
    黑盒测试的缺点有:
    不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
    自动化测试的复用性较低。

    白盒测试的优点有:
    帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
    白盒测试的缺点有:
    程序运行会有很多不同的路径,不可能测试所有的运行路径;
    测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一
    些功能需求;
    系统庞大时,测试开销会非常大。

     

    如何测试一个 纸杯?

    功能度:用水杯装水看漏不漏;水能不能被喝到
    安全性:杯子有没有毒或细菌
    可靠性:杯子从不同高度落下的损坏程度
    可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
    兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
    易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
    用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
    疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)
    放 24 小时检查泄漏时间和情况等
    压力测试:用根针并在针上面不断加重量,看压强多大时会穿透


    测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
    答案:软件测试计划是指导测试过程的纲领性文件。
    包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试
    交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,
    可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对
    测试过程中的各种变更。
    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划
    测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
    所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。


    黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
    等价类划分
    划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序
    中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.

    因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试
    的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不
    同的情况:有效等价类和无效等价类.
    2)边界值分析法
    边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输
    入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测
    试用例,可以查出更多的错误.
    使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就
    是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,
    而不是选取等价类中的典型值或任意值作为测试数据.
    3)错误猜测法
    基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方
    法.
    错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根
    据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品
    测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为 0 的情况.
    输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下
    的例子作为测试用例.

    4)因果图方法
    前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件
    之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要
    检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的
    组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个
    动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成
    的就是判定表. 它适合于检查程序输入条件的各种组合情况.
    5)正交表分析法
    有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并
    没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表
    来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
    6)场景分析方法
    指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行
    性更好。
    7)状态图法
    通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条
    件;通过输入条件、输出条件和状态得出被测系统的测试用例。
    8)大纲法
    大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大
    纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一
    个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所
    有功能所需测试用例的大致数量。

     

     详细的描述一个测试活动完整的过程。

    答案:(供参考,本答案主要是瀑布模型的做法)
    项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评
    审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。
    项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后 SQA 进入项目,
    开始进行统计和跟踪
    开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有
    遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描
    述。
    测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详
    细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
    测试用例完成后,测试和开发需要进行评审。
    测试人员搭建环境
    开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现 BUG
    后提交给 BugZilla。
    开发提交第二个版本,包括 Bug Fix 以及增加了部分功能,测试人员进行测试。
    重复上面的工作,一般是 3-4 个版本后 BUG 数量减少,达到出货的要求。
    如果有客户反馈的问题,需要测试人员协助重现并重新测试。

     

    在您以往的工作中,一条软件缺陷(或者叫  Bug )记录都包含了哪些内容?如何提交高质量的软件缺陷( Bug )记录?

    在传统的 BugZilla 中,BUG 描述应该包括以下的信息
    和 BUG 产生对应的软件版本和模块
    开发的接口人员
    BUG 的优先级
    BUG 的严重程度
    BUG 可能属于的模块,如果不能确认,可以用开发人员来判断
    BUG 标题,需要清晰的描述现象
    BUG 描述,需要尽量给出重新 Bug 的步骤
    BUG 附件中能给出相关的日志和截图。
    高质量的 BUG 记录就是指很容易理解的 BUG 记录,所以,对于描述的要求高,能提供的信息
    多且准确,很好的帮助开发人员定位,因此提交高质量的软件缺陷记录需要注意对 BUG 记录
    的描述质量多且准确。

    G BUG  管理工具的跟踪过程
    用 BugZilla 为例子
    测试人员发现了 BUG,提交到 Bugzilla 中,状态为 new,BUG 的接受者为开发接口人员
    开发接口将 BUG 分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认
    BUG,如果是本人的 BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下
    一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个 BUG,
    然后测试人员关闭此问题。
    如果开发人员接受了 BUG,并修改好以后,将 BUG 状态修改为已修复,并告知测试在哪个版
    本中可以测试。
    测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭
    BUG。

    答:1) 测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。
    2) 经验证无误后,修改状态为VERIFIED.待整个产品发布后,修改为CLOSED.
    3) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。
    4) 项目组长根据具体情况,重新reassigned分配给bug所属的开发者。
    5) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)
    6) 开发者收到Email信息后,判断是否为自己的修改范围。
    7) 若不是,重新reassigned分配给项目组长或应该分配的开发者。
    8) 测试人员查询开发者已修改的bug,进行重新测试。

    您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?

    维持测试人员同开发团队中其他成员 良好的人际关系的关键是什么?
    尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过 Email 等非及时沟通工具的
    话,强调必须对特性的理解深刻以及能表达清楚。
    运用一些测试管理工具如 TestDirector 进行管理也是较有效的方法,同时要注意在
    TestDirector 中对 BUG 有准确的描述。


    在团队中建立测试人员与开发人员良好沟通中注意以下几点:
    真诚
    是团队精神
    三是在专业上有共同语言
    四是要对事不对人,工作至上
    当然也可以通过直接指出一些小问题,而不是进入 BUG Tracking System 来增加对方的好感。

     

    你对测试最大的兴趣在哪里?为什么?

    回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:
    最大的兴趣,感觉这是一个有挑战性的工作;
    测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
    通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
    回答此类问题注意以下几个方面:
    尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么
    表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。
    表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转
    开发或其他的,除非用人企业有这样的安排。
    不要过多的表达你的兴趣在招聘企业的范畴这外。比如招聘企业是做财务软件的,可是你表
    现出来的是对游戏软件的兴趣;或招聘是做 JAVA 开发的,而你的兴趣是在 C 类语言程序的
    开发。


    你自认为测试的优势在哪里?
    该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
    有韧性
    有耐心
    做事有条理性
    喜欢面对挑战
    有信心做好每一件事情
    较强的沟通能力

    从以前的经理处都得到了很好的评价表明我做的很好

    集成测试通常都有那些策 略?

    1、大爆炸集成
    2、自顶向下集成
    3、自底向上集成
    4、三明治集成适应于大部分软件开发项目
    5、基干集成
    6、分层集成
    7、基于功能的集成
    8、基于消息的集成
    9、基于风险的集成
    10、基于进度的集成

     

    常用 X UNIX  命令x (Linux  的常用命令) ) (至少 0 10  个); (Unix)
    答:ls pwd mkdir rmdir rm cp mv cd ps ping tail more echo adduser passwd logout exit,
    参见 Linux 的教材。
    简述你在以前的工作中做过哪些事情,比较熟悉什么。
    此问题每个人都不一样。参考答案如下。
    我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对 BOSS 系统的业务逻
    辑功能,以及软交换系统的 Class 5 特性进行测试。性能测试中,主要是进行的压力测试,
    在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要
    是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。
    在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对 BUG 的管理,要以
    需求为依据,并不是所有 BUG 均需要修改。
    测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的 BUG 得到了修复,但原来

    正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。

     

    在  C/C++中 中 c static  有什么用途?(请至少说明两种)
    1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
    2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但
    不能被模块外其它函数访问。它是一个本地的全局变量。
    3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个
    函数被限制在声明它的模块的本地范围内使用

     

     

     

    引用与指针有什么区别?

    1) 引用必须被初始化,指针不必。
    2) 引用初始化以后不能被改变,指针可以改变所指的对象。
    3) 不存在指向空值的引用,但是存在指向空值的指针。
    t Internet  采用哪种网络协议?该协议的主要层次结构?t Internet  物理地址和 P IP  地址转换
    采用什么协议?

     

    TCP/IP 协议

    主要层次结构为: 应用层/传输层/网络层/数链路层。
    ARP (Address Resolution Protocol)(地据址解析协议)

     

    说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优

    缺点和主要适应于哪种类型测试;
    自顶向下集成
    优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功
    能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
    缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。

     

    适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修
    改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能
    行为。
    2、自底向上集成
    优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的
    工作量;支持故障隔离。
    缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
    适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
    软件验收测试包括 ___ 、 ___ 、 ____ 三种类型。
    软件验收测试包括正式验收测试、alpha 测试、beta 测试三种测试。
    2 2 .系统测试的策略有 ____________________________等 等  15  种方法。(该题
    5 15  个空)
    系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、
    配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可
    用性测试。
    3 3 .设计系统测试计划需要参考的项目文档有 ___ 、 ___ 和 ____ 。
    设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划。
    4 4 .通过画因果图来写测试用例的步骤为 ___ 、 ___ 、 ___ 、 ___ 及把因果图转换为状态图共五
    个步骤。 利用因果图生成测试用例的基本步骤是:
    § 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结
    果(即输出条件),并给每个原因和结果赋予一个标识符。
    § 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么
    关系? 根据这些关系,画出因果图。
    § 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。
    为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 § 把因果图转换成判
    定表。
    § 把判定表的每一列拿出来作为依据,设计测试用例。
    一、 测试的种类很多,比如:
    代码、函数级测试
    模块、组件级测试
    系统测试
    请说出这些测试最好由那些人员完成,测试的是什么?
    代码、函数级测试一般由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检
    查其是否正确的实现了规定的功能。

    模块、组件级测试主要依据是程序结构设计测试模块间的集成和调用关系,一般由测试人员
    完成。
    系统测试在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例
    进行全面的测试。
    二、 设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?
    设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测
    试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例需要考虑的四
    个基本要素是输入、输出、操作和测试环境;另外,测试用例需要考虑的是测试类型(功能、
    性能、安全„„),这部分可以参照 TP 做答。此外,还需要考虑用例的重要性和优先级)
    四、 在 在 s windows  下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,
    等价类应该怎样划分?
    单字节,如 A;
    双字节, AA、我我;
    特殊字符 /‘。‘;、=-等;
    保留字,如 com;
    文件格式为 8.3 格式的;
    文件名格式为非 8.3 格式的;
    /,\,*等九个特殊字符。
    假设有一个文本框要求输入 0 10  个字符的邮政编码,对于该文本框应该怎 样划分等价类?
    特殊字符,如 10 个*或¥;
    英文字母,如 ABCDefghik;
    小于十个字符,如 123;
    大于十个字符,如 11111111111;
    数字和其他混合,如 123AAAAAAA;
    空字符;
    保留字符

    5. 软件测试项目从什么时候开始,?为什么?
    软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发
    过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费

     

    的成本就越大.

     

    什么是白盒测试?什么是黑盒测试? ? 什么是回归测试? ?
    答:白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试着可以完全不考虑程序的功能.
    白盒测试流程:详细设计-->源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析 .
    黑盒测试:(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
    回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,

     

    对相关修改的部分进行测试的方法。

     

     

    2. 单元测试、集成测试、系统测试的侧重点是什么?
    单元测试针对的是软件设计的最小单元--程序模块(面向过程中是函数、过程;面向对象
    中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般
    有两个步骤:人工静态检查\动态执行跟踪
    集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是
    各个单元模块之间的接口,以及各个模块集成后所实现的功能.
    系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\
    外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计

     

    算机系统进行一系列的集成测试和确认测试.

     

     

    3. 设计用例的方法:
    在测试的不同阶段运用不用的测试方法设计用例的方法依据不同:
    白盒测试用例设计有如下方法:逻辑覆盖、循环覆盖和基本路径覆盖

    黑盒测试用例设计方法:等价类划分、边界值分析、错误猜测、因果图、状态图、测试大纲、

     

    场景法、正交策略表。

     

     

    4. 一个测试工程师应具备那些素质?
    1、责任心
    2、沟通能力
    3、团队合作精神
    4、耐心、细心、信心
    5、时时保持怀疑态度,并且有缺陷预防的意识

     

    6、具备一定的编程经验

     

     

    5. 集成测试通常都有那些策略?
    基于分解的集成:大爆炸集成\自顶向下集成\自底向上集成\ 三明治集成\基于调用图的
    集成\基于路径的集成\分层集成\基于功能的集成\高频集成\基于进度的集成\基于风险集
    成\基于事件集成\基于使用的集成\C/S 集成
    问题二:你所了解的的软件测试类型都有哪些,简单介绍一下。
    按测试 策略分类:1、静态与动态测试 2、黑盒与白盒测试 3、手工和自动测试 4、冒烟测
    试 5、回归测试;
    按测试阶段分类:单元测试、集成测试、系统测试;
    其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、
    安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测试 12、

     

    恢复测试

     

     

    问题三:你认为做好测试计划工作的关键是什么?
    明确测试的目标,增强测试计划的实用性

     

    编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确坚持“5W”规则,明确内容与过程“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

     

    采用评审和更新机制,保证测试计划满足实际需求测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。

    分别创建测试计划与测试详细规格、测试用例应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。

    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

    问题四:您认为做好测试用例设计工作的关键是什么?
    白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
    黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测

     

    试,以最少的用例在合理的时间内发现最多的问题

     

     

    问题六:您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
    性能测试的目的主要是发现在并发多用户和大数据量操作时是否会出现与需求有差异的地
    方。性能测试工作的关键是做好系统分析和功能分析,确定系统瓶颈所在(这里参看 ATT
    第十章 LoadRunner 的 PPT)。

    问题八:你的测试职业发展目标是什么?
    测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试
    工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,不断的更新自己改正自己,

     

    做好测试任务。

     

     

    问题九:你对我们公司了解有多少?
    建议从招聘广告上多了解信息,同时到应聘公司的网站上去尽可能多的了解这个公司的情
    况,以便回答好这类问题。
    问题十:测试结束的标准是什么?
    从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行 72 小时,目前 Bug
    Tracking System 中,本版本中没有一般严重的 BUG,普通 BUG 的数量在 3 以下,BUG 修复
    率 90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本 Release。
    如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。
    1 1 、 软件测试分为黑盒和白盒,分别适合什么情况? ?
    软件测试方法一般分为两种:白盒测试与黑盒测试。白盒测试又称为结构测试、逻辑
    驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能
    指标;黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在
    最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及
    性能需求的规定。
    2、一套完整的测试应该由哪些阶段组成?
    可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验
    收测试

    4、测试用例通常包括那些内容?
    不同结构的用例包括的不一样。(版本、编号、项目、设计人员、设计日期、输入、预期输出„„)
    软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。
    用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:
    PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
    测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。
    重要级别: 定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为“ 高 ” ;反之亦然,一般而言,是 5 级划分。
    测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
    操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
    预期结果: 提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在

     

    实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。

     

     

    您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
    开发过程---需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详
    细设计(设计人员)、编码(开发人员)
    测试过程---需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单
    元测试设计、测试执行
    测试工作的整个过程都做过,擅长做测试设计
    过程决定质量,软件的过程改进正是为了提高软件的质量,将过往的种种经验和教训积累起

     

    来。

     

     

    在您所经历的测试活动中,参与人员有哪些?您所担任的角色是什么?
    有项目管理员、开发管理员、系统分析员、设计员、开发员、质量管理员、测试管理员、测
    试设计员、测试员
    担任过测试管理员、测试设计员、测试员
    测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?
    代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极
    限的输入数据、操作和环境设置等.
    可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果.
    可再现性:即对同样的测试用例,系统的执行结果应当是相同的。
    方法有等价类、边界值、因果图、状态图、正交法、大纲法
    面向对象的测试用例设计有几种方法?如何实现?
    给类中的每个构造函数设计一组测试用例
    组合类中的类变量、实例变量
    组合类中的各种方法
    根据前置条件和后置条件设计测试用例
    根据代码设计测试用例
    LoadRunner 分为哪三个模块?请简述各模块的主要功能。
    Virtual User Generator:用于录制脚步
    Mercury LoadRunner Controller:用于创建、运行和监控场景

     

    Mercury LoadRunner Analysis:用于分析测试结果

     

     

    你对测试最大的兴趣在哪里?为什么?
    最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无
    忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了 11,12 点,有部
    分是和人的性格有关,有部分需要后天的努力。但除了性格有关的 1,2 点我没有把握,其
    他点我都很有信心做好它。
    刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做
    测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想
    做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有
    挑战性,想做好测试的意志就更坚定了。
    我觉得做测试整个过程中有 2 点让我觉得很有难度(对我来说,有难度的东西我就非常感兴
    趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之
    前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个
    新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经
    理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能
    力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应
    用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本
    的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时
    候发现。
    第二是发现 BUG 的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就
    能发现大部分的 bug,还有一部分 bug 需要测试的过程中更了解所测版本的情况获得更多信
    息,补充测试用例,测试出 bug。还有如何发现 bug?这就需要在测试用例有效的情况下,
    通过细心和耐心去发现 bug 了,每个用例都有可能发现 bug,每个地方都有可能出错,所以
    测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug 都在里面发现的)。如
    何描述 bug 也很有讲究,bug 在什么情况下会产生,如果条件变化一点点,就不会有这个 bug,

     

    以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,

     

    可以帮开发人员初步定位问题。

     

    问题十五:你的测试职业发展目标是什么?
    测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试
    工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,按如何做好测试工程师的

     

    11,12 点要求自己,不断的更新自己改正自己,做好测试任务。

     

     

    二、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联
    系(如功能测试、性能测试„„)

    测试类型有:功能测试,性能测试,界面测试。
    功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个
    黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的
    内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错
    误推测、因果图和综合策略。
    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各
    项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载
    测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指
    标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能
    提供的最大服务级别的测试。
    界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印
    象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如
    同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成
    功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的
    畏惧与放弃中付诸东流。
    区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的
    功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关
    注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),
    是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,
    当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功

     

    能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

     

     

    三、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收 测试的
    区别与联系。

    黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要
    求。
    白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规
    格要求,所有内部成分是否以经过检查。
    软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑
    盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,
    检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒
    测试主要是为了发现以下几类错误:
    1、是否有不正确或遗漏的功能?
    2、在接口上,输入是否能正确的接受?能否输出正确的结果?
    3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
    4、性能上是否能够满足要求?
    5、是否有初始化或终止性错误?
    软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个
    打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,
    对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状
    态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行
    如下检查:
    1、对程序模块的所有独立的执行路径至少测试一遍。
    2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
    3、在循环的边界和运行的界限内执行循环体。
    4、测试内部数据结构的有效性,等等。
    单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、
    很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下
    某个特定函数的行为。
    单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有
    责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了
    证明这段代码的行为和我们期望的一致。
    集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:
    两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组
    件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程
    序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起
    测试。最后,将构成进程的所有模块一起测试。
    系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能
    提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
    系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并
    且遵循系统设计。
    验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,
    并且可以让最终用户将其用于执行软件的既定功能和任务。
    验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计
    把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步
    验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那

     

    样。

     

     

    四、当开发人员说不是 G BUG  时,你如何应付?
    开发人员说不是 bug,有 2 种情况,一是需求没有确定,所以我可以这么做,这个时候
    可以找来产品经理进行确认,需不需要改动,3 方商量确定好后再看要不要改。二是这种情
    况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是 BUG 的依据是什么?
    如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他
    的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行
    确认,如果要修改就改,如果不要修改就不改。其实有些真的不是 bug,我也只是建议的方式
    写进 TD 中,如果开发人员不修改也没有大问题。如果确定是 bug 的话,一定要坚持自己的

     

    立场,让问题得到最后的确认。

     

     

    五、为什么要在一个团队中开展软件测试工作?
    因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比 ISO 质量认证一样,测
    试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发
    现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出
    软件的质量情况。
    六、如果有机会转成开发人员,你会去做开发工作吗?
    如果公司确实需要我可以从事开发,但我还是喜欢做测试,我认为我更适合做测试。

    八 、一份测试计划应该包括哪些内容?
    背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、

     

    常用术语、提交文档、风险分析。

     

     

    九、针对于软件的行业背景,你如何理解软件的业务?
    阅读用户手册了解软件的功能和操作流程;
    看一些业务的专业书籍补充业务知识;
    如果有用户实际的数据,可以拿实际的数据进行参考;
    参考以前的用例和 BUG 报告;
    在使用软件的过程中多思考;

     

    多与产品经理交流。

     

     

    十、测试用例应包括哪些内容?
    编号、模块名称、编写人、日期、操作说明、输入数据、预期结果等。
    如何定位测试用例 的作用?
    组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认
    测试过程中什么是最重要的?
    需求、计划。
    什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。
    主要验证软件产品在不同版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软
    件新版本保留它早期版本功能的情况,交错兼容是验证共同存在的两个相关但不相同的产品
    之间的兼容性。
    对某软件进行测试,发现在 8 WIN98  上运行得很慢,怎么判别是该软件存在问题还是其软硬
    件运行环境存在问题?

    看软件的运行环境要求。如果符合要求则是程序存在问题,若不符合要求则是硬件系统存在
    问题

    展开全文
  • 不谋全局者,不足谋一域。   ...   作为项目经理,你做的每件事都应该紧扣大环境这一背景——忽视这一点就一定会失败。相对地,你同时还负责项目的日常细节。...因此,你必须依靠一手抓宏观,一手抓...

    不谋全局者,不足谋一域。

     

    以下正文转载来自:https://mp.weixin.qq.com/s/yvSzW9I1yqeKpzCTmQsqtQ

     

    作为项目经理,你做的每件事都应该紧扣大环境这一背景——忽视这一点就一定会失败。相对地,你同时还负责项目的日常细节。在以进度表为核心的项目计划中,战略描绘的是全局,而进度表则给出了按任务逐项详细分解的工作流。因此,你必须依靠一手抓宏观,一手抓微观,才能实现对项目执行的管理。

      

      对项目前景的展望,第一步是描绘全局——战略。我们按照当前的项目节奏会取得什么成果­它在整个项目中的运作机制是怎么样的?各项工作彼此之间有何关联?团队成员应该是知道这些问题的答案的——毕竟,他们会帮助你制定战略——但当他们关注具体的可交付成果时,可能会迷失原本的目标。因此,你需要时刻紧盯战略目标,检查支持这些目标的具体任务,以确保各项工作得以完成。当你了解的情况越来越多,你会希望确保相应的工作内容都按正确的顺序一一完成了。

      

      追踪项目执行的工作大部分通过项目进度表来完成。与团队成员合作以记录其真实的工作完成情况——每个任务的开始、结束、工作量或持续时间——看看这些会对下一个里程碑和项目结束期限有何影响。如果进度表得到了精心维护,那么一旦有什么事偏离了原计划,你就能很快发现。一旦你发现了实际情况与原计划的偏差,就应对照战略理清其整体影响。尽管你可能会考虑对进度表进行调整以继续执行原计划,但你最应该该做的其实是抵制这种诱惑。

      

      我见过有项目经理在进度表上乱了方寸,不断把各种任务调来调去,以显示他们能够赶上最终期限。等到他们发现自己做不到的时候,已经没时间用别的方法挽救整个项目了。如果他们曾经停下来,对全局进行评估,就会发现项目的漏洞已经大得无法弥补,完全不是在进度表上改几个链接就能搞定的。这些项目经理没能很好地掌控细节,而是被细节牵着鼻子走。

      

      当战略已经明显不可行时,你应当从工作中抽身,评估当前的状况,分析下一步的对策。对不同的假想情境进行剖析,你就能知道该在战略和进度表之间如何取舍。

      

      等到你决心已定,就需要对战略进行重新规划了。首先更新你的战略,然后按照这个战略更改任务,对进度表上的链接和持续时间进行更新。这是你在项目规划阶段的工作的延续。

      

      注意计划相关性

      

      作为项目经理,你有责任统筹全局。当项目团队成员专注于贯彻细节时,你需要确保这些细节能形成合力,得到切实可行的可交付成果。当他们专注于眼前的工作时,你的眼睛应当看到明天、未来几周和几个月后的发展。

      

      在你制定战略时,首先会考察如何规划以逐渐打造出最终产品。在这一战略的每个阶段,你都要确定需要完成打造最终产品的哪些部分以最终进行整合。你需要对当前的阶段有着透彻的了解,还要清楚它对后继的其他阶段有何影响。这么做的重要性在于,一旦在当前阶段遇到了问题,你就不得不作出决策,而这个决策能直接影响后继的阶段。在某个阶段匆忙抛出的应急方案可能与后继的阶段发生冲突。你之后又不得不取消这个应急方案。因此,最好是制定与未来的工作协调一致的解决方案来理会当前的问题。

      

      在你管理团队的时候,需要明确对最终产品而言哪些功能是必不可少的,并强调将项目的所有成果按时整合的重要性。团队成员必须明白他们需要完成哪些工作才能开始进行整合,而这些工作与其个人认为的首要任务可能并不完全重合。比如说,当满足绩效要求的难度较大时,开发人员可能会专注于解决这些限制因素,从而忽略了其他团队成员需要的功能。然后,如果被忽略的功能正是开始整合过程所需的,这种缺失就会耽误其他团队成员的工作。

      

      密切关注细节

      

      反思战略(即全局情况)不用花太多时间。你真正需要关注的重点是项目进度表,以及项目计划中的各支持环节:质量、风险、实现的手段等。在战略方面,你应当预判接下来几个阶段的情况,也就是提前几个月进行预测。而在项目进度表方面,你应该关注更短的时间段(通常为四周左右)内的项目细节。

      

      考察项目细节时,你需要处置的事项包括:

      

      整个团队即将取得的下一个成就:必须达成什么目标和达成的方法。考虑如何统合团队,避免团队成员各自为政。

      

      对哪些事项来说,时间比较关键:哪些必须提前完成或者前置期较长?是否该在某些事项上加快进度?团队成员的认知和首要任务与你不同,你觉得时间紧迫的事项可能会被他们忽视。你需要提醒他们,甚至协助他们的工作。

      

      有什么风险?风险应当与可交付成果相关联,而且也应该有个时间表。在你生产这些可交付成果或按照给定的时间表提前准备时,应当考虑该怎么做才能最透彻地了解风险,从而确定在最初的风险计划里有哪些措施是行之有效的,以及在必要时可以采取哪些其他的手段来规避风险。

      

      哪些会严重影响质量­我们能做些什么来巩固内部质量,比如说通宵测试?个别成员会在什么地方偷工减料(例如测试)?如果真有这种情况,对后继的阶段或最终的产品有何影响?然后,驱动员工采取行动的主要因素是他们对当前情况的理解,你需要确保这种理解不会对后继进度有什么损害。

      

      在规划阶段,你的项目计划可能会由于时间紧迫或无法预测未来,因而不得不进行假设或简化。现在你的时间更少,但同时你也开始了解到实际的进度。在你检查项目进度表时,重新梳理当初的假设,判断原来的时刻表是否依然合理。不要盲目地坚持已经失效的计划。不过,你还是必须努力坚持当初制定的里程碑。你必须尽一切努力避免违背自己的承诺。

      

      追踪和管理项目的执行情况

      

      尽管前瞻性的检查很重要,但你应当把更多的时间放在对项目执行的追踪和管理上。追踪就是判断和记录你当前的进度,并将其与标准计划进行比较,以衡量项目进展的健康程度。你为此对项目进行了快速评估,以便决定是否需要进行更详细的评估。如果你定期开展这项工作并且十分顺利,就有可能在问题刚冒出苗头时尽早发现它,从而得以留出更多时间来应对之。

      

      追踪工作首先从项目进度表开始。针对正在进行或近期完成的任务,定期(一般是一周)收集以下相关参数:所有已开始任务的实际开始时间;实际完成的工作量;正在进行的任务的剩余工作量;已完成任务的实际完工时间;已分配资源的分配比例(如与原分配计划不同)。

      

      这些就是你掌握的“实际情况”。

      

      上面列出的并不包括完成比例,因为这个的参数可以变得非常主观。我有很多次都在已经完成了90%的任务上卡了好几天甚至好几周。这个参数很能误导人:如果你只更新完成百分比,你的进度表处置软件会将实际开始时间设置为预定开始时间,将实际完工时间设置为预定完工时间等。那么当进度表理应进行变更时反而不会有变化。更新上面列出的参数将迫使你的进度表处置软件为你计算完成百分比。该软件还会根据实际数据调整下游任务的日期和里程碑。现在你可以轻松地看出项目中哪些部分进度超前,哪些进度落后。

      

      定期进行这样的追踪工作是很有必要的。只有经过正确地维护,你的进度表才会提醒你潜在的问题。而且,每周都对进度表进行更新的话,工作量并没有多少。如果你平时把更新工作放着不管,等做起来的时候就会叫苦连天。如果你的老板需要在几个小时后召开的会议上更新一下项目进展,你要么能随手拿出数据,要么就只能乱成一团,忙着更新早就过时的进度表。

      

      维持适时更新的进度表是管理一个项目必不可少的,但这还不够。项目的重点不是时间,而是创造有用的产品。时间只是一个限制因素。根据你的预期,你让项目团队将精力集中在代表整合过程开始的重要里程碑上。在追踪时,你必须识别项目的当前状态:是否所有人都在整合期限前完成了进度?他们是否已经开发出了项目所需的和原计划预定的功能?是否存在潜在风险?然后将这些答案综合起来,看对未来的里程碑有何影响。比如,你的预估数据是否要进行更新?

      

      在进行追踪时,记住你最宝贵的项目管理工具就是你的耳朵。倾听团队成员的反馈,你能从中了解到未曾预见到的问题和机会。利用你了解到的这些信息,你就能在成功管理项目方面大有作为。

      

      还有,虽说项目经理容易牵扯进当日最重要的事务,但他们恰恰不应该这么做。项目经理应当有选择性地参与处置对全局有重大影响的问题,比如说,下一个里程碑。

      

      收集信息

      

      为了追踪和管理项目的执行情况,你需要收集信息,即搞清楚项目进展的实际情况如何。收集信息有两个好方法,一是与团队成员个人沟通,二是召集整个团队开汇报会。这两种方法是互补的,所以你不能只用其中一种。

      

      一对一沟通:收集信息的最佳方式就是和你的团队成员保持联系。惠普为此引入了一个很有效的管理技巧,名为“走动式管理”(MBWA)。这不只是搜集项目状态信息的好方法,还能提高团队成员个人给整个项目带来的价值。实际上,只要团队成员手头没有什么十万火急的任务,你就可以走到他身边开始跟他聊。用这些问题作为开场白:工作怎么样了?有什么新问题或者麻烦吗?你需要什么帮助吗?

      

      然后你听他说,接着再问一些问题,这样做既是为了确保你理解他的话,也是为了加强沟通的效果。这个时候很适合讨论接下来要达到的里程碑,并验证该团队成员是否能及时完成项目。如果按时完成有困难,你们可以讨论一下有无其他方法,可能的话或许能就解决方案达成共识。如果做不到,就让该团队成员继续考虑。如果发现了特别好或者特别糟糕的消息,你可能需要即时召开团队会议来进行讨论。

      

      对于这类谈话,你需要谨记一点,这是一种简短的非正式的聊天而非拷问。你是为了帮助这名成员成功完成工作任务才和他交谈的。

      

      项目状态会议。你应当定期(通常为每周)与整个团队举行状态会议。尽管你在状态会议期间也在收集信息,但让团队专注于项目,尤其是下一个里程碑,这才是更重要的事。所以,在会上应该让每个人快速汇报最新的进展和遇到的问题,并讨论接下来数周的安排。在合作意识较强的团队环境中,团队成员会与状态会议之外的人分享遇到的问题并拟定解决方案,但有时候项目中也会出现意外情况,很适合拿到状态会议上讨论。

      

      一一询问每个成员,了解他们是否已经为即将开始的项目整合做好了准备,如果没有,是哪方面没有准备好。如果发现有人无法及时完成可交付成果,一定要召集大家集体讨论这一情况对其他团队成员的影响。让整个团队共同讨论不同的情境和潜在的应急方案。在讨论中要营造紧迫感。

      

      一定要让团队结合战略进行讨论。这样你才是在管理最终产品开发的节奏,而不是单纯地对单独的可交付成果或者时间进行管理。

      

      最后,会议开得越短越好。即使你原本打算开一个小时,也可以在15分钟之内就开完。如果没有讨论的必要,就不要多花哪怕一分钟。团队成员都愿意开短会。出现重大问题时就应当花多些时间开会,这一点是显而易见的,因为所有人都会参与讨论如何解决实际的问题。

    展开全文
  • 软件测试学习笔记(一)软件测试基础 课程链接 软件测试_中国大学MOOC(慕课) 1.什么是Bug,谈谈你对它的理解 Bug在英文上是小虫子、窃听器的意思,第一次bug的出现,正是一个小虫子落在巨型计算机的导致晶体管...

    软件测试学习笔记(一)软件测试基础

    课程链接 软件测试_中国大学MOOC(慕课)
    在这里插入图片描述

    1.什么是Bug,谈谈你对它的理解

    Bug在英文上是小虫子、窃听器的意思,第一次bug的出现,正是一个小虫子落在巨型计算机的导致晶体管短路,从而使得计算机出现问题。
    我理解的bug是在编译程序时以及后续运行时出现的错误,有很大的不可预测性,进行改错时还可能出现,改掉一个bug同时又生成更多的bug的情况。

    2.计算机中的第一个Bug是谁发现的?

    Grace Hopper女士发现了第一个bug

    3. 关于Bug的三个概念是什么,谈谈它们各自的特点。

    Failer 感染病毒但没有发病;error 发病了但没有死亡; false引发症状 功能不符合需求, 不正确或缺失的异常处理,不符合用户使用习惯的(要根据实际情况来), 超出用户期望的需求(画蛇添足,也不一定)
    bug的错误类型:代码错误、界面优化、设计缺陷、配置相关、安装部署、安全相关、性能问题

    4.什么是PIE模型?观测到一个Failer需要哪些必要条件?

    观测到Failer的必要条件Execution/Reachability(执行):执行时必须通过错误,Infection(感染):项目的状态必须是错误的,Propagation(传播):错误的中间状态必须传播到最后输出,使得观测到的输出结果和预期结果不一致,即失效。

    5.PIE模型的讨论带给我们的启发是什么?

    通过PIE模型能更深刻的理解bug的存在,测试未必能执行到Fault,执行到Fault也未必能引发error,能达到期望结果并不意味着软件都没有问题、没有缺陷了。
    认识fault,error,failer之间的关系

    6.测试用例由哪三部分构成?

    测试预演,通过现有数据,预演预期的结果,进行一个输入数据,查看程序运行的结果,若没有正常出现期望输出,则在过程中一定会有bug
    测试环境,测试情况、测试环境是很重要的前提条件,
    测试用例≠测试数据,测试用例是三个部分构成的

    7.谈谈你对测试和调试的认识

    测试是为了发现bug,调试是为了修复bug
    测试是测试人员进行的,只能找出存在bug,但不知道具体位置在哪里,需要提交bug信息给程序员,来让他们参照bug信息进行调试,来修复bug的错误。

    8.谈谈如何理解Verification(证实)与Validation(确认)

    Validation:将需求文档确定的写在合同文案中,将Verification确认,明确规格文档。
    Verification:是对照合同来检测,也就是软测试,以Validation来作为参考来进行验证测试。

    9.静态测试与动态测试最大的不同是什么?

    静态测试:去观测源代码,进行分析,浏览核心业务,对代码进行理解分析
    动态测试:执行程序,在运行过程中发现问题

    10.黑盒测试与白盒测试的区分点是什么?

    黑盒测试:不需要源代码,不需要知道软件的内部信息,多是用户来进行测试,只关注实际使用时产生的结果能不能达到预期(宏观测试)

    白盒测试:专业测试人士,通过源代码,来进行分析,知道软件内部的结构、逻辑、运行情况,通过专业知识,找出关键点,进行重点测试。(微观测试)

    11.灰盒测试是否等于白盒测试+黑盒测试?

    灰盒测试≠白盒+黑盒
    拿不到源代码,只了解部分的结构信息,要结合黑盒测试特点来进行测试用例的设计,既有白盒的相对微观特点,又有黑盒测试的宏观特性。

    12.测试分为哪四个层次?

    层次一:单元测试
    层次二:模块测试
    层次三:集成测试
    层次四:系统测试

    13.什么是V模型?

    V左侧:需求分析概要设计详细设计~编码实现(从高到低)
    V右侧:单元测试模块测试集成测试~系统测试(从低到高)

    14.测试过程都包括哪些步骤?

    1,第一步要做的是需求分析,根据测评中心收到项目的需求规格说明书和原型图来做需求分析。
    2,编写测试用例,
    3,测试开展
    4,编写测试报告
    5,反馈漏洞,再进行补充设计
    6,循环进行之前几步进行改进升级

    展开全文
  • 2021年软件测试面试题大全

    万次阅读 多人点赞 2020-11-30 15:16:59
    简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审...

    目录

     

    一、面试基础题

    简述测试流程:

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

    问:软件生存周期及其模型是什么?

    什么是软件质量?

    自动化测试脚本开发的主要步骤:

    目前主要的测试用例设计方法是什么?

    常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用

    测试的策略有哪些?

    单元测试的策略有哪些?

    正交表测试用例设计方法的特点是什么?

    软件的安全性应从哪几个方面去测试?

    需求测试的注意事项有哪些?

    问:你在测试中发现了一个  bug ,但是开发经理认为这不是一个  bug ,你应该怎样解决。

    问:给你一个网站,你如何测试?

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

    软件的安全性应从哪几个方面 去测试?

    软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么? ? 他们的编号和全称是什么? ?

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

    在您以往的工作中,一条软件缺陷(或者叫 Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

    什么是系统瓶颈?

    手机APP测试

    什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样?

    详细的描述一个测试活动完整的过程。

    在您以往的工作中,一条软件缺陷(或者叫  Bug )记录都包含了哪些内容?如何提交高质量的软件缺陷( Bug )记录?

     您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员 良好的人际关系的关键是什么?

    软件测试项目从什么时候开始?为什么?

    测试结束的标准是什么?

    您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

    请你回答一下性能测试有哪些指标,对一个登录功能做性能测试,有哪些指标,怎么测出可同时处理的最大请求数量

    什么是兼容型测试?兼容性测试侧重哪些方面?

    软件测试项目从什么时候开始,?为什么?

     

    二、测试实战面试题

    我现在有个程序,发现在Windows上运行的很慢,怎么判别是程序存在问题还是软硬件系统存在问题

    一个程序有n个变量采用边界值分析可以产生几个测试用例

    请设计一个关于ATM自动取款机的测试用例。

    如何测试一个 纸杯?

    我手上这支笔,请你根据这支笔设计测试用例

    测试手机开机键 

    如何回答登录功能怎么进行测试?

    如何回答京东购物车功能怎么进行测试?

    支付流程测试

    对于有系统大量并发访问,你会如何做测试,有什么建议

    请对这个系统做出测试用例:一个系统,多个摄像头,抓拍车牌,识别车牌,上传网上,网上展示

    请你说一说PC网络故障,以及如何排除障碍

    微信红包

    微信发朋友圈点赞

    如何对淘宝搜索框进行测试

    就linux下的CP命令设计测试用例。

    请问如果用户点击微博的关注图标但是app上面没有反应,应该怎么排查这个问题

    现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:

     

    三、基础知识点

    什么是桩模块?什么是驱动模块?

    什么是扇入?什么是扇出?

    8020原则:在需求分析开始到集成测试阶段引入测试手段,能发现所有缺陷的80%,系统测试阶段发现16%,在运行维护阶段经过长时间大量运行软件后,能够发现4%。起源于经济学。

    什么是耦合?什么是内聚?

    缺陷严重程度:

    缺陷优先级:

    缺陷状态:

    简单的软件缺陷生命周期:

    复杂的软件缺陷生命周期:

    什么是在线用户数?什么是并发用户数?

    分布式软件架构分为:

    测试人员的能力:

    简述负载测试与压力测试的区别。

    软件缺陷管理工具有哪些

    弱网测试

     

    四、智力题


    一、面试基础题

    简述测试流程:

    • 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。
    • 2、参加需求评审会议。
    • 3、根据最终确定的需求文档编写测试计划。
    • 4、编写测试用例(等价类划分法、边界值分析法等)。
    • 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。
    • 6、开发提交代码至SVN或者GIT ,配管搭建测试环境。
    • 7、执行测试用例,记录发现的问题。
    • 8、验证bug与回归测试。
    • 9、编写测试报告。
    • 10、产品上线。

    补充测试用例设计过程:
    
    根据需求得出测试需求
    
    设计测试方案,评审测试方案
    
    方案评审通过后,设计测试用例,再对测试用例进行评审

     

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

    使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

    软件测试的目的:

    • 测试是程序的执行过程,目的在于发现错误。
    • 一个成功的测试用例在于发现至今未发现的错误。
    • 一个成功的测试是发现了至今未发现的错误的测试。
    • 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
    • 确保产品满足性能和效率的要求。
    • 确保产品是健壮的和适应用户环境的。

     

    问:软件生存周期及其模型是什么?

    软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。

     

    什么是软件质量?

    软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

     

    自动化测试脚本开发的主要步骤:

    1、通过某些方式定位到我们要执行的对象、目标( Target)

    2、对这个对象进行什么操作(command)

    3、通过操作对定位到的元素赋值(value)

    4、添加断言操作

     

    目前主要的测试用例设计方法是什么?

    白盒测试:

    • 逻辑覆盖
    • 循环覆盖
    • 基本路径覆盖

    黑盒测试:

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

     

    常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用

    1)等价类划分划分

    等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。

     

    2)边界值分析法

    边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设(面试题目:什么样的工作环境适合你&#from一个常见的软件测试面试题来自end#lt;结束)计测试用例,可以查出更多的错误。

     

    使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

     

    3)错误推测法

    基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

    错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。

     

    4)因果图方法

    前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。

     

    5)正交表分析法

    有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

     

    6)场景分析方法

    指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。

     

    测试的策略有哪些?

    黑盒/白盒/灰盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)

    补充:公测是什么?还有没有其他的测试策略?测试策略和测试方法以及测试类型有什么区别?

    按测试 策略分类:
      1、静态与动态测试
      2、黑盒与白盒测试
      3、手工和自动测试
      4、冒烟测试
      5、回归测试;
      按测试阶段分类:单元测试、集成测试、系统测试;
      其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测12、恢复测试

    α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。

    β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成。

    回归测试(对软件的新版本测试时,重复执行上一个版本测试时的用例,是为了验证缺陷是否真正修复,确认修复后是否影响其它功能);

    冒烟测试:对新版本测试之前,先验证下软件的基本功能是否实现,是否具备可测性。

     

    单元测试的策略有哪些?

    逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析

     

    正交表测试用例设计方法的特点是什么?

    答:用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。

    补充:什么时候用系统测试,测试的每个阶段是什么,比如单元、集成、系统、公测,每个阶段需要什么技术,有什么要求

     

    软件的安全性应从哪几个方面去测试?

    • (1) 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议
    • (2) 加密机制
    • (3) 安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描
    • (4) 数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理
    • (5) 防病毒系统

    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

    用户认证安全的测试要考虑问题:

      • 明确区分系统中不同用户权限
      • 系统中会不会出现用户冲突
      • 系统会不会因用户的权限的改变造成混乱
      • 用户登陆密码是否是可见、可复制
      • 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
      • 用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
      • 系统网络安全的测试要考虑问题
      • 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
      • 模拟非授权攻击,看防护系统是否坚固
      • 采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,
      • 现在最常用的是 NBSI 系列和 IPhacker IP )
      • 采用各种木马检查工具检查系统木马情况
      • 采用各种防外挂工具检查系统各组程序的外挂漏洞

    数据库安全考虑问题:

      • 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
      • 系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这
      • 个系统的功能实现有了障碍)
      • 系统数据可管理性
      • 系统数据的独立性
      • 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

     

    α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环

    境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。

    β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在

    测试现场,Beta 测试不能由程序员或测试员完成。

    需求测试的注意事项有哪些?

    •        是否使用了公司的模板
    •   文档内容是否符合规范
    •   所有的需求是分级是否清析适当?
    •   所有的需求是否具有一致性
    •   需求是否可行(即,该需求组合有解决方案)
    •   需求可否用己知的约束来实现
    •   需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)
    •   所有的其它需求是交叉引用是否正确
    •   用户描述是否清楚
    •   是否用客户的语言来描述需求
    •   每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解
    •   是否所有的需求都是可验证的
    •   是否每条需求都具有独立性,即使发生了变化也不会影响其它需求
    •   性能指标是否明确
    •   非功能性需求是否得到充分表现
    •   是否完整列出适用的标准或协议
    •   标准和协议之间是否存在冲突

    问:你在测试中发现了一个  bug ,但是开发经理认为这不是一个  bug ,你应该怎样解决。

    1. 将问题提交到缺陷管理库里面进行备案。
    2. 要获取判断的依据和标准:     根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;     如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;   根据用户的一般使用习惯,来确认是否是缺陷;
    3. 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
    4. 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
    5. 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

     

     

    问:给你一个网站,你如何测试?

    1、查找需求说明、网站设计 m 等相关文档,分析测试需求。

    2、制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:

         功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试

    3、设计测试用例:

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

         链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。提交功能的测试。

         多媒体元素是否可以正确加载和显示。多语言支持是否能够正确显示选择的语言等。

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

    • 页面是否风格统一,美观
    • 文字检查
    • 对于必须但为安装的空间,是否提供自动下载并安装的功能
    • 控件是否正常使用
    • 页面布局是否合理,重点内容和热点内容是否突出                                                       

     

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

    300 个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。300 个用户在一个客户端上,需要更大的带宽。IP 地址的问题,可能需要使用 IP Spoof 来绕过服务器对于单一 IP 地址最大连接数的限制。所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

    你工作中遇到最具价值的bug,就是重大bug咯,例如app性能测试测哪些,那你就看一看性能测试的视频咯

     

    软件的安全性应从哪几个方面 去测试?

    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

    用户认证安全的测试要考虑问题:

    • 明确区分系统中不同用户权限
    • 系统中会不会出现用户冲突
    • 系统会不会因用户的权限的改变造成混乱
    • 用户登陆密码是否是可见、可复制
    • 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
    • 用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
    • 系统网络安全的测试要考虑问题
    • 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
    • 模拟非授权攻击,看防护系统是否坚固
    • 采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,
    • 现在最常用的是 NBSI 系列和 IPhacker IP )
    • 采用各种木马检查工具检查系统木马情况
    • 采用各种防外挂工具检查系统各组程序的外挂漏洞

    数据库安全考虑问题:

    • 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
    • 系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
    • 系统数据可管理性
    • 系统数据的独立性
    • 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

     

     

    软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么? ? 他们的编号和全称是什么? ?

    SQA 由一套软件工程过程和方法组成,以保证(软件的)质量。SQA 贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。

     

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

    1、寻找 Bug;

    2、避免软件开发过程中的缺陷;

    3、衡量软件的品质;

    4、关注用户的需求。

    总的目标是:确保软件的质量。

     

    在您以往的工作中,一条软件缺陷(或者叫 Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

    一条 Bug 记录最基本应包含:编号、Bug 所属模块、Bug 描述、Bug 级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;

    要有效的发现 Bug 需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认

    肯定,然后再向外发布如此才能提高提交 Bug 的质量。

     

     

    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

    黑盒测试的优点有:

           比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关;从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

    黑盒测试的缺点有:

           不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;自动化测试的复用性较低。

    白盒测试的优点有:

         帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。

    白盒测试的缺点有:

           程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

     

     

    什么是系统瓶颈?

    参考答案:

    瓶颈主要是指整个软硬件构成的软件系统某一方面或者几个方面能力不能满足用户的特定业务要求,“特定”是指瓶颈会在某些条件下会出现,因为毕竟大多数系统在投入前。

    严格的从技术角度讲,所有的系统都会有瓶颈,因为大多数系统的资源配置不是协调的,例如CPU使用率刚好达到100%时,内存也正好耗尽的系统不是很多见。因此我们讨论系统瓶颈要从应用的角度讨论:关键是看系统能否满足用户需求。在用户极限使用系统的情况下,系统的响应仍然正常,我们可以认为改系统没有瓶颈或者瓶颈不会影响用户工作。

    因此我们测试系统瓶颈主要是实现下面两个目的:

    -发现“表面”的瓶颈。主要是模拟用户的操作,找出用户极限使用系统时的瓶颈,然后解决瓶颈,这是性能测试的基本目标。

    -发现潜在的瓶颈并解决,保证系统的长期稳定性。主要是考虑用户在将来扩展系统或者业务发生变化时,系统能够适应变化。满足用户目前需求的系统不是最好的,我们设计系统的目标是在保证系统整个软件生命周期能够不断适应用户的变化,或者通过简单扩展系统就可以适应新的变化。

     

    手机APP测试

    :主要包括功能、性能测试、稳定性、兼容性、用户测试。

     

    性能测试:CPU占用/内存占用 /耗电测试 /流量消耗测试 /安装包大小 /加载时间测试 /核心功能相应时间 (①启动时间检测:检测App在终端上首次启动时间。 ②内存、CPU耗用检测:检测App在终端上运行时不同时段占用内存、CPU情况。 ③流量耗用检测:检测App在终端上运行时的网络流量消耗情况。 ④电池温度检测:检测App在终端上运行时,对终端的电池温度等性能指标的影响情况 )

     

    兼容性测试:屏幕分辨率 /网络状态,状态切换 /android版本 /安装卸载升级等 /权限设置 /与其他APP兼容性 (①安装卸载测试:测试App在指定终端上是否可正常安装、正常卸载,准确定位错误原因。 ②遍历测试:自动识别App可执行的功能,在一定时间内遍历App的不同功能界面,通过截图记录操作路径 并输出日志、定位异常现象。 ③运行稳定性测试:类似Monkey的随机性压力测试,测试App运行期的稳定性。 ④UI适配测试:测试App的UI与目标终端的屏幕是否适配,记录是否存在渲染失败、错位、黑边框、黑白屏等现象。)

     

    稳定性测试包括:服务器异常时稳定性 /外部事件影响(电话,短信等) /内存是否有溢出或者泄漏 /多线程问题 。

     

     

     

    什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样?

    参考答案:

    在同一时间点,支持多个不同的操作。

    LoadRunner中提供IP伪装,集合点,配合虚拟用户的设计,以及在多台电脑上设置,可以比较好的模拟真实的并发。

    集合点,即是多个用户在某个时刻,某个特定的环境下同时进行虚拟用户的操作的。集合点失败,则集合点的才操作就会取消,测试就不能进行。

     

     

    详细的描述一个测试活动完整的过程。

    答案:(供参考,本答案主要是瀑布模型的做法)

           项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后 SQA 进入项目,开始进行统计和跟踪开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。测试用例完成后,测试和开发需要进行评审。测试人员搭建环境开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现 BUG后提交给 BugZilla。开发提交第二个版本,包括 Bug Fix 以及增加了部分功能,测试人员进行测试。重复上面的工作,一般是 3-4 个版本后 BUG 数量减少,达到出货的要求。如果有客户反馈的问题,需要测试人员协助重现并重新测试。

     

    在您以往的工作中,一条软件缺陷(或者叫  Bug )记录都包含了哪些内容?如何提交高质量的软件缺陷( Bug )记录?

    在传统的 BugZilla 中,BUG 描述应该包括以下的信息和 BUG 产生对应的软件版本和模块开发的接口人员BUG 的优先级BUG 的严重程度BUG 可能属于的模块,如果不能确认,可以用开发人员来判断BUG 标题,需要清晰的描述现象BUG 描述,需要尽量给出重新 Bug 的步骤BUG 附件中能给出相关的日志和截图。高质量的 BUG 记录就是指很容易理解的 BUG 记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位,因此提交高质量的软件缺陷记录需要注意对 BUG 记录的描述质量多且准确。

     

     您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员 良好的人际关系的关键是什么?

           尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过 Email 等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。运用一些测试管理工具如 TestDirector 进行管理也是较有效的方法,同时要注意在TestDirector 中对 BUG 有准确的描述。在团队中建立测试人员与开发人员良好沟通中注意以下几点:一真诚二是团队精神三是在专业上有共同语言四是要对事不对人,工作至上当然也可以通过直接指出一些小问题,而不是进入 BUG Tracking System 来增加对方的好感。

     

    软件测试项目从什么时候开始?为什么?

          软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.

     

    测试结束的标准是什么?

           从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行 72 小时,目前 BugTracking System 中,本版本中没有一般严重的 BUG,普通 BUG 的数量在 3 以下,BUG 修复率 90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本 Release。如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

     

    您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

    开发过程---需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详细设计(设计人员)、编码(开发人员)测试过程---需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单元测试设计、测试执行测试工作的整个过程都做过,擅长做测试设计过程决定质量,软件的过程改进正是为了提高软件的质量,将过往的种种经验和教训积累起来。

    补充

    1.明确测试的目标,增强测试计划的实用性编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确

    2.坚持“5W”规则,明确内容与过程

    “5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

    3.采用评审和更新机制,保证测试计划满足实际需求

    测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。分别创建测试计划与测试详细规格、测试用例,应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

     

    请你回答一下性能测试有哪些指标,对一个登录功能做性能测试,有哪些指标,怎么测出可同时处理的最大请求数量

    参考回答:

    性能测试常用指标:

    从外部看,主要有

    1、吞吐量:每秒钟系统能够处理的请求数,任务数

    2、响应时间:服务处理一个请求或一个任务的耗时

    3、错误率:一批请求中结果出错的请求所占比例

    从服务器的角度看,性能测试关注CPU,内存,服务器负载,网络,磁盘IO

    对登录功能做性能测试

    单用户登陆的响应界面是否符合预期

    单用户登陆时后台请求数量是否过多

    高并发场景下用户登录的响应界面是否符合预期

    高并发场景下服务端的监控指标是否符合预期

    高集合点并发场景下是否存在资源死锁和不合理的资源等待

    长时间大量用户连续登录和登出,服务器端是否存在内存泄漏

    怎么测出可同时处理的最大请求数量

    可以采用性能测试工具(WeTest服务器性能),该工具是腾讯wetest团队出品,使用起来很简单方便,但测试功能相当强大,能提供10w+以上的并发量,定位性能拐点,测出服务器模型最大并发

     

    什么是兼容型测试?兼容性测试侧重哪些方面?

    兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了

    兼容和配置测试的区别在于,做配置测试通常不是在Clean OS下做测试,而兼容测试多是在Clean OS环境下做的。

    补充:做兼容测试的具体步骤:在列好的软硬件环境清单做冒烟测试,还是每一步都测试。测出不兼容,怎么和开发沟通,开发面对这些不兼容需要做什么。如果修复成本很高,怎么和产品经理沟通。和谁确认表单

     

     

    软件测试项目从什么时候开始,?为什么?

    软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发

    过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费

    的成本就越大.

     

     

    二、测试实战面试题

     

    我现在有个程序,发现在Windows上运行的很慢,怎么判别是程序存在问题还是软硬件系统存在问题

    1、检查系统是否有中毒的特征

    2、检查软件/硬件的配置是否符合软件的推荐标准

    3、确认当前的系统是否独立,即没有对外提供什么消耗CPU资源的服务

    4、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成

    5、在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况

    补充:每一步该怎么实现,需要用到什么技术

     

    一个程序有n个变量采用边界值分析可以产生几个测试用例

    4n+1

     

    请设计一个关于ATM自动取款机的测试用例。

    1)功能

    a)ATM所识别卡的类型;

    b)密码验证(身份登陆、是否为掩码、输入错误密码时是否提示,连续三次错误吞卡等);

    c)取款功能:

    i、金额多少的限制,单次最大最小提取金额、每天最大提取金额等);

    Ii、取款币种的不同,如人民币、美元、欧元等。

    d)是否提示客户操作完成后,打印相关操作信息;

    e)查询功能是否正常;

    f)转账功能是否正常;

    g)是否提示客户操作完成后,取回客户卡;

     

    2)性能

    a)是否有自动吞卡:非法客户\密码错误客户\规定时间内未完成相关操作功能的客户。(如果有,有无报警功能(保密报警))

    b)平均无故障时间,平均故障修复时间,输入密码后验证时间,出钞票时间,查询余额等待时间。

     

    3)易用性

    a)ATM各个操作功能(硬件)是否正常、易懂;

    b)ATM的界面显示是否友好;

    c)ATM是否支持英文操作;

    d)ATM是否存在异常(断电、黑客入侵)有自动保护(报警)功能;

     

    如何测试一个 纸杯?

    功能度:用水杯装水看漏不漏;水能不能被喝到

    安全性:杯子有没有毒或细菌

    可靠性:杯子从不同高度落下的损坏程度

    可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

    兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

    易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

    用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

    疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)

    放 24 小时检查泄漏时间和情况等

    压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

     

     

     

    我手上这支笔,请你根据这支笔设计测试用例

       首先我要测它的外观、颜色是否符合要求、所占的空间是多大、是否环保、接下来测它的质量、这支笔是否能够写字流畅、写出的自得颜色是否符合要求、能使用多长时间等

     

     

    测试手机开机键 

    功能测试:按下开机键,屏幕能否亮起

    性能测试:按下开机键,屏幕能否在规定时间内亮起

    压力测试:连续多次按下开机键,观察屏幕是否能一直亮起,到多久时间失灵

    健壮性测试:给定一个中了病毒的手机或者是淘汰许久的老机子,安歇开机键观察屏幕能否亮起

    可靠性测试:连续按下开机键有限次数,比如1万次,记录屏幕未亮起的次数

    可用性测试:开机键按下费不费力,开机键的形状设计是否贴合手指,开机键的位置设计是否方便

     

     

    如何回答登录功能怎么进行测试?

     

    首先,进行界面测试。

    查看界面上的所有元素是否齐全;

    没有输入内容时,是否有相应的提示语;

    验证码是否能够显示;

    移动鼠标,【登陆】按钮默认不能点击;

    【忘记密码】是否有个小问号“?”(其他都有);

     

    第二,进行功能测试。

    输入正确的用户名、密码、验证码,点【登陆】能登陆;

    输入正确的用户名、错误的密码、正确的验证码,提示用户名或密码错误;

    输入错误的用户名、正确的验证码,提示用户名或密码错误;

    输入正确的用户名、密码,错误的验证码,提示验证码错误;

    输入不符合规则的手机号或者邮箱应该提示错误;

    页面长时间不登陆和操作,验证码会不会过期;

    点【记住密码】,登录后退出,再次登陆是不是可以不输入密码;

    点【忘记密码】能够跳转到密码设置页面(至于是什么不用管,就是能不能跳转)

    只点击验证码图案,验证码能不能刷新;

    页面刷新,验证码图案能不能刷新;

    输入栏是否设置快速删除按钮;

    用户名和密码是否大小写敏感;

    用户名和密码前后有空格的处理;

    登陆成功,是否有记住密码功能;

    登陆失败后,不能记录密码的功能;

    新用户第一次登陆成功,是否有修改密码提示;

    用户登录过程中log中是否有个人信息明文打印;

    是否支持第三方登陆;

    刷新页面时是否会刷新验证码;

    输入密码的时候,大写键盘开启的时候要有提示信息  ;

    不同级别的用户,比如管理员用户和普通用户,登录系统后的权限是否正确;

     

    第三、业务安全测试。

    有没有登陆错误次数的限制;

    每次登陆错误之后有没有限制再次登陆的时间间隔;

    是否支持一个账号多地登陆;

    不同机型登陆,异地登陆是否有提醒  ;

    不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面;

     

    第四、兼容性测试。

    在相同浏览器的不同版本上打开登录页面,效果是否一致;在不同浏览器上打开登录页面,效果是否一致;在不同操作系统的不同浏览器打开登录页面,效果是否一致;在不同的屏幕分辨率下打开登录页面,效果是否一致;

     

    第五、代码安全性测试。

    用户输入登录信息登陆时,个人信息是不是会显示在浏览器地址栏;

    用户登陆的时候,通过抓包工具抓数据,密码是否加密;

    查看页面源代码,验证码是否直接显示在代码中;

    密码在后台储存时是否加密;

    是否可以使用登录的API发送登录请求,并绕开验证码校验;

    用户名和密码的输入框中分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面;

    用户名和密码的输入框中分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改;

     

    第六、页面性能测试。

    单用户登录的响应时间是否小于3秒;

    通过工具向登录页发起大量请求,查看页面响应时间的变化;

    通过工具对登陆功能进行并发测试;通过工具向登录页发起大量请求,查看页面何时崩溃;

    通过工具向登录页发起大量请求,查看页面崩溃后有没有良好的提示信息;

    通过工具向登录页发起大量请求,查看页面崩溃后多长时间能够恢复服务;

    弱网,不同网速时登陆的时间,网络切换和网络延迟时登陆界面是否正常;

     

    最后、易用性测试。

    页面是否美观;

    功能是否都可以使用;

    页面速度快不快;

    页面元素加载是否耗费网络流量;

    能不能第三方登陆;

    为什么不使用手机验证码登陆;

    输入框能否可以以Tab键切换。

     

     

    如何回答京东购物车功能怎么进行测试?

     

    1.功能测试

    a)、未登录时:

    将商品加入购物车,页面跳转到登录页面,登录成功后购物车数量增加。

    b)、登录后:

    所有链接是否跳转正确;

    商品是否可以成功加入购物车;

    没有限购要求的商品,添加数量能不能超过库存数;

    购物车商品总数是否有限制;

    商品总数统计是否正确;

    全选功能是否可用;

    删除功能是否可用;

    删除功能是否有提示;

    价格总计是否正确;

    商品文字太长时是否显示完整;

    购物车中下架的商品是否有标识,是否还能支付;

    新加入购物车商品排序(添加购物车中存在的店铺的商品和购物车中不存在的店铺的商品);

    是否支持快TAB、ENTER等快捷键;

    商品删除后商品总数是否减少;

    收藏功能是否可用;

    账号退出后,购物车添加的内容是否还在;

    购物车结算功能是否可用。

    限购商品按照规则购买完成后,还能不能再次添加购物车并购买;

    2.兼容性测试

    BS架构:不同浏览器测试,比如:IE,火狐,谷歌,360这些。

    APP:在主流的不同类型,不同分辨率,不同操作系统的手机上测试,华为,vivo,oppo等

    3.用户体验测试

    删除商品是否有提示;

    是否支持快捷键功能;

    是否有回到顶部的功能;

    商品过多时结算按钮是否可以浮动显示;

    购物车有多个商品时,能不能只对单个商品结算;

    界面布局、排版是否合理;

    文字是否显示清晰;

    不同卖家的商品是否区分明显。

    4.性能测试

    打开购物车页面要多长时间

     

     

    支付流程测试

    功能测试。

    用等价类和边界值,判断支付的金额;

    如果没有登陆能否支付,支付成功后是否可以正常跳转;

    支付方式是否支持扫码支付,第三方平台支付(支付包,云网等),语音支付,指纹支付;

    支付时是否需要身份验证,支付后有无手机短信提示,是否可以找他人代付;

    用边界值法有无支付额度限制,余额不足时有无提示,支付时是否是动态加密支付;

    待支付状态:订单是否可以正常支付;是否可以取消;有相同订单是否可以支付两次;

    是否可以扫码支付,输入错误的密码会怎样显示,有无错误次数限制;

    若支持扫码支付,二维码是否支持支付包和微信扫码,若两人同时扫描怎么处理;

    有无最小支付金额限制,无意义的支付金额0,重复支付如何处理;

    如果支付包含优惠金额,该怎么处理优惠额度;

     

    性能测试 

    弱网,无网时是否可以支付;

    退款到账时间,耗电量的多少;

    带负载情况下的响应时间和吞吐率,在某个时间段内同时访问系统的用户数量 ;

     

    压力测试

    多人同时付款;

    界面测试;

    支付界面有无错别字,排版是否合理,颜色搭配是否合理;

     

    兼容性测试

    是否可以跨平台,不同电脑机型下显示有无区别;

    安全性测试;

    若支付不成功是否原路退款,若支付成功,有无支付信息提示;

    用fiddler抓包尝试修改价格,对订单金额有无效验;

    直接输入需要权限的页面地址可用访问;

     

    接口测试

    第三方平台支付 

     

     

     

    对于有系统大量并发访问,你会如何做测试,有什么建议

    参考回答:

    如何做高并发系统的测试,一般而言,整体的测试策略是:先针对部分系统进行性能测试及压力测试,得到各部分的峰值处理性能,再模拟整体流程测试,重点测试整体业务流程以及业务预期负荷,着重测试以下几点:

    1、不同省份,不同运营商CDN节点性能,可采用典型压力测试方案

    2、核心机房BGP网络带宽,此部分重点在于测试各运行商的BGP网络可靠性,实际速率,一般采用smokeping,lxChariot等工具

    3、各类硬件设备性能,一般采用专业的网络设备测试工具

    4、各类服务器并发性能,分布式处理能力,可采用压力测试方案工具

    5、业务系统性能,采用业务系统压力测试方案

    6、数据库处理性能,这部分需要结合业务系统进行测试,以获取核心业务场景下的数据库的TPS/QPS,

    7、如果有支付功能,需要进行支付渠道接口及分流测试,此部分相对而言可能是最大的瓶颈所在,此外还涉及备份方案,容灾方案,业务降级方案的测试。

     

    请对这个系统做出测试用例:一个系统,多个摄像头,抓拍车牌,识别车牌,上传网上,网上展示

    参考回答:

    功能:

    1.每个摄像头都能抓拍车牌;

    2.每个摄像头抓拍到的车牌能正常交给系统处理;

    3.系统能够正确识别车牌;

    4.系统能够将识别出的车牌上传;

    5.上传至网络的车牌能够正常展示出来;

    一、功能测试

    1.使用正常的车牌,保持车牌静止,检查每个摄像头是否能抓拍车牌;

    2.使用类似非车牌的写有字的纸板,检查每个摄像头是否抓拍;

    3.使用正常的车牌,保持车牌较高速移动,检查每个摄像头是否能抓拍车牌;

    4.在多种情况下检查每个摄像头抓拍到的车牌能否正常交给系统处理,如临时断电、断网后能否正常将数据交给系统;

    5.使用抓拍到的正常的车牌,交由系统处理,检查系统能否识别车牌;

    6.使用非车牌的其他图片,交由系统处理,检查系统能否识别;

    7.在多种情况下检查系统能否将正常识别出的车牌进行上传,如临时断电、断网后未上传数据是否能继续上传;

    8.构造非车牌的其他内容的数据,检查系统能否将异常内容进行上传;

    9.检查上传至网络的车牌能否正常展示出来;

    10.上传非车牌的其他内容的数据,检查能否正常显示出来。

    二、性能测试

    1.同时向一个摄像头展示多个静止的车牌,检查摄像头能否抓拍到多个车牌;

    2.同时向一个摄像头展示多个较高速运动的车牌,检查摄像头能否抓拍到多个车牌;

    3.抓拍后,检查系统识别车牌的时间是否在需求要求的时间内;

    4.模拟大量抓拍照片同时交由系统处理,检查一定压力下系统能否正常识别车牌;

    5.模拟大量车牌同时上传,检查一定压力下能否上传成功。

    三、安全性测试

    1.检查是否能够通过给车牌加装饰物等方法,使摄像头无法抓拍或抓拍后系统无法正常识别车牌。

     

     

    请你说一说PC网络故障,以及如何排除障碍

    参考回答:

    (1)首先是排除接触故障,即确保你的网线是可以正常使用的。然后禁用网卡后再启用,排除偶然故障。打开网络和共享中心窗口,单击窗口左上侧“更改适配器设置”右击其中的“本地连接“或”无线网络连接”,单击快捷菜单中的“禁用”命令,即可禁用所选网络。接下来重启网络,只需右击后单击启用即可。

    (2)使用ipconfig查看计算机的上网参数

    1、单击“开始|所有程序|附件|命令提示符“,打开命令提示符窗口

    2、输入ipconfig,按Enter确认,可以看到机器的配置信息,输入ipconfig/all,可以看到IP地址和网卡物理地址等相关网络详细信息。

    (3)使用ping命令测试网络的连通性,定位故障范围

    在命令提示符窗口中输入”ping 127.0.0.1“,数据显示本机分别发送和接受了4个数据包,丢包率为零,可以判断本机网络协议工作正常,如显示”请求超时“,则表明本机网卡的安装或TCP/IP协议有问题,接下来就应该检查网卡和TCP/IP协议,卸载后重装即可。

    (4)ping本机IP

    在确认127.0.0.1地址能被ping通的情况下,继续使用ping命令测试本机的IP地址能否被ping通,如不能,说明本机的网卡驱动程序不正确,或者网卡与网线之间连接有故障,也有可能是本地的路由表面收到了破坏,此时应检查本机网卡的状态是否为已连接,网络参数是否设置正确,如果正确可是不能ping通,就应该重新安装网卡驱动程序。丢失率为零,可以判断网卡安装配置没有问题,工作正常。

    (5)ping网关

    网关地址能被ping通的话,表明本机网络连接以及正常,如果命令不成功,可能是网关设备自身存在问题,也可能是本机上网参数设置有误,检查网络参数。

     

     

    微信红包

    功能

    1.在红包钱数,和红包个数的输入框中只能输入数字

    2.红包里最多和最少可以输入的钱数  200  0.01

    3.拼手气红包最多可以发多少个红包  100

    3.1超过最大拼手气红包的个数是否有提醒

    4.当红包钱数超过最大范围是不是有对应的提示

    5.当发送的红包个数超过最大范围是不是有提示

    6.当余额不足时,红包发送失败

    7.在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号,

    7.1是否可以输入它们的混合搭配

    8.输入红包钱数是不是只能输入数字

    9.红包描述里许多能有多少个字符   10个

    10.红包描述,金额,红包个数框里是否支持复制粘贴操作

    12.红包描述里的表情可以删除

    13.发送的红包别人是否可以领取

    13.1发的红包自己可不可以领取   2人

    14. 24小时内没有领取的红包是否可以退回到原来的账户

    14.1  超过24小时没有领取的红包,是否还可以领取

    15.用户是否可以多次抢一个红包

    16.发红包的人是否还可以抢红包   多人

    17.红包的金额里的小数位数是否有限制

    18.可以按返回键,取消发红包

    19. 断网时,无法抢红包

    20.可不可以自己选择支付方式

    21.余额不足时,会不会自动匹配支付方式

    22.在发红包界面能否看到以前的收发红包的记录

    23.红包记录里的信息与实际收发红包记录是否匹配

    24.支付时可以密码支付也可以指纹支付

    25.如果直接输入小数点,那么小数点之前应该有个0

    26.支付成功后,退回聊天界面

    27.发红包金额和收到的红包金额应该匹配

    28.是否可以连续多次发红包

    29.输入钱数为0,"塞钱进红包"置灰

     

    性能

    1.弱网时抢红包,发红包时间

    2.不同网速时抢红包,发红包的时间

    3.发红包和收红包成功后的跳转时间

    4.收发红包的耗电量

    5.退款到账的时间

     

    兼容

    1.苹果,安卓是否都可以发送红包

    2.电脑端可以抢微信红包

     

    界面

    1.发红包界面没有错别字

    2.抢完红包界面没有错别字

    3.发红包和收红包界面排版合理,

    4.发红包和收到红包界面颜色搭配合理

     

    安全

    1.对方微信号异地登录,是否会有提醒   2人

    2.红包被领取以后,发送红包人的金额会减少,收红包金额会增加

    3.发送红包失败,余额和银行卡里的钱数不会少

    4.红包发送成功,是否会收到微信支付的通知

     

    易用性(有点重复)

    1.红包描述,可以通过语音输入

    2.可以指纹支付也可以密码支付

     

     

    微信发朋友圈点赞

    参考回答:

    功能测试:

    点赞某条朋友圈,验证是否成功

    接口测试:

    点赞朋友圈,验证朋友能否收到提示信息

    性能测试

    点赞朋友圈,是否在规定时间显示结果,是否在规定时间在朋友手机上进行提示

    兼容性测试

    在不同的终端比如ipad,手机上点赞朋友圈,验证是否成功

     

     

    如何对淘宝搜索框进行测试

    参考回答:

    一, 功能测试

    1. 输入关键字,查看: 返回结果是否准确,返回的文本长度需限制

    1.1输入可查到结果的正常关键字、词、语句,检索到的内容、链接正确性;

    1.2输入不可查到结果的关键字、词、语句;

    1.3输入一些特殊的内容,如空、特殊符、标点符、极限值等,可引入等价类划分的方法等;

    2. 结果显示:标题,卖家,销售量,单行/多行,是否有图片

    3. 结果排序:价格 销量 评价 综合

    4.返回结果庞大时,限制第一页的现实量,需支持翻页

    5. 多选项搜索:关键字 品牌 产地 价格区间 是否天猫 是否全国购

    6. 是否支持模糊搜索,支持通配符的查询

    7, 网速慢的情况下的搜索

    8. 搜索结果为空的情况

    9. 未登录情况和登录情况下的搜索(登录情况下 存储用户搜索的关键字/搜索习惯)

    二.性能测试:

    1压力测试:在不同发用户数压力下的表现(评价指标如响应时间等)

    2负载测试:看极限能承载多大的用户量同时正常使用

    3稳定性测试:常规压力下能保持多久持续稳定运行

    4内存测试:有无内存泄漏现象

    5大数据量测试:如模拟从庞大的海量数据中搜索结果、或搜索出海量的结果后列示出来,看表现如何等等。

    三. 易用性:交互界面的设计是否便于、易于使用

    1依据不同的查询结果会有相关的人性化提示,查不到时告知?查到时统计条数并告知?有疑似输入条件错误时提示可能正确的输入项等等处理;

    2查询出的结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则列示方便定位,显示字体、字号、色彩便于识别等等;

    3标题查询、全文检索、模糊查询、容错查询、多关键字组织查询(空格间格开)等实用的检索方式是否正常?

    4输入搜索条件的控件风格设计、位置摆放是否醒目便于使用者注意到,有否快照等快捷查看方式等人性化设计?

    四. 兼容性

    1WINDOWS/LINUX/UNIX等各类操作系统下及各版本条件下的应用

    2IE/FIREFOX/GOOGLE/360/QQ等各类浏览器下及各版本条件下、各种显示分辨率条件下的应用

    3SQL/ORACLE/DB2/MYSQL等各类数据库存储情况下的兼容性测试

    4简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试

    5IPHONE/IPAD、安卓等各类移动应用平台下的兼容性测试

    6与各相关的监控程序的兼容性测试,如输入法、杀毒、监控、防火墙等工具同时使用

    五. 安全性

    1被删除、加密、授权的数据,不允许被SQL注入等攻击方式查出来的,是否有安全控制设计;

    2录入一些数据库查询的保留字符,如单引号、%等等,造成查询SQL拼接出的语句产生漏洞,如可以查出所有数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬网等。

    3通过白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患;

    4对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制;

     

     

     

     

    就linux下的CP命令设计测试用例。

    功能

     

    拷贝的文件

    1)大小:0k, 1k, 10k, 100k, 1000k…

    2)类型:二进制文件、文本文件、mp3、avi、压缩文件…

     

    文件源目录

    1)文件中包含各种类型的文件

    2)目录深度为0,1,2,3…

     

    文件目标目录

    1)目标目录中存在与源文件同名同类型的文件

    2)目标目录中存在与源文件同名不同类型的文件

    3)目标目录中存在与源文件不同名同类型的文件

    4)目标目录中存在与源文件不同名不同类型的文件

     

    异常

     

    参数异常

    1)包含特殊字符

    2)参数长度超过限制

    3)源目录不存在

    4)目标目录不存在

     

    文件异常

    1)文件没有拷贝权限

    2)非法的文件格式和内容

     

    存储介质异常

    1)存储介质由损坏

    2)拷贝前存储介质已满

    3)拷贝中存储介质存满

     

    执行过程异常

    1)拷贝过程中删除源文件

    2)拷贝过程中删除目标文件

     

    性能

    1)拷贝大文件

    2)拷贝源目录中存在大量小文件

    3)跨文件系统拷贝

    4)跨存储介质拷贝

    5)并发执行拷贝

     

    关注性能点:拷贝完成时间,CPU,内存,磁盘IO

     

     

     

    请问如果用户点击微博的关注图标但是app上面没有反应,应该怎么排查这个问题

    • 是否手机出现故障,是否手机缓存过多造成内存不够用
    • 是否手机网络连接不稳定(弱网/无网),若是,有无网络差提示
    • 是否手机内存溢出(关注人数达上限否)
    • 是否是版本问题或者是安装包问题(更新系统,重新安装安装包)

     

    现有一个学生标准化考试批阅试卷,产生成绩报告的程序。其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:

    标题:这一组只有一个记录,其内容为输出成绩报告的名字。

    试卷各题标准答案记录:每个记录均在第80个字符处标以数字"2"。该组的第一个记录的第1至第3个字符为题目编号(取值为1一999)。第10至第59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。该组的第2,第3……个记录相应为第51至第100,第101至第150,…题的答案。

     

    每个学生的答卷描述:该组中每个记录的第80个字符均为数字"3"。每个学生的答卷在若干个记录中给出。如甲的首记录第1至第9字符给出学生姓名及学号,第10至第59字符列出的是甲所做的第1至第50题的答案。若试题数超过50,则第2,第3……纪录分别给出他的第51至第100,第101至第150……题的解答。然后是学生乙的答卷记录。

    学生人数不超过200,试题数不超过999。

    程序的输出有4个报告:

        a)按学号排列的成绩单,列出每个学生的成绩、名次。

        b)按学生成绩排序的成绩单。

        c)平均分数及标准偏差的报告。

        d)试题分析报告。按试题号排序,列出各题学生答对的百分比。

    分别考虑输入条件和输出条件,以及边界条件。给出右表所示的输入条件及相应的测试用例。

     

     

     

    三、基础知识点

    什么是桩模块?什么是驱动模块?

    桩模块:被测模块调用模块

    驱动模块 调用被测模块

     

    什么是扇入?什么是扇出?

    扇入:被调次数,扇出:调其它模块数目

     

    8020原则:在需求分析开始到集成测试阶段引入测试手段,能发现所有缺陷的80%,系统测试阶段发现16%,在运行维护阶段经过长时间大量运行软件后,能够发现4%。起源于经济学。

     

    什么是耦合?什么是内聚

    耦合:对一个软件结构内各个模块之间互连程度的度量。

    内聚:一个模块内各个元素彼此结合的紧密程度。强内聚,松耦合。

     

    缺陷严重程度

    致命(Fatal)、严重(Critical)、一般(Major)、较小(Minor)。

     

    缺陷优先级

    立即解决P1、高优先级P2、正常排队P3、低优先级P4。

     

    缺陷状态

    打开(open)、修正(fixed)、重新打开(reopen)、关闭(closed)、重复(Duplicate)、推迟(Deferred)、保留(On hold)、不修复(wontfix)。

     

    简单的软件缺陷生命周期:

    发现(new)-打开-修复-关闭。

     

    复杂的软件缺陷生命周期:

    新建-打开-Bug审查(设计需要修改/延期/关闭)-关闭。

       新建-打开-是否清楚,可再现(不能再现缺少信息返回到打开状态)-修正-关闭。

     

    什么是在线用户数?什么是并发用户数

    在线用户数:

    用户同时在一定时间段的在线数量

    并发用户数:

    某一时刻同时向服务器发送请求的用户数

     

     

    分布式软件架构分为

    B/S架构(浏览器、web版)       C/S架构:客户端(先进行安装)

     

    测试人员的能力

    搭建环境的能力(配置JDK、数据库、Tomcat/Apace、程序放相应路径下、检查配置是否成功‚数据库管理和设置ƒ程序设计C++④测试方法论⑤工具的使用能力(QC\QTP\LR\Bugfree)

     

    简述负载测试与压力测试的区别。

    参考答案:

     

    压力测试(Stress Testing)

    压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。

     

    负载测试(Volume Testing)

    用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。在使整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。

     

    软件缺陷管理工具有哪些

    答:   QC ALM BugFree jira Mantis 禅道

     

    弱网测试

     

     

     

    四、智力题

    一,5只猫 五分钟捉5只老鼠 请问100分钟捉100只老鼠需要多少只猫?

    答案:5只

    二,圆桌,两个人,轮流放硬币,不能重叠,半径为1,某一方不能放下去,则为输。问先手赢 后手赢

    答案:先手赢,圆桌对称,先手先放,后手都可以找对称位置,除了圆心

    三,3升的杯子一个,5升的杯子一个,杯子不规则形状 问怎么得到4升的水 水无限多

    答案:略

    四,晚上有四个人过桥,一次只能过两个人,但是只有一只手电筒,四个人过桥时间分别是1,2,5,8,求最短过桥时间

    答案:甲乙,甲回,丙丁,乙回,甲乙,15分钟

    五,有十张扑克牌,每次可以只出一张,也可以只出两张,要出完有多少种出法

    答案:89 F(9)=N F(8)=P F(10)=F(8)+F(9) F(1)=1 F(2)=2

    六,井盖为什么是圆的

    答案:用料少,受压均匀,成本低

    七,两个盲人各买了一白一黑两双袜子,不小心弄混了,问他们自己怎么分成刚好每人一白一黑

    答案:袜子是连在一起的

    八, 烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定15分钟?

    答案:烧两根,一根点两头,一根点一头,烧完,剩下的把另一投点了,烧完,看重合点

    九,海盗分金,五人,过半同意,否则喂鱼,问1方案?

    答案:45,5反对,4喂鱼,所3(100,0,0),故2(98,0,1,1),故1(97,0,1,2,0)

    十,岔路口,通往1,2,两人,一人必说谎,一人永真话,怎么去1

    答案:问一人,另一人会回答那条路去1,回答答案必假

    十一,果冻,有黄色、绿色、红色三种,闭眼抓同种颜色两个,抓取多少个,可确定有两个同色果冻?

    答案:根据抽屉原理,4个

    十二,下水道为什么是圆的

    答案:方便人员进出,井盖不容易掉落,不易如棱角磨损节约材料,保护车辆 和行人的安全

    十三,一共100个球,两人轮流拿,每人每次最多拿5个,最后一个拿的人赢;如果我先拿,怎么拿一定会赢?

    答案:每次拿的球总数控制为6;第一次拿4个;

    十四,有120g面粉,现有一个天平和一个2g的砝码以及一个7g的砝码,最少称几次可以将面粉分为70g与50g

    答案:4次,第一次120g=111g+9g  第二次111g=93g+18g  第三次93g=57g+36g  第四次50g=57g-7g  70g=7g+36g+18g+9g

    十五,扔鸡蛋不碎问题(腾讯校招面试题)?

    答案:14次

    十六,智力题:一千瓶中有一瓶毒药 十只小白鼠找出这瓶毒药

    答案:2^10=1024,小白鼠编号1-10,瓶子编号1-1000,把瓶子的编号转变为二进制数,第几位1,就给第几个小白鼠喝

     

     

     

    第二篇测试面试总结---->测试面试二

    参考资料:

     

    https://www.nowcoder.com/ta/review-test

    https://zhaiyujia.blog.csdn.net/article/details/81604085

    https://blog.csdn.net/weixin_30363263/article/details/80110247?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

    https://my.oschina.net/u/4296112/blog/3569084

    https://bbs.huaweicloud.com/blogs/172015

    https://zhuanlan.zhihu.com/p/122493284

    https://blog.csdn.net/weixin_44264744/article/details/104948526?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.control#%E4%B8%89%EF%BC%8C%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95Jmeter%2CFiddler

     

    展开全文
  • 问:软件测试的原则? 答: 软件测试的八个原则 所有测试的标准都是建立在用户需求之上 始终保持“质量第一”的觉悟,当时间和质量冲突时,时间要服从质量 需求阶段应定义清楚产品的质量标准 软件项目一启动...
  • 软件测试常考面试题-软件测试面试宝典(临阵磨刀)
  • 软件测试有前途吗

    2021-07-15 17:58:57
    目前的软件开发与软件测试已不再是小作坊式的规模了,它需要大量的人力来协同工作,每个人的工作都是必不可少的一部分,所以需要在全局上把握,从宏观上考虑,这就是软件测试策略的由来,但是具体测试工作还是微观上...
  • 软件测试final

    2020-09-18 08:31:29
    什么是软件测试 使用人工或自动手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需要或是弄清楚预计结果与实际结果之间的差别 软件测试说明书 软件测试的原则 尽早地和及时地测试,从...
  • 软件测试

    2018-05-04 17:32:06
    1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?首先,将问题提交到缺陷管理库里面进行备案。然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际...
  • 完美测试:软件测试系列最佳实践

    千次阅读 2012-04-16 10:09:51
    《完美测试:软件测试系列最佳实践》 朱少民 主编 ISBN 978-7-121-16078-3 2012年3月出版 定价:59.00元 16开 360页 本书可以使读者领会到软件测试的距离之美、空间之美、技巧之美、辩证之美以及贯穿测试过程...
  • 软件测试面试题

    千次阅读 2018-10-29 10:59:04
    问:软件测试目的和概念 软件测试的目的是保证软件质量,找出软件中的缺陷,发布的软件符合用户的需求。 预防缺陷的发生。 问:回归测试的攻略 a、完全覆盖。  优点:可靠、回归完整。靠自动化完成完全回归。 ...
  • 软件测试基础 复习笔记编辑&整理:Xu An一、基本概念 1、软件=程序+文档+数据+服务 2、软件的特点:依托具体的硬件设备运行 3、软件测试定义:确保被测系统满足要求 4、测试目的:不是发现缺陷,而是满足用户...
  • **转载来源**:**http://blog.csdn.net/mj813/article/details/52451355** 测试-面试
  • 这里记录过去一周我们看到的软件测试及周边的行业动态,周五发布。 本周刊开源(GitHub: SoftwareTestingWeekly ),欢迎提交 issue,投稿或推荐软件测试相关的内容。 科普 将军赶路 不追小兔 前几天在网上...
  • 软件测试面试

    千次阅读 2017-06-27 09:25:40
    详细的描述一个测试活动完整的过程 1-项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。...
  • 如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入Python自动化测试技术群:953306497群里的免费资料都是笔者十多年测试生涯的精华。...
  • 软件测试-面试题

    2019-07-22 17:28:51
    软件测试面试题分类 对于正在需找软件测试工程师岗位的小伙本们,有不少人思路不是特别清晰,也不知道该如何准备一次完美的面试。下面小编总结了关键的12个问题,能够比较完美地回答好这12个或者12类问题,相信能够...
  • 现在谈谈怎么学习软件测试技术。软件测试实际上是一种逻辑思维的方法或手段,因为事物总是一分为二的,这是自然规律,也是科学依据。软件产品的功能可以实现,就有可能有些功能实现不了或实现不全面,或没有满足客户...
  • 软件测试面试题收集

    千次阅读 2021-04-25 09:17:20
    一、京东软件测试岗面试30题(干货) 1、黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 1)等价类划分: 等价类是指某个输入域的子集合.在该子集合中,...
  • 软件工程之软件测试

    千次阅读 热门讨论 2019-11-11 20:54:11
    软件测试 软件测试的过程 测试过程需要三类输入: (1)软件配置。包括软件需求规格说明、软件设计规格说明、源程序代码等; (2)测试配置。包括测试计划、测试用例等。 (3)测试工具。为了提高软件测试效率,...
  • 文章目录1)软件测试岗位有哪些?1、功能测试(手工测试)工程师主要工作内容:2、自动化测试工程师主要工作内容:3、性能测试工程师主要工作内容:4、测试开发工程师主要工作内容:2)测试职业的发展方向1、偏向于...
  • 34岁,男,转行软件测试晚不晚,转了好找工作吗?目前,我赖以谋生的事业,就是教软件测试的学生即便这样,我若遇到你,都会建议你,别转测试了,太晚了,况且,你并不是真的热爱软件技术不说更多的话打击你了找个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,832
精华内容 1,932
关键字:

宏观微观软件测试