软件测试面试题整理-持续更新
写在前面,大部分是CP来的,希望对你有一点帮助,主要就是看你对这些东西的熟悉程度,面试造飞机,上班拧螺丝大多如此,其实我觉得吧实际工作中,能做到高效简单最好,那那面试官怎么去判断评定你呢,我想大概就这些了吧!
加油!<!--more-->
测试计划内容(这个一般不会问)
测试范围. 时间进度安排. 资源配置(人员和设备). 存在的风险和规避的措施等
测试报告内容(不唯一,但都差不多)
数据的统计:人力设备时间的统计,用例覆盖率的统计. 用例执行率统计,缺陷的统计(数量,严重级别,来源. 类型),遗留缺陷及存在的风险和规避措施,对测试对象 的评估/测试结论。
linux搭建测试环境步骤(这个建议去找找更详细的,自己组织一下语言,不同公司环境不同等等)
- 用``xftp`将安装包传到服务器
- 用
unzip进行解压 - 进行安装(用
rpm命令安装 apache mysql等安装包)yum,apt install..等等 - 将程序包拷贝到
/var/www/html下面(部署) - 到
/etc/httpd/conf/httpd.conf修改配置文件,启动服务service mysqld start - 启动服务
service httpd start - 访问系统
如何查看服务器日志?如何查看手机日志?
用 crt/xshell/ssh连接linux服务器,到服务软件下的logs目录下用 more/less命令查看 more /etc/httpd/logs/error.log
安卓 adb logcat
ios itools工具连接电脑看
在测试项目当中什么情况下要用到数据库?怎么用的?
在测试项目当中什么情况下要用到linux?怎么用的?
数据库 比对数据的准确性(比如某个订单支付成功后,订单表中该订单支付状态字段值由0变成1) 搭建环境
linux 查看/修改系统配置. 查看日志 搭建环境
app性能如何测试
首先选择三款高中低档的手机,使用性能狗分别连接手机,选择好xxx应用,然后点击运行,持续操作xxx应用15分钟(涵盖所有的主要业务流程),最后保存性能结果。再拿性能指标和性能结果进行对比,主要看cpu 内存 占比是否符合要求,(如果有流畅度要求的,还要考虑fps和jank的影响)。如果cpu或者内存占用相对指标过高,需要结合操作事件和cpu或者内存占用情况分析哪些操作可能引起异常,然后沟通开发进行优化
fiddler在项目中怎么使用的?(有没有用fiddler做过改包?
1).当发现一个BUG以后,可以抓取这个动作的包,然后查看该动作的请求和响应,可以帮助我分析BUG产生的原因
(例如:点击一个按钮没有效果,抓包以后发现请求没有发出,或者参数发送有误,那么这就是一个客户端的BUG。如果没有收到响应,或者响应数据有误,则是服务器BUG)。有时可以将抓到的数据贴到BUG单里面,能够帮助开发定位BUG。
2).在接口测试时,有时候接口文档没有详细,需要通过fiddler抓取请求的参数和接口地址
3)做过,篡改数据,断点. 伪响应. 伪请求)
4)弱网测试:模拟2g(几k到十几k,看文字)/3g(十几到几十k,看图片)/4g(几百k到几M 看视频)网络情况
1 | if (m_SimulateModem) { |
怎么做app稳定(压力)性测试
1.打开手机的开发者调试工具,用usb数据线链接手机
2.adb shell pm list packages 查看你的手机所有的安装包
3.运行 adb shell monkey -p com.tencent.news -v -v -v -s 18 100
//对包 com.tencent.news进行压力测试/ / -p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试) / /-v参数:表示查看 monkey执行过程的信息(日志级别)(-v越多越详细,最多三个)/ /数字100:表示测试事件数为100
s 重复上一次的压力事件(一模一样) 时间间隔?throttle
用fiddler抓包抓取移动端的包怎么抓?
因为fiddler抓包的原理就是通过代理,所以被终端需要和安装fiddler的电脑在同一个局域网中,开启fiddler的远程连接,fiddler主菜单 tools->fiddleroptions–>connect并记住端口号 8888,再到手机设置去配置代理,然后重启fiddler保证设置生成。
怎么抓https包?:需要安装一个根证书
Adb:Android调试桥adb(Android Debug Bridge)是一个功能多样的通用命令行工具,可让您与模拟器实例或连接的 Android设备进行通信。adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:
客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
守护进程 (adbd):在设备上运行命令。守护进程在每个设备上作为后台进程运行。
服务器:管理客户端和守护进程之间的通信。服务器在开发计算机上作为后台进程运行。Adb环境配置 linuxadb 包含在 Android SDK 平台工具软件包中。可以使用 SDK 管理器下载此软件包,管理器会将此软件包安装在 android_sdk/platform-tools/
Android SDK下载:http://tools.android-studio.org/index.php/sdk
此处下载的是 r24.41,下载对应的exe安装包后,双击安装即可。
安装路径:D:\android-sdk
安装后启动 SDK Manager.exe 程序,勾选 Android SDK Platform-tool下载
环境变量设置
Path变量中添加 Android SDK Platform-tool的安装路径:D:\android-sdk\platform-tools;Adb环境配置检测
控制台输入adb检验是否安装成功
输入 adb version查看 adb版本
Adb的工作原理
当启动某个 adb 客户端时,客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它将启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。
启用adb调试
要在通过 USB 连接的设备上使用 adb,您必须在设备的系统设置中启用 USB 调试(位于开发者选项下)。
在搭载 Android 4.2 及更高版本的设备上,“开发者选项”屏幕默认情况下处于隐藏状态。如需将其显示出来,请依次转到设置 > 关于手机,然后点按版本号七次。返回上一屏幕,在底部可以找到开发者选项。<font color=red>打开USB调试模式 </font>
注意:当连接搭载 Android 4.2.2 或更高版本的设备时,系统会显示一个对话框,询问您是否接受允许通过此计算机进行调试的 RSA 密钥。这种安全机制可以保护用户设备,因为它可以确保只有在您能够解锁设备并确认对话框的情况下才能执行 USB 调试和其他 adb 命令。
Adb常用命令
连接夜神模拟器
adb connect 127.0.0.1:62001
查看设备信息
adb devices
可以先用该命令扫描模拟器端口,再用上面的连接命令,模拟器端口不固定所以先扫描
adb shell
Android系统的底层是linux系统,shell是linux系统的字符交互界面。
进入adb shell后有两种状态显示:#代表有root权限,$代表没有root权限。
退出adb shell
exit
在设备安装APK
默认安装adb install <apkName>
覆盖安装Adb install -r <apkName>
卸载APK
- 查看设备上安装的包名
adb shell pm list package(s) #查看设备上所有包名
adb shell pm list package(s) -3 #查看设备上安装的三方应用的包名
rpm -qa 执行命令删除
adb uninstall <appPackage> 卸载应用
文件读取写入
- 将文件从PC写入到设备
adb push <local> <remote>
- 将文件从设备读取到PC
adb pull <remote> <local>
LOG抓取
adb logcat -v time >D:\test\1.txt 抓取系统全日志
adb logcat -v time -s <appPackage> >D:\test\log.txt 抓取app日志
抓取应用崩溃日志
Crash日志adb shell dumpsys dropbox --print >D:\drop.txt
ANR日志(无响应日志)adb pull /data/anr anr
屏幕截图
adb shell screencap sdcard/sc.pngadb pull sdcard/sc.png C:\Users\admin\Pictures/sc.png
adb服务启动和关闭
adb kill-server 关闭adb服务adb start-server 开启adb服务
注:如果5037端口被占用,可使用如下命令释放端口:
C:\Users\admin>netstat -ano | findstr "5037"
1 | TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 11072 |
taskkill -f -pid XXX
adb进阶
封装成bat批处理脚本,随时可以运行
截屏.bat
adb shell screencap sdcard/sc.png
adb pull sdcard/sc.png C:\Users\admin\Pictures/sc.png
adb shell rm sdcard/sc.png
获取app的packageName/ActivityName
adb shell dumpsys window w |findstr \/ |findstr name=
APP压力测试
monkey
adb shell monkey -p 包名(com…) -v -v -v 次数
软件包名 日志详细度(V越多越详细) 产生随机事件数量
- s 重复上一次的压力事件(一模一样) 时间间隔?throttle
adb shell monkey -p com.cjapp.superhouse -s 110 --throttle 1000 -v -v -v 1000
写出十个adb命令 分别举例说明
1 | adb connect 127.0.0.1:5555 |
http协议的内容,分别解释
请求部分:
请求行:请求类型 服务器地址 接口地址(url资源地址) 协议类型 协议版本
请求头部:客户端的信息
请求正文(请求体):发送给服务器的内容(参数)
请求部分:
请求类型 服务器地址 接口地址(url资源地址)协议类型 协议版本
请求头部:客户端的信息
响应部分:
协议类型 版本 响应状态码 响应描述
响应头部:服务器的相关信息
响应正文:服务器回复客户端的信息
get和post请求是服务器接口测试当中两种主要请求类型,他们有什么区别
区别:
1 .get请求的参数在请求行,post在请求体里面
2 .get请求的参数内容有长度限制,post没有限制
3 .post请求的安全性相对get较高
接口测试的优点(为什么要做接口测试)
(开发一部分后端接口的时候可以进行测试) 也可以在系统测试后作为补充测试
1 .一个接口层面的问题可能导致功能层面的5、6个问题,所以提前做接口测试可以大量减少功能层面的问题,
2 .另外,接口测试能测到很多功能层面测不了的场景,比如购买商品数量为负数的情况,可以绕过客户端,直接给服务器发请求,达到非法攻击目的。
如何做接口测试
拿到接口文档(包含接口名称,地址,请求类型,请求的参数名,预期的返回结果种类)进行接口用例编写,用例设计的几种情况包括有输入正常的参数信息,缺少必要参数信息,参数输入空值,输入错误参数等,然后用postman执行用例,具体操作:将接口地址输入到postman接口地址中,选择post或者get接口类型,在body或者请求行里面增加参数名和参数值 ,最后点击发送,查看返回结果与预期结果是否相符。
比如,发帖接口。根据接口文档,知道了该接口属于post类型,服务器地址和接口路径publish,这个接口有5个参数,分别是:标题、内容、用户id、发帖类型、是否匿名,有两种响应情况,发帖成功返回{result:1},发帖失败返回{result:-1}。先编写了这个接口的测试用例,然后使用postman工具,选择post类型,在URL位置填入服务器地址和接口路径,在body位置填入5个参数和参数的值,然后修改参数值的字符类型、长度、是否为空等各种情况,查看响应是否正确。如果发现响应不匹配,或者数据库里面数据不对,就会提交BUG。
如何定位分析bug:?
大的方面就两种方式:一是抓包接口定位分析,二是看系统日志。<!--more-->首先说抓包接口,如果你是web项目的话,一般工作中使用方式比较多的是使用浏览器自带的F12抓包看接口请求。
如果是app客户端之类的,一般采用fiddler等工具进行抓包接口。不管哪种方式,目的都是一样的,就是通过查看接口,从而去定位分析属于前端问题还是后端问题。
软件测试流程(面试这样回答一看就是背的八股文)
作需求分析-需求评审-编写测试计划-设计测试方案-编写用例测试-评审用例-搭建测试环境,准备测试数据-冒烟测试-执行用例-提交bug-回归测试-编写测试报告
简述测试流程
- 阅读相关技术文档(如产品PRD、UI设计、产品流程图等. 。
- 参加需求评审会议。
- 根据最终确定的需求文档编写测试计划。
- 编写测试用例(等价类划分法、边界值分析法等. 。
- 用例评审(主要参与人员:开发、测试、产品、测试leader)。
- 开发提交代码至SVN或者GIT ,配管搭建测试环境。
- 执行测试用例,记录发现的问题。
- 验证bug与回归测试。
- 编写测试报告。(bug率满足用户需求)
- 产品上线。
补充测试用例设计过程:
根据需求得出测试需求
设计测试方案,评审测试方案
方案评审通过后,设计测试用例,再对测试用例进行评审
软件测试的目的:?
测试是程序的执行过程,目的在于发现错误。
一个成功的测试用例在于发现至今未发现的错误。
一个成功的测试是发现了至今未发现的错误的测试。
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
确保产品满足性能和效率的要求。
确保产品是健壮的和适应用户环境的。
问:软件生存周期及其模型是什么?
软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为”生命周期模型”(Life Cycle Model. 。
什么是软件质量?
软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。
自动化测试脚本开发的主要步骤
通过某些方式定位到我们要执行的对象、目标( Target)
对这个对象进行什么操作(command)
通过操作对定位到的元素赋值(value)
添加断言操作
目前主要的测试用例设计方法是什么?
白盒测试
- 逻辑覆盖
- 循环覆盖
- 基本路径覆盖
黑盒测试
- 边界值分析法
- 等价类划分
- 错误猜测法
- 因果图法
- 状态图法
- 测试大纲法
- 随机测试场景法
查找命令find / -name abc.log
测试用例设计方案
- 功能:重点关注软件产品,模块有没有实现具体的功能(通过测试设计方法论设计用例来验证.
- 性能:功能操作的响应时间,服务端的CPU,内存,网络,IO的消耗情况
- 安全:未作深入测试,了解敏感信息是否加密,SQL注入等
- 网络:关注无网络,弱网,网络切换的测试点
- 兼容性:不同版本兼容,前端考虑分辨率,不同浏览器版本,手机方面考虑操作系统兼容性
- UI界面:UI测试点,按钮是否可用,界面跳转,布局等等测试点
- 专项测试:针对一些独有的功能进行测试
常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用
1. 等价类划分划分
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
2. 边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设(面试题目:什么样的工作环境适合你&#from一个常见的软件测试面试题来自end#lt;结束. 计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
3. 错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。
4. 因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
5. 正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6. 场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
测试的策略有哪些?
黑盒/白盒/灰盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略.
补充:公测是什么?还有没有其他的测试策略?测试策略和测试方法以及测试类型有什么区别?
按测试策略分类
- 静态与动态测试
- 黑盒与白盒测试
- 手工和自动测试
- 冒烟测试
- 回归测试;
按测试阶段分类:单元测试、集成测试、系统测试
其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测12、恢复测试
α测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。
β测试
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成。
回归测试
回归测试(对软件的新版本测试时,重复执行上一个版本测试时的用例,是为了验证缺陷是否真正修复,确认修复后是否影响其它功能. ;
冒烟测试
冒烟测试:对新版本测试之前,先验证下软件的基本功能是否实现,是否具备可测性。
单元测试的策略有哪些?
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析
正交表测试用例设计方法的特点是什么?
答:用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。
补充:什么时候用系统测试,测试的每个阶段是什么,比如单元、集成、系统、公测,每个阶段需要什么技术,有什么要求
软件的安全性应从哪几个方面去测试?
(1) 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议
(2) 加密机制
(3) 安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描
(4) 数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理
(5) 防病毒系统
需求测试的注意事项有哪些?
- 是否使用了公司的模板
- 文档内容是否符合规范
- 所有的需求是分级是否清析适当?
- 所有的需求是否具有一致性
- 需求是否可行(即,该需求组合有解决方案.
- 需求可否用己知的约束来实现
- 需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性.
- 所有的其它需求是交叉引用是否正确
- 用户描述是否清楚
- 是否用客户的语言来描述需求
- 每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解
- 是否所有的需求都是可验证的
- 是否每条需求都具有独立性,即使发生了变化也不会影响其它需求
- 性能指标是否明确
- 非功能性需求是否得到充分表现
- 是否完整列出适用的标准或协议
- 标准和协议之间是否存在冲突
问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决
- 将问题提交到缺陷管理库里面进行备案。
- 要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 根据用户的一般使用习惯,来确认是否是缺陷;
- 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
- 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
- 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
问:给你一个网站,你如何测试?
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自动取款机的测试用例
- 功能
a)ATM所识别卡的类型;
b)密码验证(身份登陆、是否为掩码、输入错误密码时是否提示,连续三次错误吞卡等);
c)取款功能
- 金额多少的限制,单次最大最小提取金额、每天最大提取金额等
- 取款币种的不同,如人民币、美元、欧元等
d)是否提示客户操作完成后,打印相关操作信息;
e)查询功能是否正常;
f)转账功能是否正常;
g)是否提示客户操作完成后,取回客户卡;
- 性能
a)是否有自动吞卡:非法客户密码错误客户规定时间内未完成相关操作功能的客户。(如果有,有无报警功能(保密报警).
b)平均无故障时间,平均故障修复时间,输入密码后验证时间,出钞票时间,查询余额等待时间。
- 易用性
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抓包尝试修改价格,对订单金额有无效验;
直接输入需要权限的页面地址可用访问;
接口测试
第三方平台支付
对于有系统大量并发访问,你会如何做测试,有什么建议
如何做高并发系统的测试,一般而言,整体的测试策略是:先针对部分系统进行性能测试及压力测试,得到各部分的峰值处理性能,再模拟整体流程测试,重点测试整体业务流程以及业务预期负荷,着重测试以下几点:
- 不同省份,不同运营商CDN节点性能,可采用典型压力测试方案
- 核心机房BGP网络带宽,此部分重点在于测试各运行商的BGP网络可靠性,实际速率,一般采用smokeping,lxChariot等工具
- 各类硬件设备性能,一般采用专业的网络设备测试工具
- 各类服务器并发性能,分布式处理能力,可采用压力测试方案工具
- 业务系统性能,采用业务系统压力测试方案
- 数据库处理性能,这部分需要结合业务系统进行测试,以获取核心业务场景下的数据库的TPS/QPS,
- 如果有支付功能,需要进行支付渠道接口及分流测试,此部分相对而言可能是最大的瓶颈所在,此外还涉及备份方案,容灾方案,业务降级方案的测试。
请对这个系统做出测试用例:一个系统,多个摄像头,抓拍车牌,识别车牌,上传网上,网上展示
功能:
- 每个摄像头都能抓拍车牌;
- 每个摄像头抓拍到的车牌能正常交给系统处理;
- 系统能够正确识别车牌;
- 系统能够将识别出的车牌上传;
- 上传至网络的车牌能够正常展示出来;
一、功能测试
- 使用正常的车牌,保持车牌静止,检查每个摄像头是否能抓拍车牌;
- 使用类似非车牌的写有字的纸板,检查每个摄像头是否抓拍;
- 使用正常的车牌,保持车牌较高速移动,检查每个摄像头是否能抓拍车牌;
- 在多种情况下检查每个摄像头抓拍到的车牌能否正常交给系统处理,如临时断电、断网后能否正常将数据交给系统;
- 使用抓拍到的正常的车牌,交由系统处理,检查系统能否识别车牌;
- 使用非车牌的其他图片,交由系统处理,检查系统能否识别;
- 在多种情况下检查系统能否将正常识别出的车牌进行上传,如临时断电、断网后未上传数据是否能继续上传;
- 构造非车牌的其他内容的数据,检查系统能否将异常内容进行上传;
- 检查上传至网络的车牌能否正常展示出来;
10 .上传非车牌的其他内容的数据,检查能否正常显示出来。
二、性能测试
- 同时向一个摄像头展示多个静止的车牌,检查摄像头能否抓拍到多个车牌;
- 同时向一个摄像头展示多个较高速运动的车牌,检查摄像头能否抓拍到多个车牌;
- 抓拍后,检查系统识别车牌的时间是否在需求要求的时间内;
- 模拟大量抓拍照片同时交由系统处理,检查一定压力下系统能否正常识别车牌;
- 模拟大量车牌同时上传,检查一定压力下能否上传成功。
三、安全性测试
- 检查是否能够通过给车牌加装饰物等方法,使摄像头无法抓拍或抓拍后系统无法正常识别车牌。
请你说一说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通的话,表明本机网络连接以及正常,如果命令不成功,可能是网关设备自身存在问题,也可能是本机上网参数设置有误,检查网络参数。
微信红包
功能
- 在红包钱数,和红包个数的输入框中只能输入数字
- 红包里最多和最少可以输入的钱数 200 0.01
- 拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒
- 当红包钱数超过最大范围是不是有对应的提示
- 当发送的红包个数超过最大范围是不是有提示
- 当余额不足时,红包发送失败
- 在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号, 7.1是否可以输入它们的混合搭配
- 输入红包钱数是不是只能输入数字
- 红包描述里许多能有多少个字符 10个
- 红包描述,金额,红包个数框里是否支持复制粘贴操作
- 红包描述里的表情可以删除
- 发送的红包别人是否可以领取 13.1发的红包自己可不可以领取 2人
- 24小时内没有领取的红包是否可以退回到原来的账户 14.1 超过24小时没有领取的红包,是否还可以领取
- 用户是否可以多次抢一个红包
- 发红包的人是否还可以抢红包 多人
- 红包的金额里的小数位数是否有限制
- 可以按返回键,取消发红包
- 断网时,无法抢红包
- 可不可以自己选择支付方式
- 余额不足时,会不会自动匹配支付方式
- 在发红包界面能否看到以前的收发红包的记录
- 红包记录里的信息与实际收发红包记录是否匹配
- 支付时可以密码支付也可以指纹支付
- 如果直接输入小数点,那么小数点之前应该有个0
- 支付成功后,退回聊天界面
- 发红包金额和收到的红包金额应该匹配
- 是否可以连续多次发红包
- 输入钱数为0,”塞钱进红包”置灰
性能
- 弱网时抢红包,发红包时间
- 不同网速时抢红包,发红包的时间
- 发红包和收红包成功后的跳转时间
- 收发红包的耗电量
- 退款到账的时间
兼容
- 苹果,安卓是否都可以发送红包
- 电脑端可以抢微信红包
界面
- 发红包界面没有错别字
- 抢完红包界面没有错别字
- 发红包和收红包界面排版合理,
- 发红包和收到红包界面颜色搭配合理
安全
- 对方微信号异地登录,是否会有提醒 2人
- 红包被领取以后,发送红包人的金额会减少,收红包金额会增加
- 发送红包失败,余额和银行卡里的钱数不会少
- 红包发送成功,是否会收到微信支付的通知
易用性(有点重复)
- 红包描述,可以通过语音输入
- 可以指纹支付也可以密码支付
微信发朋友圈点赞
功能测试:
点赞某条朋友圈,验证是否成功
接口测试:
点赞朋友圈,验证朋友能否收到提示信息
性能测试:
点赞朋友圈,是否在规定时间显示结果,是否在规定时间在朋友手机上进行提示
兼容性测试:
在不同的终端比如ipad,手机上点赞朋友圈,验证是否成功
如何对淘宝搜索框进行测试
一, 功能测试
输入关键字,查看: 返回结果是否准确,返回的文本长度需限制
- 输入可查到结果的正常关键字、词、语句,检索到的内容、链接正确性;
- 输入不可查到结果的关键字、词、语句;
- 输入一些特殊的内容,如空、特殊符、标点符、极限值等,可引入等价类划分的方法等;
结果显示:标题,卖家,销售量,单行/多行,是否有图片
结果排序:价格 销量 评价 综合
返回结果庞大时,限制第一页的现实量,需支持翻页
多选项搜索:关键字 品牌 产地 价格区间 是否天猫 是否全国购
是否支持模糊搜索,支持通配符的查询
网速慢的情况下的搜索
搜索结果为空的情况
未登录情况和登录情况下的搜索(登录情况下 存储用户搜索的关键字/搜索习惯)
二.性能测试
- 压力测试:在不同发用户数压力下的表现(评价指标如响应时间等)
- 负载测试:看极限能承载多大的用户量同时正常使用
- 稳定性测试:常规压力下能保持多久持续稳定运行
- 内存测试:有无内存泄漏现象
- 大数据量测试:如模拟从庞大的海量数据中搜索结果、或搜索出海量的结果后列示出来,看表现如何等等。
三. 易用性
交互界面的设计是否便于、易于使用
- 依据不同的查询结果会有相关的人性化提示,查不到时告知?查到时统计条数并告知?有疑似输入条件错误时提示可能正确的输入项等等处理;
- 查询出的结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则列示方便定位,显示字体、字号、色彩便于识别等等;
- 标题查询、全文检索、模糊查询、容错查询、多关键字组织查询(空格间格开. 等实用的检索方式是否正常?
- 输入搜索条件的控件风格设计、位置摆放是否醒目便于使用者注意到,有否快照等快捷查看方式等人性化设计?
四. 兼容性
WINDOWS/LINUX/UNIX等各类操作系统下及各版本条件下的应用- IE/FIREFOX/GOOGLE/360/QQ等各类浏览器下及各版本条件下、各种显示分辨率条件下的应用
SQL/ORACLE/DB2/MYSQL等各类数据库存储情况下的兼容性测试- 简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试
IPHONE/IPAD、Android等各类移动应用平台下的兼容性测试- 与各相关的监控程序的兼容性测试,如输入法、杀毒、监控、防火墙等工具同时使用
五. 安全性
- 被删除、加密、授权的数据,不允许被SQL注入等攻击方式查出来的,是否有安全控制设计;
- 录入一些数据库查询的保留字符,如单引号、%等等,造成查询SQL拼接出的语句产生漏洞,如可以查出所有数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬网等。
- 通过白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患;
- 对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制;
就linux下的CP命令设计测试用例
功能
拷贝的文件
- 大小:0k, 1k, 10k, 100k, 1000k…
- 类型:二进制文件、文本文件、mp3、avi、压缩文件…
文件源目录
- 文件中包含各种类型的文件
- 目录深度为0,1,2,3…
文件目标目录
- 目标目录中存在与源文件同名同类型的文件
- 目标目录中存在与源文件同名不同类型的文件
- 目标目录中存在与源文件不同名同类型的文件
- 目标目录中存在与源文件不同名不同类型的文件
异常
参数异常
- 包含特殊字符
- 参数长度超过限制
- 源目录不存在
- 目标目录不存在
文件异常
- 文件没有拷贝权限
- 非法的文件格式和内容
存储介质异常
- 存储介质由损坏
- 拷贝前存储介质已满
- 拷贝中存储介质存满
执行过程异常
- 拷贝过程中删除源文件
- 拷贝过程中删除目标文件
性能
- 拷贝大文件
- 拷贝源目录中存在大量小文件
- 跨文件系统拷贝
- 跨存储介质拷贝
- 并发执行拷贝
关注性能点:拷贝完成时间,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++④测试方法论⑤工具的使用能力(QCQTPLRBugfree.
简述负载测试与压力测试的区别
压力测试(Stress Testing)
压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。
负载测试(Volume Testing)
用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。在使整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。
软件缺陷管理工具有哪些
QC, ``ALM ,BugFree ,jira ,Mantis ,禅道`
弱网测试
<font color='#666'>…待更新…</font>