软件测试基础面试题

1、原生怎么测试?

哒:拿原生APP/程序来说,这个就相当于是可以直接下载安装在系统中的app/程序。你需要从安装测试,兼容性测试,性能测试和功能测试等方面进行测试。首先安装测试,将拿到的安装包安装到windows or ios or Android 等系统中,按照安装步骤看是否有报错导致无法安装,安装步骤是否和预期一致;兼容性测试,测试看程序在不同手机型号或者电脑型号上是否正常运行,和其他常用程序一起运行是否出现问题等;功能测试,在安装成功之后,需要进行程序本身的功能测试,验证程序的功能。性能测试,在功能测试通过后,需要在性能上对程序进行一些优化;

2、webview怎么测?

哒:WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。主要从兼容性和功能性上面看,首先功能层面,请求一个远程网络地址,或者请求一个存放在本地的一个页面看能否按预期正常的展示在视图里面;从兼容性层面上,如果请求页面格式为除HTML格式,看能否展示出来,从用户易用性上说,测试展示出来的页面宽度和高度是否适合用户浏览,是否有无法展示出来的区域,或者展示的不清楚的区域。

3、数据库怎么测试?

哒:增删查改。查询上,精确查询一条数据,模糊查询多条数据,查询条件为中文,特殊字符,空格,有字符长度限制的,输入超过限制的字符进行查询,使用多条件联查,与或非,异或等,输入不存在的值进行查询。增:增加一条满足所有字段格式的数据,看是否成功添加,看字段有哪些条件限制,依次对这些字段造数据,进行破坏性测试,看是否有添加成功。设置了主键或唯一的字段,增加重复值,看能否添加成功,改:修改一条存在的数据,是否可以按预期改动,修改一条不存在数据,针对主键字段修改成重复数据,针对非空字段修改成null,针对数字类型修改成字符类型等等。删:正常删除一条存在的数据,删除一条不存在的数据,多条同时删除,如果有外键的话且已被其他表应用,看是否可以删除。

4、线程和进程的区别?

哒:它们的根本区别:进程是操作系统分配资源的基本单位,线程则是任务调度的基本单位;

进程由多个线程组成,是线程的容器:

在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享CPU、内存等资源。


5、软件测试有哪些原则?

软件测试应尽早执行,并贯穿于整个软件生命周期
软件测试应追溯需求
测试应由第三方来构造
穷举测试是不可能的,要遵循 Good-enough 原则
必须确定预期输出(或结果)
必须彻底检查每个测试结果
充分注意测试中的群集现象(缺陷的二八定理:80%的缺陷出现在20%的代码中)
严格执行测试计划,排除测试的随意性
注意合法合理的输入,也要注意非法的非预期的输入
检查程序是否做了不该做的
测试应从“小规模”开始,逐步转向“大规模”
反复使用同样的测试会使软件具有抵抗力
关注缺陷的修复

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

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

7、cookie、session、token 的区别?

cookie:这是能永久保存在用户浏览器中的,并以key/value 形式存储的用户数据。

              cookie由服务端生成,发送给浏览器,浏览器保存,然后用户下次请求同个网站时,会把该cookie一同发送给该服务端。可以省去用户的某些操作,比如登陆页面,将存放了用户登陆信息的cookie,一起发送给服务端,那么用户可以省区登陆相关操作。

session:保存在服务端,但不会永久保存,会在用户关闭浏览器或者超过时限后删除。服务器想要知道当前是哪个用户在请求自己,服务端会给每个客户端配有不同的标识,客户端访问的时候带上这个标识,那么服务器就知道是谁在请求,并作出相关处理。

       当服务端是分布式负载均衡的话,那么下一步请求到了另外一台服务器那么session是没有的。

token:在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,tokens 是多用户下处理认证的最佳方式。

        基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中,而是由服务端生成之后发送给客户端,然后由客户端来发送给服务端,服务端再验证客户身份。所以和session的保存方式来相比较,如果服务端是负载均衡的,负载均衡器可以将用户信息从一个服务端传到另外服务端。

8、堆和栈是什么?有什么区别?

    哒:1. 当线程创建的时候,操作系统(OS)为每一个系统级(system-level)的线程分配栈。通常情况下,操作系统通过调用语言的运行时(runtime)去为应用程序分配堆。 2. 栈附属于线程,因此当线程结束时栈被回收。堆通常通过运行时在应用程序启动时被分配,当应用程序(进程)退出时被回收。 3. 当线程被创建的时候,设置栈的大小。在应用程序启动的时候,设置堆的大小,但是可以在需要的时候扩展(分配器向操作系统申请更多的内存)。 4. 栈比堆要快,因为它存取模式使它可以轻松的分配和重新分配内存(指针/整型只是进行简单的递增或者递减运算),然而堆在分配和释放的时候有更多的复杂的 bookkeeping 参与。

 

软件测试的定义 软件测试的目标 软件测试的原则 软件测试中验证和确认的区别 软件测试按照测试的基本策略可分为哪两种并加以详细说明 整个软件生命周期中,需要进行哪几项测试 系统测试的策略有哪些 文档测试主要包括哪些内容 停止测试的条件 测试的基本文档包括哪些 简要的说明一下软件工程中的V模型 为什么要开展测试工作 测试团队在项目中的基本责任是什么 软件缺陷的定义是什么 软件错误的分类有哪些 一个优秀的测试工程师需要具备的素质有哪些 软件质量的定义是什么 质量有哪6个特性 CMMI的中文名称是什么,共分为几级 缺陷报告的定义是什么 缺陷的来源有哪些 缺陷主要有哪些状态 软件缺陷报告有哪些属性 书写缺陷报告的基本原则(5C原则)是什么 一般情况下,缺陷报告的组织结包括哪些内容 缺陷报告需要注意的问题有哪些 一般缺陷严重等级如何划分,并描述每个严重等级对应的错误内容 缺陷优先级常用的划分方法是什么 列出一些控件的名称 测试用例的定义 测试用例设计的步骤 测试用例设计的基本思想是什么 测试用例执行的步骤有哪些 黑盒测试用例设计有哪些方法 按照覆盖度由低到高写出白盒测试用例设计的方法 写出全球化、国际化和本地化的简称和它们之间的关系 国际化测试的特殊需求有哪些 本地化测试的基本内容是什么 一套完整的测试应该由哪些阶段组成 如何理解压力、负载、性能测试 所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗 软件测试人员就是QA吗 如何编写提交给客户的测试报告 当开发人员说不是bug时,你该如何应付
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值