以一道面试题来探讨测试用例设计的六大思路

news2024/11/24 12:09:36

有这样一个面试题:在一个Web测试页面上,有一个输入框,一个计数器(count)按钮,用于计算一个文本字符串中字母a出现的个数。请设计一系列测试用例用以测试这个Web页面。在这里插入图片描述
有经验的测试人员可能会问面试官,字母a区分大小写吗?只统计英文字母的a吗?最长输入字符是多少,最少输入字符是多少?对输入的字符类型是否有限制,是否会自动清除不符合要求的字符?
所以第一步应该是明确需求,然后我们才开始进行思考如何设计测试用例。
通常说来,我们考虑一个测试对象的时候至少从以下六方面来考虑:

1.功能性
2.兼容性
3.易用性
4.可靠性
5.性能
6.安全

1.从功能方面考虑:

输入:" “(思路:什么都不输入)
输入:“null”(思路:特殊值)
输入:“Aa”(思路:输入字符既含大写字符也有小写)
输入:“abc”(思路:以a开头)
输入:“cac”(思路:a在中间)
输入:“aba”(思路:以a开头,以a结尾)
输入:” ba"(思路:以空格开头含a)
输入:“中ba”(思路:以中文或者其他字符开头含a)
输入:“AAaa”(思路:输入字符仅仅只有大写A和小写a)
输入:“全角和半角a”(思路:考虑半角和全角符号)

2.从兼容性方面考虑:

1.各个浏览器 显示是否正确,点击按钮是否有效;
2.浏览器各个版本显示是否正确,点击按钮是否有效;
3.是否支持手机端和平板端。

3.从易用性方面考虑:

1.web界面外观,风格是否合适;
2.文本输入框长度是否合适,是否应该默认提示如何输入;
3.输入错误时提示是否友好;
4.考虑该应用是否支持其他语言。

4.从可靠性和性能方面考虑:

1.输入HTML和JavaScript相关标签字符,计算是否正确,是否会破坏页面;
2.这个应用能否在同一台服务器上运行多个实例,多个用户同时使用是否会有问题;
3.在大并发下使用,计算速度是否满足要求。

5.从可靠性和性能方面考虑:

1.输入HTML和JavaScrip相关标签字符,计算是否正确,是否会破坏页面;
2.这个应用能否在同一台服务器上运行多个实例,多个用户同时使用是否会有问题;
3.在大并发下使用,计算速度是否满足要求。

6.从安全性方面考虑:

1.输入的数据是否会被保存,输入字符串可能包含敏感信息;
2.尝试复制/粘贴字符串;
3.尝试快速点击多次计算按钮;
4.考虑是否有安全漏洞,点击计算按钮,请求是否会被截取,导致返回失败

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2035998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

博途PLC FOR+CASE语句组合应用

CASE语句的使用可以参考下面文章链接: 1、CASE语句和定时器组合使用注意事项 CASE语句和定时器组合使用注意事项(SCL代码)_plc定时器可以放在case语句里面吗-CSDN博客文章浏览阅读283次。本文介绍了在使用CASE语句进行状态机流程控制时,如何结合定时器…

人工智能 | 通俗讲解AI基础概念

LLM LLM(Large Language Models)指的是大型语言模型。这些模型是自然语言处理(NLP)技术的一部分,使用深度学习训练来理解、生成、翻译文本,甚至执行特定的语言相关任务,如问答、文本摘要、编程…

Rancher的RKE和RKE2部署K8s集群kube-proxy开启strictARP

kube-proxy配置strictARPtrue 1、非RKE部署的K8s集群:配置首先,需要为kube-proxy启动strictARP,以便Kubernetes集群中的所有网卡停止响应其他网卡的ARP请求,而由OpenELB来处理ARP请求。 $ kubectl edit configmap kube-proxy -n…

关于k8s的pvc存储卷

目录 1.PVC 和 PV 1.1 PV 1.2 PVC 1.3 StorageClass 1.4 PV和PVC的生命周期 2.实战演练 2.1 创建静态pv 2.2 创建动态pv 3.总结 1.PVC 和 PV 1.1 PV PV 全称叫做 Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,…

Android SystemServer启动流程

文章目录 Android SystemServer启动流程概述流程图源码分析创建SystemServer进程启动SystemServer进程SystemServer#main()SystemServer#run()SystemServer#createSystemContext()SystemServer#startBootstrapServices()SystemServer#startCoreServices()SystemServer#startOth…

FFmpeg Filter过滤器实战

引文 - FFmpeg Filter的介绍 Filter,一般被译为"过滤器"或者"滤镜",本篇文章统一以"过滤器"著称。 那么过滤器的作用是什么呢?FFmpeg中的过滤器系统是在解码之后、编码之前对媒体流进行处理的关键组件。 下…

