测试案例
1. 给你一个网站,你应该如何测试?
首先,查找需求说明、网站设计等相关文档,分析测试需求。
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试、界面测试、性能测试、数据库测试、安全性测试、兼容性测试
设计测试用例:功能性测试可以包括,但不限于以下几个方面:
- 链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。 提交功能的测试。
- 多媒体元素是否可以正确加载和显示。
- 多语言支持是否能够正确显示选择的语言等。
界面测试可以包括但不限于一下几个方面:
- 页面是否风格统一,美观
- 页面布局是否合理,重点内容和热点内容是否突出控件是否正常使用
性能测试一般从以下两个方面考虑:
- 压力测试、负载测试、强度测试、数据库测试要具体决定是否需要开展。数据库一般 需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
- 基本的登录功能的检查
- 是否存在溢出错误,导致系统崩溃或者权限泄露相关开发语言的常见安全性问题检查,例如 SQL 注入等。
- 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性、操作系统的兼容性、软件平台的兼容性、数据库的兼容性开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如, 需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
定期评审,对测试进行评估和总结,调整测试的内容。
(一个网站基本完工后,需要通过下面三步测试才可以交付)
- 制作者测试,包括美工测试页面、程序员测试功能。在做完后第一时间内有制作者 本人进行测试。
- 全面测试 根据交工标准和客户要求,由专人进行全面测试
- 发布测试 网站发布到主服务器之后的测试,主要是防止环境不同导致的错误
2. 一个有广告的纸杯子,请设计测试用例?
测试项目:杯子
需求测试:查看杯子使用说明书
界面测试:查看杯子外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)放 24 小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透 跌落测试:杯子加包装(有填充物), 在多高的情况摔下不破损
震动测试:杯子加包装(有填充物), 六面震动,检查产品是否能应对恶劣的铁路、公路、航空运输
基本功能测试(逻辑功能测试)。
- 硬度:是否达到设计标准。
装载能力:在杯子内分别装入少量的、半杯的、满杯的,看其装载量是否达到设计标准。 装载种类:开水(是否产生异味)、温水、冷水、冰水、咖啡。..
- 界面测试(UI 测试)。
看其形状、大小设计是否适合人方便拿起。外观是否吸引人(广告嘛),赏心悦目。 带广告的图案沾水受是否掉色、模糊。
- 易用性测试。
看其形状、大小设计是否适合人方便拿起。残疾人士用此杯去喝水的容程度。
杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在使用时也容易拿开。
-
稳定性测试(24 X 7 测试)。装入液体后记录其多少以后漏水。
-
安全性测试。杯子所用的材料(包括纸基、涂层和广告颜料)是否符合食品卫生标准,在内外温 度等环境因素下是否会与所盛各种饮料相反应,而产生对人体有害的物质。
-
本地化测试。为国际化和本地化的需要,广告图案和文字是否在政治、宗教和文化方面具有广泛的适用性。
-
对设计的改进建议。“如果是一次性杯子,能否标示已使用(比如变色)”和“杯子是否有使用 者标贴(多人使用时防止混淆)”。
3. 一个身份证号码输入框,怎么设计用例?
校验身份证号规则的有效性(包括地址码、生日期码、顺序码和校验码,校验 15 位身份证号和 18 位身份正好都是可用的)
校验末位是 X 的情况
校验不足 15 位、16-17 位和大于 18 位的情况
如果是必输项,校验不输入的时候会不会有正确的提示
如果不是必输项,则要校验不输入的时候流程能否正常进行
校验输入非数字的情况,是否会有正确提示信息(包括大小写字母、汉字、特殊字符和标点符号)
校验输入全角的数字的时候,系统是否会识别(这个得根据需求确定是否可以使用全角的数字)
4. 登录功能怎么设计测试用例?
具体需求:
有一个登录页面,有一个账号和一个密码输入框,一个提交按钮。此题的考察目的:
- 了解需求(测什么都是从了解需求开始); 2、是否有设计 Test Case 的能力
- 是否熟悉各种测试方法;
- 是否有丰富的 Web 测试经验;
- 是否了解 Web 开发;
了解需求:
- 登录界面应该是弹出窗口式的,还是直接在网页里面;
- 账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);
- 界面美观是否有特殊要求?(即是否要进行 UI 测试);
- ····
用例设计:
测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑: 功能测试 (Function Test)
-
输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
-
输入错误的账号或者密码,验证登录会失败,并且提示相应的错误信息。(错误校验)
-
登录成功后能否跳转到正确的页面(低)
-
账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
-
账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)
-
记住账号的功能
-
登录失败后,不能记录密码的功能
-
账号和密码前后有空格的处理
-
密码是否加密显示(星号圆点等)
-
牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新 或换一个按钮是否好用
-
登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确
-
输入密码的时候,大写键盘开启的时候要有提示信息。
-
什么都不输入,点击提交按钮,看提示信息。(非空检查)
界面测试 (UI Test)
- 布局是否合理,2 个 Textbox 和一个按钮是否对齐
- Textbox 和按钮的长度,高度是否符合要求
- 界面的设计风格是否与 UI 的设计风格统一
- 界面中的文字简洁易懂,没有错别字。
性能测试 (Performance Test)
- 打开登录页面,需要几秒
- 输入正确的账号和密码后,登录成功跳转到新页面,不超过 5 秒
安全性测试 (Security Test)
- 登录成功后生成的 Cookie 是否有 HttpOnly(降低脚本盗取风险)
- 账号和密码是否通过加密的方式,发送给 Web 服务器
- 账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用 javaScript 验证
- 账号和密码的输入框,应该屏蔽 SQL 注入攻击
- 账号和密码的输入框,应该禁止输入脚本(防止 XSS 攻击)
- 错误登录的次数限制(防止暴力破解)
- 考虑是否支持多用户在同一机器上登录;
- 考虑一用户在多台机器上登录
可用性测试 (Usability Test)
- 是否可以全用键盘操作,是否有快捷键
- 输入账号,密码后按回车,是否可以登录
- 输入框是否可以以 Tab 键切换
兼容性测试(Compatibility Test)
- 主流的浏览器下能否显示正常已经功能正常(IE6~11, FireFox, Chrome, Safari 等 )
- 不同的平台是否能正常工作,比如 Windows, Mac
- 移动设备上是否正常工作,比如 iPhone, Android
- 不同的分辨率
本地化测试 (Localization Test)
- 不同语言环境下,页面的显示是否正确。
软件辅助性测试 (Accessibility Test)
软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
高对比度下能否显示正常(视力不好的人使用)
5. 移动端和 web 端测试有什么区别
单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。
根据两者载体不一样,则区别如下:
系统结构方面
-
web 项目,b/s 架构,基于浏览器的;web 测试只要更新了服务器端,客户端就会同步会更新。
-
app 项目,c/s 结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。
性能方面
-
web 项目 需监测 响应时间、CPU、Memory
-
app 项目 除了监测 响应时间、CPU、Memory 外,还需监测 流量、电量等
兼容方面
-
web 项目:
- 浏览器(火狐、谷歌、IE 等)
- 操作系统(Windows7、Windows10、Linux 等)
-
app 项目:
-
设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)
-
手机设备可根据 手机型号、分辨率不同相对于 Wed 项目,
-
APP 有专项测试
- 干扰测试:中断,来电,短信,关机,重启等
- 弱网络测试(模拟 2g、3g、4g,wifi 网络状态以及丢包情况);网络切换测试(网络断开后重连、3g 切换到 4g/wifi 等)
- 安装、更新、卸载
安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况卸载:需考虑 卸载后是否删除 app 相关的文件
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
- 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
- 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
- 边界测试:可用存储空间少、没有 SD 卡 / 双 SD 卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
- 权限测试:设置某个 App 是否可以获取该权限,例如是否可访问通讯录、相册、照相机等测试工具方面
自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium
性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
6. 测试一个 C/S 客户端时,需要考虑的因素
客户端安装测试客户端升级测试
客户端可维护性测试
- 个体的客户端应用以“分离的”模式被测试——不考虑服务器和底层网络的运行;
- 客户端软件和关联的服务器端应用被一起测试,但网络运行不被明显的考虑;
- 完整的 C/S 体系结构,包括网络运行和性能被测试。应用功能测试客户端应用被独立地执行,以揭示在其运行中的错误。 服务器测试 测试服务器的协调和数据管理功能,也考虑服务器性能(整体反映时间和数据吞吐量)。
数据库测试:测试服务器存储的数据的精确性和完整性,检查客户端应用提交的事务,以保证数据被正确地存 储、更新和检索。
事务测试:创建一系列的测试以保证每类事务被按照需求处理。测试着重于处理的正确性,也关注性能问题。
网络通信测试:这些测试验证网络节点间的通信正常地发生,并且消息传递、事务和相关的网络交通无错的发生
7. 测试电梯,请详细描述
如果给你一台电梯,请问你如何测试它,分析如下:
- 功能:上升、下降、停止、开门、关门、梯内电话、灯光、指示灯等;
- 性能:速度、反应时间、关门时间等;
- 压力:超载、尖锐物碰撞电梯壁等;
- 安全:停电、报警装置、轿箱停靠位置、有人扒门时的情况等;
- 可用性:按键高度、操作是否方便、舒适程度等;
- UI:美观程度、光滑程度、形状、质感等;
- 稳定性:长时间运行情况等;
- 兼容性:不同电压是否可工作、不同类型电话是否可安装等。其实在简单分析的过程中, 发现许多东西根本测试不全,比如电话、灯光、材质、调度程序、可维修性等,当发现在一个用例中无法说清楚时,这些应该拆分开来分别测试。可以告诉主考官,你需要模块化地测试电话、灯光等。再有在一起的组装测试。
下面是详细的测试点:
需求测试:查看电梯使用说明书、安全说明书等界面测试:查看电梯外观功能测试:
- 测试电梯能否实现正常的上升和下降功能。
- 电梯的按钮是否都可以使用。
- 电梯门的打开,关闭是否正常。
- 报警装置是否可用。
- 与其他电梯之间是否协作良好。
- 通风状况如何。
- 突然停电时的情况。
- 上升途中的响应。
- 电梯本来在 1 楼,如果有人按 18 楼,那么电梯在上升到 5 楼的时候,有人按了 10 楼,这时候是否会在 10 楼先停下来
- 电梯下降到 10 层时显示满员,此时若 8 层有人等待电梯,是否在 8 层停。
- 是否有手机信号
可靠性测试:
- 门关上的一刹那出现障碍物。
- 同时按关门和开门按钮。
- 点击当前楼层号码
- 多次点击同一楼层号码
- 同时按上键和下键
易用性:电梯的按钮的设计符合一般人的习惯吗
用户文档:使用手册是否对电梯的用法、限制、使用条件等有详细的描述压力测试:1. 看电梯的最大承重量,在负载过重时报警装置是否有提醒 稳定性测试:看垫底在最大负载下平行运行的最长时间
8. 对一只圆珠笔进行测试
-
界面测试,无论我们做那类软件(嵌入式别提),只要给用户有看到的东西,从测试的角度,就要考虑界面测试,这个呢,现在针对微软的产品,某公司开发了一套界面检查表, 我这里有一份,想要可以找我界面测试测什么,怎么测呢?针对这个问题我是这样回答的, 印刷在产品上的图片,文字,这可能涉及不同的东西,有圆珠笔厂家的信息,也有针对不同用户的信息(譬如小孩子喜欢颜色搭配多一点的,而成人用稳重的产品等),可能涉及的还有人的审美观,你圆珠笔色彩搭配之类的
-
功能测试,这是我们测试的重点,也是客户针对某家公司产品给出满意度的参考点,圆珠笔功能主要是书写,这里面涉及一个功用方面的焦点——书写的快慢程度,也就是流利不流利的问题(这涉及笔芯的材质问题)
针对这方面的测试,个人认为应从以下几点
- 材质问题,这涉及程序员和用户之间的关系,两者利益均有,程序员考虑成本问题,用户考虑污染问题,也就是说制作圆珠笔的材料与环境的问题,厂商考虑价格因素,用户考虑环境因素以及安全性因素。这就把安全性测试给说出来了,大的方面因为笔油材质的问题,和使用者之间的健康问题有联系, 要测小的方面,笔油的速率,以及书写后是否马上可以涂抹,可否修改,这都涉及安全性的问题
- 性能问题,温度,湿度,气压对笔芯产生不同的影响
-
安全性问题
测试不同的高度,笔身做自由落体损坏程度
-
兼容性问题
不同的笔筒和笔芯之间的互相兼容
-
强度测试
弹簧在不同的压力之下,承受变形的程度
在金山面试时候,考官特意问我针对笔芯那个米珠如何测试
-
界面测试
界面测试也就是对其外表先进行判断。
尺寸是否适合用户使用?用户需要的是什么样的尺寸,小孩和成年人使用的尺寸是有区别的;
色彩搭配是否合理? 形状是否美观?
是否方便携带和存放?
笔芯颜色是否与客户要求一致?
笔身印的 log 或者文字是否这么正确
-
功能测试
笔筒开合;笔芯替换;出墨快慢;笔头出墨粗细;是不是可操作性签字笔;
-
性能测试
笔芯的寿命; 笔墨的气味;写过的字用纸水浸透后,笔墨是否会晕开
-
压力测试
笔尖在多大压力范围内可以正常写字,不能正常出墨,太重损坏笔尖或纸张; 笔壳能在多大压力范围内正常使用?成人用力太重掰断笔壳,掉到地上易摔,能在纸上写出清晰的字
-
性能测试
握笔的地方纹路是否会硌手或太滑; 书写的流畅度;
写出的墨水多久能干;
高温和低温环境对笔芯出墨和笔壳的影响;
长时间不盖笔套,或笔盖盖多长时间不用,会不会对笔下次写字有影响
-
安全测试
笔墨是否有易燃性; 笔墨是否对皮肤有害;
笔杆折断,材质是否容易刮伤手;
误食笔芯是否会引起中毒(有小孩或者有人喜欢咬笔头)
-
兼容性测试
笔壳和笔芯是否能够很好的适应主流签字笔尺寸;
这个笔芯的笔尖如果损坏,换上其他的笔芯的笔尖是否能用; 这个笔芯的笔墨如果用完,换上其他笔芯的笔墨是否可以使用;
笔的笔墨如果在其他笔的笔墨上写字是否可以成功覆盖
-
其他测试
-
比较测试
与其他品牌签字笔比较,优劣在哪些地方?
-
场景测试
笔从高处摔到地上,笔尖是否会摔坏; 倒着写,是否可以写出很多字来;
扔到水里,笔墨会不会一直晕开; 笔在粗糙的纸上是否能写出字…
-
9. 游戏测试与软件测试的区别
游戏测试作为软件测试的一部分,它具备了软件测试所有的一切共同的特性:
- 测试的目的是发现软件中存在的缺陷。
- 测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书,需求文 档,产品文件,或是用户手册,源代码,或是工作的可执行程序。
- 每一种测试都需要产品运行于真实的或是模拟环境之下。
- 每一种测试都要求以系统方法展示产品功能,以证明测试结果是否有效,以及发现其中 出错的原因,从而让程序人员进行改进。
游戏世界测试,主要有以下几个特性:
- 游戏情节的测试,主要指游戏世界中的任务系统的组成,有人也称为游戏世界的事件驱动,我喜欢 称为游戏情感世界的测试。
- 游戏世界的平衡测试,主要表现在经济平衡,能力平衡(包含技能,属性等等),保证游戏世界竞 争公平。
- 游戏文化的测试,比如整个游戏世界的风格,是中国文化主导,还是日韩风格等等,大到游戏整体, 小到 NPC(游戏世界人物)对话,比如一个书生,他的对话就必需斯文,不可以用江湖语言 J。
10. 想象一个登录框,包括 ID、密码、登录、取消,记住密码(复选框),尽可能的写出你想到的测试点?
ID 测试要点:
- 字符类型(包括:数字、字母、汉字、特殊字符)、字符长度
- 默认值空值、字符集
- 存在空格、复制、粘贴
密码测试要点:
- 密码长度(例如:密码不能少于 7 个字符,最长不能超过 20 个字符) 密码复杂度、强度(例如: 密码必须包含特殊字符、数字字母大小写等等,长度是否长)
- 密码字符类型(例如:只允许输入数字、字母、特殊字符、下划线)、默认值
- 密码为空字符集、存在空格
- 复制、粘贴
登录测试要点
- 用户名和密码都符合要求(格式上的要求)
- 用户名和密码都不符合要求(格式上的要求)
- 用户名符合要求,密码不符合要求(格式上的要求)
- 密码符合要求,用户名不符合要求(格式上的要求)
- 用户名或密码为空
- 数据库中不存在的用户名,不存在的密码
- 数据库中存在的用户名,错误的密码
- 数据库中不存在的用户名,存在的密码
- 输入的数据前存在空格
- 输入正确的用户名密码以后按 [enter] 是否能登陆
取消
- 鼠标左键点击“取消”按钮鼠标左键双击“取消”按钮鼠标右键点击“取消”按钮鼠标右键双击“取消”按钮
- 鼠标指针移动到“取消”按钮”,按回车键 鼠标指针停留在“取消”按钮上
记住密码(复选框)
-
点击选中“记住密码”按钮,重新登录
-
不选中“记住密码”按钮,重新输入密码登录
-
输入已存在 ID 和错误密码,勾选“记住密码”,点击登录 输入错误 ID 和正确密码,勾选“记住密码”,点击登录 输入正确 ID 和正确密码,勾选“记住密码”,点击登录 输入错误 ID 和错误密码,勾选“记住密码”,点击登录。
- 账号或密码登陆正确或错误时,进入后续页面或弹出反馈内容是否正确?
- 各类浏览器的各个版 本登陆测试兼容性,不同的浏览器有可能会错位显示。
- 电脑和移动设备登陆测试。
- 输入一段如'or'='or'之类代码作为账号或密码看是否能登陆
- 登录后,测试不操作后需多长时间会自动注销;退出后,刷新页面检查是否真的退出。
11. 针对添加购物车这个测试点说一下你要怎么测试“添加购物车”
(增删改查的角度)
- 能否加入购物车,同一件商品能否再次添加到购物车。
- 购物车商品件数的上限限制(淘宝限制 100 件)
- 购物车是否可以正常移除商品,移除商品后,能否再添加回来。
- 添加的每种商品是否可以正常增减数量,数量大于 0
- 退出购物车,再去查询购物车,商品正常。
- 购物车的商品可以全选,取消全选,可以复选,选中的商品和数量可以正常下单。
- 商品添加到购物车以后,已下架。购物车会提示此宝贝已失效。
- 商品添加到购物车以后,降价了,购物车会有降价提示。
- 商品添加到购物车以后,库存不足了。
12. 网上银行转账是怎么测的,设计一下测试用例
回答思路:
宏观上可以从质量模型(万能公式)来考虑,重点需要测试转账的功能、性能与安全性。设计测试用例可以使用场景法为主,先列出转账的基本流和备选流。然后设计场景,最后根据场景设计数据。 实际面试中需要举出具体的例子。
- 先检查界面。
- 再测试功能:
- 验证同行转账,跨行转账。
- 验证转账限额。
- 验证非法账户(挂失,冻结,锁定的账户)的转账。
- 再测试性能方面的。