软件的生命周期
计划阶段-〉需求分析-〉设计阶段-〉编码->测试->运行与维护
**测试用例:**用例ID,测试项,重要级别,优先级别,预置条件,测试标题,操作步骤,预期结果。(用例编辑人,执行结果,版本号,备注)
问:你在测试中发现了一个bug ,但是开发经理认为这不是一个bug ,你应该怎样解决?
首先,将问题提交到缺陷管理库里面进行备案。
然后,要获取判断的依据和标准:
- 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
- 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
- 根据用户的一般使用习惯,来确认是否是缺陷;
- 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
设计用例是如何保证覆盖率?
1、需求的分析:显示的需求,隐示的需求,业务流程,特定的场景
2、功能点的分析:具体的功能,组合性的操作,GUI界面的,业务数据的完整性和不完整性,
问:给你一个网站,你如何测试?
首先,查找需求说明、网站设计等相关文档,分析测试需求。
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
**设计测试用例:**1、功能性测试可以包括,但不限于以下几个方面:
- 链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
- 提交功能的测试。
- 多媒体元素是否可以正确加载和显示。
- 多语言支持是否能够正确显示选择的语言等。
2、界面测试可以包括但不限于一下几个方面:
- 页面是否风格统一,美观
- 页面布局是否合理,重点内容和热点内容是否突出
- 控件是否正常使用
- 对于必须但未安装的控件,是否提供自动下载并安装的功能
- 文字检查
3、性能测试一般从以下两个方面考虑:压力测试;负载测试;
4、数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
5、安全性测试:
- 基本的登录功能的检查
- 是否存在溢出错误,导致系统崩溃或者权限泄露
- 相关开发语言的常见安全性问题检查,例如SQL注入等
- 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
6、兼容性测试,根据需求说明的内容,确定支持的平台组合:
- 浏览器的兼容性;
- 操作系统的兼容性;
- 软件平台的兼容性;
- 数据库的兼容性
7、开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
定期评审,对测试进行评估和总结,调整测试的内容。
在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner 进行测试。
- 建立测试计划,确定测试标准和测试范围
- 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等
- 根据测试用例,开发自动测试脚本和场景:
**录制测试脚本:**新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入"about:blank";在打开的浏览器中进行正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。
**设置测试场景:**针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标;针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃;执行测试,获取测试结果,分析测试结果
问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
- 300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。
- 300个用户在一个客户端上,需要更大的带宽。
- IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。
- 所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。
- 同时,还需要给予相应的权限配置和防火墙设置。
**软件生存周期(Software life cycle)**又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。
一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段。每个阶段有明确的任务。
**软件测试的目的:**1证明软件能够工作,2、监测发现错误,3、预防管理质量,
什么是软件质量?
概括地说,软件质量就是"软件与明确的和隐含的定义的需求相一致的程度"。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、
以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。
正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。
**测试用例设计方法是什么?**白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖 黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法
**软件的安全性应从哪几个方面去测试?**软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
用户认证安全的测试要考虑问题: 明确区分系统中不同用户权限 、系统中会不会出现用户冲突 、系统会不会因用户的权限的改变造成混乱 、用户登陆密码是否是可见、可复制 、
是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入 系统 、系统网络安全的测试要考虑问题 、
测试采取的防护措施是否正确装配好,有关系统的补丁是否打上 、模拟非授权攻击,看防护系统是否坚固 、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,
现在最常用的是 NBSI 系列和 IPhacker IP ) 、采用各种木马检查工具检查系统木马情况 、采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题: 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)、系统数据的完整性
(我刚刚结束的企业实名核查服务系统中就曾存在数据 的不完整,对于这个系统的功能实现有了障碍) 、系统数据可管理性 、系统数据的独立性 、
系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
什么是测试用例 什么是测试脚本 两者的关系是什么?
为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
测试脚本是为了进行自动化测试而编写的脚本,测试脚本的编写必须对应相应的测试用例
静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么? 他们的编号和全称是什么?
SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。
软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。
软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
软件产品质量特性是什么?
功能性:适应性、准确性、互操作性、依从性、安全性。
可靠性:成熟性、容错性、易恢复性。
可使用性:易理解性、易学习性、易操作性。
效率:时间特性、资源特性。
可维护性:易分析性、易变更性、稳定性、易测试性。
可移植性: 适应性、易安装性、遵循性、易替换性
**软件测试的策略是什么?**在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。
软件测试分为几个阶段 各阶段的测试策略和要求是什么?
和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:
单元测试测试策略:
自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。
孤立单元测试策略:最好的单元测试策略。
集成测试的测试策略:
大爆炸集成:适应于一个维护型项目或被测试系统较小
自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
基于进度的集成
优点:具有较高的并行度;能够有效缩短项目的开发进度。
缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
系统测试的测试策略:
数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试
软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?
**单元测试阶段:**各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。
**集成测试阶段:**集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。
**系统测试阶段:**将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。
测试人员在软件开发过程中的任务是什么?
1、尽可能早的找出系统中的Bug;
2、避免软件开发过程中缺陷的出现;
3、衡量软件的品质,保证系统的质量;
4、关注用户的需求,并保证系统符合用户需求。
总的目标是:确保软件的质量。
在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
一条Bug记录最基本应包含:
bug编号;
bug严重级别,优先级;
bug产生的模块;
首先要有bug摘要,阐述bug大体的内容;
bug对应的版本;
bug详细现象描述,包括一些截图、录像....等等;
bug出现时的测试环境,产生的条件即对应操作步骤;
高质量的Bug记录:
-
通用UI要统一、准确
-
尽量使用业界惯用的表达术语和表达方法
-
每条缺陷报告只包括一个缺陷
-
不可重现的缺陷也要报
-
明确指明缺陷类型
-
明确指明缺陷严重等级和优先等级
-
描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置
-
短行之间使用自动数字序号,使用相同的字体、字号、行间距
-
每一个步骤尽量只记录一个操作
-
确认步骤完整,准确,简短
-
根据缺陷,可选择是否进行图象捕捉
附加必要的特殊文档和个人建议和注解
-
尽量使用短语和短句,避免复杂句型句式
-
缺陷描述内容
黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,
会遇到哪些问题:基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。
黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。
白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。
白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。
在实际工作和面试过程中面试官一般会问你是如何对一个项目进行测试,首先在拿到一个项目后,
**我们主要通过以下方面去考虑测试:**功能测试、UI测试、兼容性测试、性能测试、安全测试、网络测试。如果是APP的话,需要加上:安装、卸载及覆盖安装测试,耗电量测试等等其他业务逻辑上的测试,
例如:如何测试一个纸杯?
功能性:用水杯装水看漏不漏;水能不能被喝到
**安全性:**杯子有没有毒或细菌
UI测试:考虑杯子界面设计是否符合用户的需求,
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透,等等其他的测试。
测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
软件测试计划是指导测试过程的纲领性文件:
- 领导能够根据测试计划进行宏观调控,进行相应资源配置等
- 测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等
- 便于其他人员了解测试人员的工作内容,进行有关配合工作
包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,
可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划编写6要素(5W1H):
-
why------为什么要进行这些测试;
-
what---测试哪些方面,不同阶段的工作内容;
-
when---测试不同阶段的起止时间;
-
where---相应文档,缺陷的存放位置,测试环境等;
-
who---项目有关人员组成,安排哪些测试人员进行测试;
-
how---如何去做,使用哪些测试工具以及测试方法进行测试
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
详细的描述一个测试活动完整的过程。(供参考)大致可以写成(需求理解与分析->编写测试计划->测试用例的设计->编写测试用例->执行测试纪录结果->缺陷跟踪->得出测试结论编写测试报告。)
引用与指针有什么区别?
-
引用必须被初始化,指针不必。
-
引用初始化以后不能被改变,指针可以改变所指的对象。
-
不存在指向空值的引用,但是存在指向空值的指针。
Internet 采用哪种网络协议?该协议的主要层次结构?Internet 物理地址和IP 地址转换采用什么协议?
TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。
ARP (Address Resolution Protocol)(地据址解析协议)
软件验收测试包括正式验收测试、alpha测试、beta测试三种测试。
系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。
设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划
设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?
设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例需要考虑的四个基本要素是输入、输出、操作和测试环境;另外,测试用例需要考虑的是测试类型(功能、性能、安全......),这部分可以参照TP做答。此外,还需要考虑用例的重要性和优先级)
什么是回归测试?
回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。
单元测试、集成测试、系统测试的侧重点是什么?
单元测试针对的是软件设计的最小单元--程序模块(面向过程中是函数、过程;面向对象中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查\动态执行跟踪
集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能.
系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.
测试结束的标准是什么?
1、从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有一般严重的BUG,普通BUG的数量在3以下,
BUG修复率90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本Release。
2、如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。
一套完整的测试应该由哪些阶段组成?
可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
LoadRunner 分为哪三个模块?请简述各模块的主要功能。
Virtual User Generator:用于录制脚步
Mercury LoadRunner Controller:用于创建、运行和监控场景
Mercury LoadRunner Analysis:用于分析测试结果
一份测试计划应该包括哪些内容?
背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。
针对于软件的行业背景,你如何理解软件的业务?
阅读用户手册了解软件的功能和操作流程;看一些业务的专业书籍补充业务知识;如果有用户实际的数据,可以拿实际的数据进行参考;参考以前的用例和BUG报告;在使用软件的过程中多思考;多与产品经理交流。
什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。
主要验证软件产品在不同版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本功能的情况,交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。
需求测试的注意事项有哪些?
是否使用了公司的模板、文档内容是否符合规范、所有的需求是分级是否清析适当、所有的需求是否具有一致性、需求是否可行(即,该需求组合有解决方案)、需求可否用己知的约束来实现、
需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)、所有的其它需求是交叉引用是否正确、用户描述是否清楚、是否用客户的语言来描述需求、
每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解、是否所有的需求都是可验证的、是否每条需求都具有独立性,即使发生了变化也不会影响其它需求、性能指标是否明确、
非功能性需求是否得到充分表现、是否完整列出适用的标准或协议、标准和协议之间是否存在冲突。
性能测试的流程?
1.测试需求分析2.测试计划制定与评审3.测试用例设计与开发4.测试执行与监控5.分析测试结果6.编写性能测试报告7.测试经验总结
缺陷(bug)记录应包含的内容?
缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因;
您所熟悉的软件测试类型都有哪些? 请试着分别比较这些不同的测试类型的区别与联系( 如功能测试、性能测试......)
易用性测试-界面的友好性,操作方便性等。
功能测试-系统中功能性需求的满足
安全性测试-系统是否存在安全隐患和漏洞
性能测试-系统在大并发下的响应速度和健壮性
TCP/IP 五层协议:应用层、传输层、网络层、数据链路层、硬件层
**http和https的区别:**首先了解基本概念:超文本传输协议(Http,HyperText Transfer Protocol)
1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,http是80,https是443。
4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
B **ug预防:**分析问题-找到具体的原因-解决问题-总结问题-建立预防方法-规范流程制度
B/S 与 C/S 区别 **:**1硬件环境,2安全级别要求,3程序构架,4软件重用,5系统维护,6处理问题,7用户借口,8信息流
Session 与 Cookie 不同出 **:**1存取方式,2隐私安全,3有效期,4服务器负担,
Web 测试点 :
**功能:**链接,表单,数据校对,基本按钮功能,数据库,cookies,考虑缓存,流程测试。
** 性能:**连接速度,负载,压力,
**用户界面:**图形,内容,表格,整体界面,导航测试
兼容性:平台,浏览器,分辨率,打印机,modom,
** 安全性:** 目录设置,登录,日志文件上传,session与cookie**,**
** 接口性**:服务器,外部连接,错误处理
**常见的web端问题:**1、浏览器本身缩放大小比例,2、缓存问题,3、网络延迟以及数据加载过慢问题;4、电脑屏幕分辨率问题,5、不同浏览器版本兼容问题;
为什么要做接口测试?
提高测试效率,提升用户体验,降低产品研发成本,让隐含的bug提前暴露,让功能测试更加顺手,减少底层bug出现,让前端研发更流畅, 缩短开发周期, 提高开发质量.
如何去做接口测试?
在进行接口测试前,了解接口文档接口的请求方式:
1、GET和POST请求:
如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送。
GET请求和POST请求的区别:
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
2、根据接口文档编写接口用例
1)、通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,常传入,是否可以返回正确的结果。
2)参数组合
3)接口安全:1、绕过验证,2、绕过身份授权3、参数是否加密4、密码安全规则
4)异常验证:也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。
5)、根据业务逻辑来设计用例
3、使用工具校验接口用例查看状态码
1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果
get和post的区别:
-
Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
-
Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。
-
Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
-
Get执行效率却比Post方法好。Get是form提交的默认方法。
没有接口文档如何测试?
1.没有接口文档,那就需要先跟开发沟通,然后整理接口文档(一般都是开发写的)
2.没有接口文档,可以抓包看接口请求参数,然后不懂的跟开发沟通
如何分析一个bug是前端还是后端的?
这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯。
接口测试用例:
接口测试工具 postman
postman断言?关联测试
1、搞清楚什么是断言?(断言是指自己在测试某个数据或开发程序某一行时设置一个断点调试,程序运行到这一行就会停住,然后查看各个变量当前的值,出错的话,调试到出错的代码行即显示错误)
不同的接口有共同的数据联系
给你50块钱去买一包烟是如何考虑的?
这道题考察的是作为一个测试给您了一个功能你是如何去测试的,
个人观点:1:首先是需求,50块钱买什么烟,去哪里买,买多少钱的烟,2:功能:买烟的地方,买烟的速度,找了多少钱,3:异常情况:买到假烟,买便宜了,买贵了。
测试当中经常使用的adb命令
adb logcat -f / 文件路径/文件名称产看手机的日志信息,在出现bug的时候可以通知过这个命令帮助定位查看
adb shell 进入Android终端命令,然后可以通过一些命令来查看手机相关信道息
adb push 向手机发送文件
adb pull 从手机获取文件
adb shell am start -W 包名/界面名 查看应用启动时间
adb install apk文件 通过adb命令行安装app
adb uninstall 包名 通过adb命令行卸载app
adb --help 查看adb 命令帮助信息
adb shell pm list package 查看所有包名
adb shell monkey --p 包名 --v 测试次专数 指定应用进行monkey测试