Java面试八股之什么是MQTT协议

什么是MQTT协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的“发布/订阅”(Publish/Subscribe)模式的消息传输协议,特别适合于远程和低带宽网络环境,如物联网&…

【向量数据库】向量数据库的构建和检索

1、使用 sentence-transformers 将文本编码为向量 安装 sentence-transformers: pip install -U sentence-transformers在 huggingface 下载 all-MiniLM-L6-v2 模型权重(1_Pooling 是文件夹,里面包含一个 config.json 文件)&…

Qt内存泄漏与程序异常崩溃

内存泄漏 什么是内存泄漏? 内存泄漏(Memory Leak)指的是程序在动态分配内存后未能正确释放已分配的内存,导致这些内存块无法被再次使用或回收。内存泄漏的发生主要是在使用堆内存(通过new或malloc分配的内存&#xf…

ZBrush入门使用介绍——8、模型网格显示隐藏和遮罩操作

大家好,我是阿赵。   有时候我们需要把需要雕刻的范围限制在某个局部,之前也介绍过一些方法,比如使用遮罩。这里再详细说一下具体的操作。这次我拿这个圆柱为例子,先生成多边形网格,再CtrlD几次增加一点细分级别。 …

【css】使用!important提升选择器的优先级

背景 昨天我的个人博客备案通过了嘛,然后我就想着完善页面底部的备案信息,参考Argon主题博客美化的 网站底部信息 但是我想要把icp备案和公安联网备案的信息分开,即 subject-value-value 的结构, 因为 value 的选择器里面写的是…

ThinkPHP教程

thinkPHP笔记 01. phpEnv配置安装 主讲老师 - 李炎恢 1. 学习基础 ThinkPHP8.x: 前端基础:HTML5/CSS(必须)、JavaScript(可选、但推荐有);后端基础:PHP基础,版本不限,但不能太老,至少PHP5.4以上语法,TP8是兼容PHP8.x的;数据库基础:MySQL数据库,掌握了常规的SQL…

uni-app总结

1. <u-form-item label"报废人" ><u--input v-model"model.remark" border"bottom" placeholder"请输入"></u--input> </u-form-item> border"bottom" 报废日期 为了

【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(一)

目录 1 -> 初识JavaScript 1.1 -> JavaScript是什么 1.2 -> 发展历史 1.3 -> JavaScript和HTML和CSS之间的关系 1.4 -> JavaScript运行过程 1.5 -> JavaScript的组成 2 -> 前置知识 2.1 -> JavaScript的书写形式 2.2 -> 注释 2.3 -> 输…

Stable Diffusion-inpaint(mask补全)是怎么做的?

AIGC专栏4——Stable Diffusion原理解析-inpaint修复图片为例_diffusion inpaint-CSDN博客 如果我们必须训练一个inpaint模型才能对当前的模型进行inpaint&#xff0c;那就太麻烦了&#xff0c;有没有什么方法可以不需要训练就能inpaint呢&#xff1f; Stable Diffusion就是一…

Unity新输入系统 之 InputAction(输入配置文件最基本的单位)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​ 首先你应该了解新输入系统的构成结构&#xff1a;Unity新输入系统结构概览-CSDN博客 Input System - Unity 手册 1.In…

创客匠人媛姐:做得一切都是为了拿到结果!

大家好&#xff0c;我是媛姐。近期我做了《百场IP发售销讲实战宣讲-发售教练点评》的直播活动。邀请了艺得世界人才创造社白钰玮老师为大家现场演练一场销讲&#xff0c;展示发售销讲私教班的培训成果。结果证明&#xff0c;白老师完成得非常出色。 以下&#xff0c;我将分享一…

WPF APP生命周期和全局异常捕获

应用启动事件与启动参数 属性查找 选择想要控件的事件&#xff0c;可以在控件上鼠标右击选择属性&#xff0c;在右上角点击闪电符号即可看到这个控件的所有事件&#xff1a; APP.Run()启动方法&#xff1a; 打开项目中这个文件&#xff1a; ".....\XH.EventLesson\obj…

Chapter 9 Operational Amplifiers

Chapter 9 Operational Amplifiers operational amplifier (op-amp) 运算放大器无疑是模拟电路中最基础最重要的block之一. 这一章我们首先review telescopic and folded-cascode 拓扑, 然后学习two-stage and gain-boosting 结构, 和共模反馈问题, 最后引入slew rate, 分析su…

基于Python、Django开发Web计算器

1、创建项目 创建Django项目参照https://blog.csdn.net/qq_42148307/article/details/140798249&#xff0c;其中项目名为compute&#xff0c;并在该项目下创建一个名为app的应用&#xff0c;并且进行基本的配置。 2、导入Bootstrap前端框架 Bootstrap的使用参照https://blo…