软件测试
Web 测试

web测试用例如何写?

完全菜菜一枚,求问例如淘宝类的电商 ,测试用例要如何编写?涵盖多少内容算一个测试用例?淘宝的话预估需要写多少个测试用例呢?
关注者
143
被浏览
87,197

22 个回答

题主你好,看到是测试相关就非请自来了!

首先,不管是什么系统的测试用例,编写的过程中,有这么几个内容都是必须要写的:

  1. 测试标题(有时也称为测试目的,或者测试项)。表示我们这个测试用例的测试目的是什么。比如“搜索文本框输入内容超过限制边界应该友好提示”、再比如说“搜索结果为空时应该给用户提示‘您本次搜索结果没有具体内容’!”
  2. 测试步骤和测试数据。测试用例的可复用性的表现就是要把步骤写清楚了,不管是谁执行,都应该毫无阻碍,所以步骤要非常详细。比如下面的例子。



  1. 预期结果。测试用例是用来检测软件在某一个操作之后,是否能够完成特定的任务的,所以任务目标要提前定好。例如上图中的,严格来说,其实每一步都应该有预期结果,但是往往会因为过于复杂,而只是在关键位置、页面跳转位置设置相应的预期结果。

其次,要跟题主说的是,一个测试用例到底要写多少内容,其实取决于我们的测试目的,如果测试亩地比较简单或者单一,那么,测试步骤也可以很简单。例如下面的这个测试用例:



步骤就比较少。所以一个用例要覆盖多少还是看测试的目的。

最后,一个系统要设计多少测试用例完全取决于系统功能的多少和系统的复杂度。比如两个电商系统的个人中心页面:





前一个系统后来统计共设计测试用例845条,还紧紧只是功能方面的。加上其他方面的,1100多条。

估计淘宝的,少说也得有4、5千条测试用例吧。毕竟没有在淘宝干过,但是人家的功能多……这可是有目共睹的!

发布于 2020-03-12 20:42

谢邀

--------

看了题主的描述,说实话,淘宝的测试用例你还写不了

先从一个小项目的小功能做起吧,慢慢学习,不断积累经验就好

发布于 2016-11-24 16:30


前言

对于一个测试工程师来说,测试用例的编写是一项必须掌握的能力,但有效的设计和熟练的编写确实一项十分复杂的技术。不仅需要掌握软件测试技术和流程,而且还要对整个软件不管从业务,还是对软件的设计,程序模块的结构,功能规格等说明都要有透彻的理解。测试的设计方法不是单独存在的,具体的每个测试项目里有很多方法,每种类型都有各自的特点。

测试用例

概念

测试用例是一组步骤、条件和预期结果的集合,用于验证软件特定功能、场景或需求的正确性。它是测试过程中的基本单元,用于确定软件是否按照预期工作。

基本要素

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

好的测试用例是一个不熟悉业务的人也能依据用例来很快的进行测试。

评价好的测试用例的标准:


  • 用例表达清楚,无二义性。
  • 用例可操作性强。
  • 用例的输入与输出明确。一个用例只有一个预期结果。
  • 用例的可维护性好。
  • 用例对需求的覆盖率高。


好处


  • 测试执行者的依据;
  • 使得工作可重复,自动化测试的基础;
  • 评估需求覆盖率;
  • 用例复用,提高效率;
  • 积累测试的方法思路以供后续借鉴。


特性


  • 代表性 :可代表并覆盖各种合理与不合理,合法与不合法,越界与不越界以及极限输入的数据和操作等。
  • 针对性 : 对程序中可能存在的错误进行针对性的测试。
  • 可判定性 :测试执行结果的正确性,每一个测试用例都应有相应的期望结果。
  • 可重现性 : 对同样的测试用例,系统的执行结果应当是相同的。


测试用例的组成

一个测试用例通常包括以下组成部分:


  • 测试用例编号:用于唯一标识测试用例的编号。
  • 测试标题/名称:清晰描述测试用例涉及的功能或场景。
  • 前置条件:指定执行测试前必须满足的条件或状态。
  • 测试步骤:详细描述执行测试所需的步骤和操作。
  • 预期结果:定义测试步骤完成后预期的输出、状态或行为。
  • 实际结果:记录测试执行后的实际输出或系统行为。


测试用例的优先级

测试用例的优先级决定了执行顺序和重要性,常见的优先级包括:


  • 高优先级:涉及核心功能或关键路径的测试用例。
  • 中优先级:涉及一般功能或重要性较低的测试用例。
  • 低优先级:辅助功能或对系统影响较小的测试用例。


测试用例设计工具

一些常见的测试用例设计工具包括:


  • 测试用例管理工具:如JIRA、TestRail等,用于管理、编写和执行测试用例。
  • 表格工具:如Excel、Google Sheets,可用于简单的测试用例编写和管理。
  • 专用测试设计工具:如Selenium(Web应用测试)、Postman(API测试)等,用于特定类型的测试用例设计和执行。


测试用例的作用

测试用例在软件测试中扮演着关键角色,具有以下作用:


  • 确认软件质量:验证软件功能是否符合预期,确保其质量和稳定性。
  • 减少缺陷:发现并记录软件中的缺陷和问题,以便及时修复。
  • 提高效率:指导测试执行过程,确保全面性和系统性的覆盖。
  • 沟通工具:为开发人员、测试人员和其他相关方提供清晰的需求和测试标准。


测试用例万能公式

我们设计测试用例,需要兼顾功能,性能,兼容,安全等方面,所以我们也可以根据这样一个公式去设计测试用例:功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试

示例:比如我们要测试一个保温杯,我们要设计一下我们的测试用例,根据公式,我们制定下面的用例:

从万能公式中列出六项,然后从这六项分别去想我们需要对水杯进行的测试。

功能测试:
	水杯装满水;
	水杯装一半的水;
	水杯不装水;
	水杯能否折叠;
	水杯盖子是否盖的稳;
	水杯装水超过刻度线是否会溢出。
	水杯能否装开水、冰水;
	水杯是否漏水;

界面测试:
	水杯的形状;
	水杯的大小;
	水杯的颜色;
	水杯的图案花纹;
	水杯的美观度,完整度。
	水杯的材质;

性能测试:
	水杯的耐热性;
	水杯的抗冻性;
	水杯的抗压性;
	水杯的抗腐蚀性;
	水杯的抗辐射性;
	水杯的抗摔性;
	水杯的密闭性;
	水杯的保温性;
	水杯的使用寿命。
	水杯材质的稳定性;

易用性测试
	水杯是否防滑;
	水杯是否符合人体工学;
	水杯是否易清洗;
	水杯是否重手;
	水杯盖子能否轻易拧开。
	倒水是否方便;
	喝水是否方便;

兼容性测试
	水杯能否装水、碳酸饮料、茶、咖啡、汤药、特殊液体(酒精、汽油)。
	
安全测试
	水杯材质高温环境下是否有毒;
	水杯是否易变形,变形后是否存在危险;
	水杯材质是否容易爆炸。
	低温环境下是否有毒;
	遇到特殊液体是否产生化学反应,产生毒性;

对于具象的用品我们可以如此设计测试的要求,对于软件来说,也是一样的,只是软件不是这么称呼而已,对比来看,就是下面这样的:


  • 功能测试
    水杯:水杯的功能无非就装水、喝水。
    软件注册登录功能:注册 + 登录。想象日常使用中的注册场景有哪些功能,来针对这些功能发散性的设计测试用例。
  • 界面测试
    水杯:外形能看到的东西,颜色 + 材质 + 大小 + 形状 + 整体美观程度。
    软件:能看到的东西都需要进行测试,文字 / 输入框 / 图片 / 下拉框等控件;对于这些控件的颜色、大小、形状、布局也能够进行测试;再细化对于文字是否存在错别字、病句、缩放页面折行折叠重叠等等问题进行测试。
  • 性能测试
    水杯:常用的耐热性、抗冻性、抗压性、耐摔性。
    软件:页面访问的响应时间;千万人同时访问页面的性能测试;页面跳转的速度等。
  • 兼容性测试
    水杯:水杯可以装液体,针对液体来设计兼容性。
    软件:系统(Linux、Windows、Mac);终端(PC、移动端);浏览器(chrome、Firefox、Edge)
  • 易用性测试
    具体的事物:是否具备便捷、简单易上手的属性。
    软件:界面是否有用户引导、新手引导、符合用户使用的习惯。
  • 安全测试
    水杯:水杯的材质是否安全;特殊情况下(高温、低温)材质是否会释放毒性。
    软件:SQL 注入、XSS 漏洞、越权(垂直越权,下级能看到上级的隐私数据;水平越权(平级之间不允许访问的数据))。


总结

测试用例是测试过程中的重要组成部分,它们不仅指导着测试的进行,还对软件质量和稳定性起着关键作用。了解测试用例的基本概念、组成要素、优先级、设计工具以及作用,有助于测试人员更好地理解和执行测试任务。希望本文能够帮到大家!

获取更多技术资料,请点击!

推荐

Python全栈开发与自动化测试开发班
由浅入深实战进阶,从小白到高手

以Python全栈开发为基础,深入教授自动化测试技能,为学员打造全面的技术能力。通过系统学习和实际项目实战,学员将具备在职场中脱颖而出的竞争力。不仅能够灵活运用Python进行开发,还能够保障项目质量通过自动化测试手段。这是一个全面提升职业竞争力的机会。

课程详情
Python开发必备基础技能与项目实战
Pvthon 编程语言/算法和数据结构/面向对象编程Web后端开发/前端开发/测试管理平台项目实战

人工智能ChatGPT实战
人工智能辅助学习各种开发和测试技能/Pytorch深度学框架/平台开发实战

数据分析与自动化办公
数据采集/Pandas与数据处理技术/ECharts与数据可视化技术/爬虫实战/自动化办公/批量文件处理

UI自动化测试与高级项目实战
Web自动化测试/App自动化测试/ PageObject设计模式

接口自动化测试
接口协议分析/Mock实战/服务端接口测试

性能测试
性能测试流程与方法/JMeter 脚本参数化/Grafana监控系统搭建

简历指导与模拟面试
1V1简历指导/模拟真实面试/测试开发岗面试全攻略名企私教服务
名企专家1v1辅导/行业专家技术指导/针对性解决工作难题/绩效提升辅导与晋升复盘

课程亮点
名企私教服务 先学习后付费 高额奖学金
专属社群+晚自习在线答疑
5V1全方位辅导作业+考试强化学习效果
简历修改 模拟面试 就业内推 面试复盘



一、 测试前景类

测试开发工程师技能图谱 V1.0 版 | 福利 - 知乎 (zhihu.com)

裁员不可怕,可怕的是行业在发生巨变,而你却原地踏步 - 知乎 (zhihu.com)

如何度量测试开发的价值产出? - 知乎 (zhihu.com)

为什么很多公司都在招测试开发? - 知乎 (zhihu.com)

软件测试工程师成长痛点和职业发展建议 - 知乎 (zhihu.com)

测试工程师职业发展漫谈 | 大咖深度分享【软件测试开发】 - 知乎 (zhihu.com)

互联网+时代的“呐喊”:为何软件质量如此重要?【软件测试开发】 - 知乎 (zhihu.com)

软件测试有哪些前景? - 知乎 (zhihu.com)

软件测试的岗位会越来越少吗? - 知乎 (zhihu.com)

二、测试择业类

25岁零基础转行软件测试可行吗?有什么困难? - 知乎 (zhihu.com)

软件测试到了35岁,真的就干不动了吗? - 知乎 (zhihu.com)

软件测试岗位会越来越少吗? - 知乎 (zhihu.com)

作为一名测试工程师,你因为你的工作受到过哪些「误解」? - 知乎 (zhihu.com)

软件测试适合女生吗? - 知乎 (zhihu.com)

从文科生转行测试,再到大厂测试开发工程师,我是如何做到的? - 知乎 (zhihu.com)

软件测试适合女孩子吗? - 知乎 (zhihu.com)

29岁转行软件测试靠谱吗? - 知乎 (zhihu.com)

三、测试入门类

对于新入行的软件测试小白有什么好的建议或者忠告? - 知乎 (zhihu.com)

软件测试入门 - 知乎 (zhihu.com)

一个无经验的应届生,可以做软件测试吗? - 知乎 (zhihu.com)

软件测试工程师自学的网站、论坛、社区有哪些? - 知乎 (zhihu.com)

软件测试技术分享 | Bug定位方法 - 知乎 (zhihu.com)

软件测试入门有哪些书籍可供推荐? - 知乎 (zhihu.com)

四、咨询培训类

刚入行的测试工程师如何自学软件测试? - 知乎 (zhihu.com)

4个月高效学习,我是如何从手工测试做到测试开发的? - 知乎 (zhihu.com)

测试人生 | 做了低薪运营6年,妹纸靠什么转行拿下 20W 年薪? - 知乎 (zhihu.com)

战胜测试内卷转型测试开发,拿名企offer最多的班型是如何设计的? - 知乎 (zhihu.com)

从培训机构出来的软件测试工程师,公司会介意吗? - 知乎 (zhihu.com)

初级测试工程师(能找到工作的水平就行)1、学多久2、学什么? - 知乎 (zhihu.com)

北京哪有靠谱的线下软件测试/自动化测试/测试开发培训班? - 知乎 (zhihu.com)

五、测试求职类

面试 | 百度测试开发岗位面试题目回顾 - 知乎 (zhihu.com)

面试| Python 自动化测试面试经典题目回顾 - 知乎 (zhihu.com)

面试 | 今日头条测试开发岗位面试题目回顾 - 知乎 (zhihu.com)

从外包菜鸟到测试开发,薪资一年翻三倍,连自己都不敢信!(附面试真题与答案) - 知乎 (zhihu.com)

测试人生 | 毕业 2 年,涨薪 100%,从创业小团队到某中厂测试开发(附面试真题) - 知乎 (zhihu.com)

测试人生 | 资深外包逆袭大厂测试开发:面试官的“歧视”表情深深刺痛了我 - 知乎 (zhihu.com)

六、技术分享类

轻松掌握 Linux 文本处理三剑客:grep、awk 和 sed 实战演练 - 知乎 (zhihu.com)

如何从 0 开始学 Python 自动化测试开发(一) - 知乎 (zhihu.com)

从 0 开始学 Python 自动化测试开发(二):环境搭建 - 知乎 (zhihu.com)

Java or Python?测试开发工程师如何选择合适的编程语言? - 知乎 (zhihu.com)

接口自动化测试框架开发(pytest+allure+aiohttp+ 用例自动生成) - 知乎 (zhihu.com)

你以为Shell只是命令行?读懂这篇文,给你的工作赋能【软件测试开发】 - 知乎 (zhihu.com)

面试| Python 自动化测试面试经典题目回顾 - 知乎 (zhihu.com)

面试 | 测试一个你完全不熟悉的系统,你会怎么办? - 知乎 (zhihu.com)

如何解决持续交付最后一公里问题?【测试开发】 - 知乎 (zhihu.com)

面试 | 你会使用哪些测试设计方法? - 知乎 (zhihu.com)

测试开发基础 | Python 算法与数据结构面试题系列一(附答案) - 知乎 (zhihu.com)

七、职场提升类

面试 | 卡掉不少人的一道腾讯算法面试题,高手来试试? - 知乎 (zhihu.com)

如何从手工测试快速成为测试开发?你是如何实现的? - 知乎 (zhihu.com)

你的薪资水平打败多少了软件测试同行?| 测试行业年度调研报告公开 - 知乎 (zhihu.com)

测试工程师的转型探索:如何让产品质量变得更好? - 知乎 (zhihu.com)

内推 | 大厂需要什么样的人才?看看这些JD就知道啦 - 知乎 (zhihu.com)

软件测试如何获得高薪? - 知乎 (zhihu.com)

干货 | 测试老鸟总结的 16 个测试改进 Tips ,让你少走弯路! - 知乎 (zhihu.com)

如何从手工测试快速成为测试开发?你是如何实现的? - 知乎 (zhihu.com)

测试工程师的职业规划? - 知乎 (zhihu.com)

发布于 2023-12-26 17:39

菜鸟问题就让菜鸟来回答吧。

任何测试包括Web测试写测试用例都可以先把框架搭好,个人比较喜欢测试大纲法,比较全面。就类似一棵树,先把树干找好,再就每一个树干去发散找树叶(测试用例)。Web测试的树干大致如下:

1. 界面测试

2. 输入框测试(文本、数字、日期、特殊字符等)

3. 搜索测试

4. 注册登陆模块测试

5. 图片上传下载测试

6. 数据增删查改测试

7. 链接测试

8. 特殊键如Back、Tab、Enter、Refresh等测试

9. 易用性测试

10. 兼容性测试(系统、浏览器)

11. 安全测试 (SQL注入、XSS等)

12. 性能测试. (响应时间、吞吐量、资源占用)

发布于 2015-11-06 14:41

现在项目做完了,我觉得还是有必要总结一下,学习到的内容。毕竟有总结才能有提高嘛!总结一下通用的东西,不管什么项目基本都可能会遇到,有写地方也有重复的或者有的是按照个人的习惯来总结的不一定都对,有不对的地方还是希望大家可以指正!

易用性


1、便于使用、理解、并能减少用户发生错误选择的可能性
2、当数据字段过多时,使用便于用户迅速吸取信息的方式表现信息,突出重点信息,标红等方式
3、显示与当前操作相关的信息,给出操作提示。
4、界面要支持键盘自动浏览按钮功能,即按Tab键、回车键的自动切换功能
5、对于常用的功能,用户不需要阅读用户手册就能使用

一致性
1、是否符合广大用户使用同类软件的习惯
2、表现形式的一致性,字体、按钮、控件风格、颜色、术语、提示信息等。(需要有一个全局的概念,不要每个模块都按照他们自己的风格做,结果每个模块效果做出来都不一致,这也是至关重要的所有要测试人员认真检查)
3、交互习惯的一致性,查询、新增、编辑、删除等操作,并保证同一操作类型按钮名称一致。(顺序一致,页面位置也要尽量相同。)
4、当输入框为不可输入或控件为不可使用状态时,统一为灰色不可输入状态;

有序性
1、界面文字、表单、图标等元素根据业务规则、使用频率排列
2、Tab键的顺序与控件排列顺序要一致,目前流行总体从上到下,同时行间从左到右的方式
3、必填项提示信息按照从上到下,从左到右的提示方式依次提示

安全性
1、ID/密码验证方式中能否使用简单密码。如密码标准为6位以上,字母和数字混合,不能包含ID,连续的字母或数字不能超过n位
2、ID/密码验证方式中,连续数次输入错误密码后该账户是否被锁定
3、不登录系统,直接输入登录后的页面的url是否可以访问,(添加拦截器)
4、退出登录后按后退按钮能否访问之前的页面(确认在退出后他的session的信息被注销)
5、当用户无意录入无效和不符合相关规范的数据(如电子邮箱就需要验证他的邮箱格式是否正确)时,并且给予提示信息
6、在用户作出危险的选择时有信息进行提示,比如要删除系统的重要数据,或者这种操作可能对系统造成其他的影响。
7、对可能引起致命错误或系统出错的输入字符或动作要加限制或屏蔽
8、给用户提供UNDO功能用以撤销不期望的操作
9、输入的特殊字符是否能正确处理:`~!@#$%^&*()_+-={}[]|\:;”’ <>,./?

灵活性
1、用户能自由的作出选择,且选择都是可逆的
2、用户方便的使用即互动多重性,不局限于单一的工具(包括鼠标、键盘或软键盘)
3、当页面数据暴涨,出现较长列表时,是否有滚动条保证页面显示完整的信息。

人性化
1、用户可依据自己的习惯定制界面,并能保存设置
2、提供常用的快捷方式
3、尽量减少用户输入动作的数量,加快输入的速度:例如,日期等可以提供默认显示当天日期并且可以进行清除和选择日期,下拉默认选中“请选择”,单选框默认选取使用频率最高的选项等
4、是否用合理的最少步骤实现常用的操作,获得高效率
5、是否提供进度条、动画等反映正在进行的比较耗时间的过程,(特别有的操作可能造成长时间等待,没有直观的呈现出现在的操作状态或相关的提示信息,容易让不熟悉系统的人误会系统出现了问题)
6、是否为重要的操作返回必要的结果信息如:成功,失败(失败的原因),正在执行
7、重要的对象是否用醒目的色彩表示,
8、色彩使用是否符合行业的习惯,界面的色调是否让人感到和谐、满意

页面检查
1、界面布局有序,简洁,符合用户使用习惯
2、界面元素是否在水平或者垂直方向对齐
3、界面元素的尺寸是否合理
4、行列间距是否保持一致
5、是否恰当地利用窗体和控件的空白,以及分割线条
6、窗口切换、移动、改变大小时,界面显示是否正常
7、刷新后界面是否正常显示合理布局
8、不同分辨率页面布局显示是否合理,整齐,分辨率一般为1024*768 > 1280*1024 >800*600
9、不同的浏览器下渲染出来的页面是否存在变形的情况。

弹出窗口
1、弹出的窗口应垂直居中对齐
2、对于弹出窗口界面内容较多,须提供自动全屏功能
3、弹出窗口时应禁用主界面,保证用户使用的焦点
4、活动窗体是否能够被反显加亮

页面正确性
1、界面元素是否有错别字,或者措词含糊、逻辑混乱
2、当用户选中了页面中的一个复选框,之后回退一个页面,再前进一个页面,复选框是否还处于选中状态
3、导航显示正确
4、title显示正确
5、页面显示无乱码
6、需要必填的控件,有必填提醒,如 *
7、适时禁用功能按钮(如权限控制时无权限操作时按钮灰掉或不显示;无法输入的输入框disable掉)
8、页面无js错
9、鼠标无规则点击时是否会产生无法预料的结果
10、鼠标有多个形状时是否能够被窗体识别(如漏斗状时窗体不接受输入)

控件检查
1、查询时默认显示全部
2、选择时默认显示请选择
3、禁用时样式置灰

复选框
1、多个复选框可以被同时选中
2、多个复选框可以被部分选中
3、多个复选框可以都不被选中
4、逐一执行每个复选框的功能
5、当复选框太多时,提供全选和全不选的功能

单选框
1、一组单选按钮不能同时选中,只能选中一个
2、一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空

下拉树
1、应支持多选与单选
2、禁用时样式置灰

树形
1、各层级用不同图标表示,最下层节点无加减号
2、提供全部收起、全部展开功能
3、如有需要提供搜索与右键功能,如提供需有提示信息
4、展开时,内容刷新正常

日历控件
1、同时支持选择年月日、年月日时分秒规则
2、打开日历控件时,默认显示当前日期

滚动条控件
1、滚动条的长度根据显示信息的长度或宽度及时变换,这样有利于用户了解显示信息的位置和百分比,如,word中浏览100页文档,浏览到50页时,滚动条位置应处于中间
2、拖动滚动条,检查屏幕刷新情况,并查看是否有乱码
3、单击滚动条时,页面信息是否正确显示
4、用滚轮控制滚动条时,页面信息是否正确显示
5、用滚动条的上下按钮时,页面信息是否正确显示

按钮
1、点击按钮是否正确响应操作。如单击确定,正确执行操作;单击取消,退出窗口
2、对非法的输入或操作给出足够的提示说明
3、对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会(如删除等危险操作)

文本框
1、输入正常的字母和数字
2、输入已存在的文件的名称
3、输入超长字符。
4、输入默认值,空白,空格。
5、若只允许输入字母,尝试输入数字;反之,尝试输入字母
6、利用复制,粘贴等操作强制输入程序不允许的输入数据
7、输入特殊字符集,例如,NUL及\n等
8、输入不符合格式的数据,检查程序是否正常校验,如程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示。

分页
1、当列表数据较多时是否使用分页控件。
2、系统是否都是使用的同一风格的分页控件。

上传功能检查
1、上传下载文件检查:上传下载文件的功能是否实现,上传下载的文件是否有格式、大小要求、是否屏蔽exe.bat.
2、回车键检查:在输入结束后直接按回车键,看系统处理如何,会否报错。这个地方很有可能会出现错误
3、刷新键检查:在Web系统中,使用浏览器的刷新键,看系统处理如何,会否报错。
4、回退键检查:在Web系统中,使用浏览器的回退键,看系统处理如何,会否报错。对于需要用户验证的系统,在退出登录后,使用回退键,看系统处理如何;多次使用回退键,多次使用前进键,看系统如何处理。 5、直接URL链接检查:在Web系统中,直接输入各功能页面的URL地址,看系统如何处理,对于需要用户验证的系统更为重要。如果系统安全性设计的不好,直接输入各功能页面的URL地址,很有可能会正常打开页面。
6、确认没有上传资料点上传按钮是否有提示
7、确认是否支持图片上传
8、确认是否支持压缩包上传
9、若是图片,是否支持所有的格式(.jpeg,.jpg,.gif,.png等)
10、音频文件的格式是否支持(mp3,wav,mid,等)
11、各种格式的视频文件是否支持
12、上传文件的大小有无限制,上传时间用户是否可接受?
13、是否支持批量上传?
14、若在传输过程中,网络中断时,页面显示什么
15、选择文件后,想取消上传功能,是否有删除按钮
16、文件上传结束后,是否有提示信息并且能回到原来界面

添加功能检查
1、正确输入相关内容,包括必填项,点添加按钮,记录是否成功添加
2、必填项内容不填、其它项正确输入,点添加按钮,系统是否有相应提示
3、内容项中输入空格,点添加按钮,记录能否添加成功
4、内容项中输入系统中不允许出现的字符、点添加按钮,系统是否有相应提示
5、内容项中输入HTML脚本,点添加按钮,记录能否添加成功
6、仅填写必填项,点添加按钮,记录能否添加成功
7、添加记录失败时,原填写内容是否保存
8、新添加的记录是否排列在首行
9、重复提交相同记录,系统是否有相应提示

删除功能检查
1、选择任意一条记录,进行删除,能否删除成功
2、选择不连续多条记录,进行删除,能否删除成功
3、选择连续多条记录,进行删除,能否删除成功
4、能否进行批量删除操作
5、删除时,系统是否有确认删除的提示

查询功能检查
1、针对单个查询条件进行查询,系统能否查询出相关记录
2、针对多个查询条件,进行组合查询,系统能否查询出相关记录
3、系统能否支持模糊查询
4、查询条件全部匹配时,系统能否查询出相关记录
5、查询条件全为空时,系统能否查询出相关记录
6、查询条件中输入%,系统能否查询出相关记录
7、系统是否支持回车查询
8、系统是否设置了重置查询的功能

绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux,6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

​这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

这些都在我的QQ技术交流群里(技术交流和资源共享)

可以免费领取,点击下方小卡片进群(备注“知乎”)群里的免费资料都是笔者到处搜集来的。还有同行大神一起交流技术哦。


壮士且慢,赞完再走!不给小濠分享点赞就想走? 来个赞!当然也不是让大家白点,每天评论区和点赞的前三名可以问作者3个技术上面的问题,能解决的肯定会给大家解决!!!

发布于 2023-07-15 20:06
[雨滴测试]打算把几年来做的自动化经验都通过软文分享出来 ,框架几乎集成了目前自动化所用的各种热门技术 ,比如:docker部署、pipeline持续集成 、配置文件编写测试用例 ,selenium grid等。当年做测试架构师的时候,主要就是负责这套高级框架的研发和维护。最主要的是该框架还在持续研发中,排在计划中的有数据自动化 ,基于流量回访生成测试用例、能适配所有项目都是该框架研发的目标 。有感兴趣的可以点赞加关注 。

以下用例需要先编写页面对象层和页面逻辑层,具体可参考:

web自动化测试框架系列-框架中实现页面对象(二十) - 知乎 (zhihu.com)

web自动化测试框架系列-框架中对操作逻辑的封装(二十一) - 知乎 (zhihu.com)

1.编写测试用例

接下来 ,就是对测试用例的编写 ,主要模块包括登录 、注册 、购物流程 ,每一模块我们编写几条用例用来说明,其中 :

登录模块用例 :

  • 输入正确的用户名和正确的密码进行登录
  • 输入正确的用户名和空的密码进行登录
  • 输入正确的用户名和错误的密码进行登录

登录只编写了3条测试用例 ,但是这3条测试用例可以使用参数化 。

注册模块用例:

  • 输入正确的手机号 、验证码、密码及确认密码进行注册 。

虽然我们只写了一条用例 ,但是运行这一条也会存在个问题,即当这条执行完毕后 ,下次再执行就会失败 ,因为同一手机号只能注册一次 ,这个问题怎么解决呢 ? 这就会用到我们的setup和tearDown

购物流程用例 :

  • 首页-点击某个商品的详情-加入购物车-去结算-提交订单-查看我的订单。

以上的这条用例完全是按照正常流程来进行的 ,我们可以拿它做冒烟测试、也可以做回归测试 ,所以web自动化往往会写这些流程用例。

整理好以上的用例以后 ,就可以开始编写对应的代码了 。

2.编写测试脚本

因为使用的是pytest进行编写 ,所以可以先编写一个driver的fixture函数 。具体编写文件conftest.py .

conftest.py

@pytest.fixture(scope='function')
def driver():
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get(BASE_URL)
    yield driver
    driver.quit()

test_login.py

import pytest
from logic.login_reg import LoginLogic

# 将数据暂时保存到这里 ,后面再进行用例和数据分离
login_data = [
    ('登录成功', '13088888888', '123456', '8888', '13088888888'),
    ('密码错误!', '13088888888', '1234567', '8888', '密码错误!'),
    ('密码不能为空!', '13088888888', '', '8888', '密码不能为空!')
]

lg = LoginLogic()


@pytest.mark.parametrize("cases",login_data)
def test_login(cases,driver):
    lg.login(driver,cases[1],cases[2],cases[3])

    if cases[0] == "登录成功":
        text_msg = lg.get_login_success_msg(driver)
    else:
        text_msg = lg.get_password_error_msg(driver)

    assert text_msg == cases[4]


test_reg.py

from logic.login_reg import LoginLogic
from mysql.base_mysql import BaseMysql
from time import sleep
from mysql.user_mysql import user_delele
from setting import REG_USERNAME,PASSWORD,VERIFY_CODE


reg = LoginLogic()
mysql = BaseMysql()


def reg_init():
    mysql.execute(user_delele.format(REG_USERNAME))
    yield
    mysql.close()


def test_reg(driver):
    reg.mobile_reg(driver,REG_USERNAME,VERIFY_CODE,PASSWORD,PASSWORD)
    sleep(5)        # 没有封装智能等待,现在智能硬等待
    result = reg.reg_is_success(driver)
    assert '安全退出' == result

test_buy_flow.py

from setting import USERNAME,PASSWORD,VERIFY_CODE
from logic.buy_flow import BuyFlowLogic
from logic.login_reg import LoginLogic
from time import sleep
from utils.object_utils import cache
from loguru import logger


buy = BuyFlowLogic()
login = LoginLogic()


def test_buy_flow(driver):
    login.login(driver,USERNAME,PASSWORD,VERIFY_CODE)
    sleep(2)
    buy.buy(driver)
    # 预期结果 : 从缓存中提取
    shop_name = cache.get('shop_name')
    logger.info("从缓存中提取的商品名称为:{}".format(shop_name))
    shop_price = cache.get("shop_price")
    logger.info("从换成中获取的商品价格为:{}".format(shop_price))
    cur_time = cache.get('cur_time')
    logger.info("获取出产生订单的时间:{}".format(cur_time))

    # 实际结果
    order_id,order_name,order_price,order_number,order_status = buy.get_order_info(driver)

    assert shop_name == order_name[0:13]
    assert shop_price == order_price
    assert 'x1' ==order_number
    assert '待发货' == order_status
    assert abs(cur_time-int(order_id[0:14])) <= 5

发布于 2024-04-17 08:47

首先:
在编写测试用例之前,你得去了解一下整个测试流程:

需求分析,制定测试计划,编写测试用例,用例评审,执行测试,测试评估


参照整个测试流程,就可以知道,我们在编写一个测试用例之前,是需要进行需求分析的。
依据需求分析可以得到被测产品的测试点,再依据测试点就可以去完成测试用例的编写了。

ps:编写测试用例的设计方法,可以参照等价类,边界值,场景法,错误推测法

其次:
问题中涵盖多少内容。估计写多少个测试用例。
这个是无法回答的,因为每一个产品的需求都不一样的,是无法进行估算。

评估一份测试用例写没有写好的一个重要标准就是有没有完全覆盖住需求。
只要测试用例覆盖住需求,那么我们可以说,这个用例是OK的。

怎么写测试用例???

测试用例是每个软件测试工程师入行的必备技能,也是比较考验我们测试思维以及测试基本功的一项任务。我们根据2W1H来描述我们编写用例的过程:

When:项目立项后,对项目进行需求分析后,开始着手编写测试用例;
Where:用例一般写在Excel或者是word里面,利用这两个文档对用例进行存档;
How:用例设计一般采用的方法有等价类、边界值、错误推测法以及场景法等。

一条完整的用例,一般包含如下信息:序号,功能模块,用例标题,前提条件,测试步骤,期望结果,实际结果,备注。对用例的元素进行整理,如下表所示:

针对上述测试用例关键信息字段的描述,我们来小试牛刀,针对注册功能模块来编写注册的测试用例:

此用例并不完整,只是抽取了一些比较典型的用例,一般新手编写测试用例,会采用如下的方式:

1)根据功能模块,把输入参数项从上到下分别罗列出来进行用例编写;

2)针对上述罗列出来的输入参数项分别用:等价类、边界值、错误推测法以及场景法设计测试用例。

所以上述用例,还有手机号码、密码的用例设计不完整,这里就留给大家自行去思考编写!

更多测试用例编写学习视频如下:(可以私信我领取哦)

编辑于 2019-04-20 11:00
【千锋软件测试】30 企业员工测试用例设计
122 播放
发布于 2023-05-31 09:14· 1 次播放

除了通用型的,有时候还会根据功能的不同,一些数据一致性测试、cgi测试、通过改包的破坏性测试等

发布于 2016-02-02 20:04

详细可以参考如下:

功能测试用例编写框架

功能测试框架可以包括:界面友好性测试、功能测试、链接测试、容错测试、稳定性测试、常规性能测试、配置测试、算法测试等等。


1.1.1 界面友好性测试

1. 风格、样式、颜色是否协调

2. 界面布局是否整齐、协调(保证全部显示出来的,尽量不要使用滚动条

3. 界面操作、标题描述是否恰当(描述有歧义、注意是否有错别字)

4. 操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作)

5. 提示界面是否符合规范(不应该显示英文的cancel、ok,应该显示中文的确定等)

6. 界面中各个控件是否对齐

7. 日期控件是否可编辑

8. 日期控件的长度是否合理,以修改时可以把时间全部显示出来为准

9. 查询结果列表列宽是否合理、标签描述是否合理

10. 查询结果列表太宽没有横向滚动提示

11. 对于信息比较长的文本,文本框有没有提供自动竖直滚动条

12. 数据录入控件是否方便

13. 有没有支持Tab键,键的顺序要有条理,不乱跳

14. 有没有提供相关的热键

15. 控件的提示语描述是否正确

16. 模块调用是否统一,相同的模块是否调用同一个界面

17. 用滚动条移动页面时,页面的控件是否显示正常

18. 日期的正确格式应该是XXXX-XX-XX或XXXX-XX-XXXX:XX:XX

19. 页面是否有多余按钮或标签

20. 窗口标题或图标是否与菜单栏的统一

21. 窗口的最大化、最小化是否能正确切换

22. 对于正常的功能,用户可以不必阅读用户手册就能使用

23. 执行风险操作时,有确认、删除等提示吗

24. 操作顺序是否合理

25. 正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。

26. 系统应该在用户执行错误的操作之前提出警告,提示信息.

27. 页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。

28. 合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。

29. 检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。

30. 背景灰度冻结


1.1.2 功能测试

1. 使用所有默认值进行测试

2. 根据所有产品文档、帮助文档中描述的内容要进行遍历测试

3. 输入判断

4. 所有界面出现是和否的逻辑,要测试

5. 异常处理

6. 敏感词

7. 根据需求文档的流程图遍历所有流程图路径

8. 根据程序内容,遍历if elif else switch的逻辑点要遍历

9. 界面各种控件测试


如对于输入框测试

一、字符型输入框:

1. 字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。

2. 长度检查:最小长度、最大长度、最小长度-1、最大长度+1、输入超工字符比如把整个文章拷贝过去。

3. 空格检查:输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空格

4. 多行文本框输入:允许回车换行、保存后再显示能够保存输入的格式、仅输入回车换行,检查能否正确保存(若能,检查保存结果,若不能,查看是否有正常提示)、

5. 安全性检查:输入特殊字符串

(null,NULL,,javascript,<script>,</script>,<title>,<html>,<td>)、输入脚本函数(<script>alert("abc")</script>)、doucment.write("abc")、<b>hello</b>)

二、数值型输入框:

1. 边界值:最大值、最小值、最大值+1、最小值-1

2. 位数:最小位数、最大位数、最小位数-1最大位数+1、输入超长值、输入整数

3.异常值、特殊字符:输入空白(NULL)、空格或"~!@#$%^&*()_+{}|[]\:"<>?;',./?;:'-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用粘贴拷贝查看是否能正常提交、word中的特殊功能,通过剪贴板拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等、

输入负整数、负小数、分数、输入字母或汉字、小数(小数前0点舍去的情况,多个小数点的情况)、首位为0的数字如01、02、科学计数法是否支持1.0E2、全角数字与半角数字、数字与字母混合、16进制,8进制数值、货币型输入(允许小数点后面几位)、

4. 安全性检查:不能直接输入就copy

三、日期型输入框:

1. 合法性检查:(输入0日、1日、32日)、月输入[1、3、5、7、8、10、12]、日输入[31]、月输入[4、6、9、11]、日输入[30][31]、输入非闰年,月输入[2],日期输入[28、29]、输入闰年,月输入[2]、日期输入[29、30]、月输入[0、1、12、13]

考虑开始日期与结束日历的比较,特别是在查询的时候.

2. 异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&*(){}[]等可能导致系统错误的字符

3. 安全性检查:不能直接输入,就copy,是否数据检验出错?


1.1.3 业务流程测试(主要功能测试)

业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。

如某一功能模块具有最基本的增删改查功能,则需要进行以下测试:

1. 单项功能测试(增加、修改、查询、删除)

2. 增加——>增加——>增加 (连续增加测试)

3. 增加——>删除

4. 增加——>删除——>增加 (新增加的内容与删除内容一致)

5. 增加——>修改——>删除

6. 修改——>修改——>修改 (连续修改测试)

7. 修改——>增加(新增加的内容与修改前内容一致)

8. 修改——>删除

9. 修改——>删除——>增加 (新增加的内容与删除内容一致)

10. 删除——>删除——>删除 (连续删除测试)


1.1.4 链接测试


主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。

可以使用特定的工具如XENU来进行链接测试。


1.1.5 容错测试


1. 输入系统不允许的数据作为输入

2. 把某个相关模块或者子系统停掉,验证对当前系统的影响

3. 配置文件删除或者配置错误

4. 数据库注入错误数据


1.1.6 稳定性测试


1. 系统不间断运行(7*24),验证是否内存泄露、系统其他资源是否存在泄露

2. 如果很紧急上线,可以跑一晚上或者周末跑两天。

一般压力很大的情况下,数据库连接数问题、内存泄露问题会曝露的比较快但是死锁可能不能体现,所以要看系统重要性,如12306稳定性则最好7*24小时


1.1.7 常规性能测试


1. 连接速度测试

用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。

2. 负载测试
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?

3. 压力测试
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
压力测试的区域包括表单、登陆和其他信息传输页面等


1.1.8 易用性测试

1. 系统界面的控件是否可以通过tab键遍历,并且顺序合理

2. 主要功能的入口和操作是否易于理解

3. 界面是否布局合理,功能是否易于查找和使用

4. 操作步骤

5. 操作习惯

6. 有足够的提示信息,且信息文字描述准确


1.1.9 兼容性测试

兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,包括操作系统兼容和应用软件兼容,可能还包括硬件兼容,比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。

除了上面所说的这些测试以外,还有算法测试、配置测试、安全性测试等等,在工作中不断总结和分析,形成自己的功能测试框架,当你把这份工作做起来以后,对于你自己对于测试团队而言都是一份很有价值的事情,你的测试思路也会变得更全面。

发布于 2020-03-05 13:10

具体编写的流程

1、测试需求分析,得到测试点

在测试需求分析阶段,我们只有需求文档,所以编写测试用例的唯一依据就是需求文档,因此在进行用例编写之前一定要进行需求分析,需求分析的主要工作就是:了解需求的整个实现背景;分析需求的合理性;明确需求的范围,挖掘需求文档中隐藏的需求;通过对需求分析的深入,列出需求的框架,包括测试范围即各个功能点,测试的场景等;确定一些测试可以提前介入的工作等。

2、分析得到用例优先级

得到了需求的各个测试点后,应该先将这些测试点简单的分配一下优先级,一般分为高中低三个优先级。

3、细化测试点变成可执行的用例

根据测试需求分析得到的需求框架,梳理细化测试点,这里的测试点虽然粗,但是不应该有遗漏,这是进行测试点细化的前提。根据测试点,细化出具体的测试用例,要注意各个点的组合测试的情况,还要注意各个测试点的反向测试的情况。

==========================================================

==========================================================

python自动化学习视频:

发布于 2022-10-12 16:03

设计测试用例的基本原则,对于软件测试非常重要,这些原则有助于设计出高质量、全面、有效的测试用例,从而提高软件测试的效率和准确性,维护软件的质量和稳定。如果在设计用例时没有遵循基本原则,这会影响用例的全面性、准确性和简洁性,不利于尽早发现潜在的缺陷和及时避免冗余和重复测试相同功能或场景,降低了测试效率,影响项目质量。

因此,我们需要严格遵循设计用例基本原则,一般来说有以下6种基本原则:

设计测试用例的6种基本原则

1、需求为主、设计为辅的原则

设计测试用例时应遵循的基本原则:以需求为主,以设计为辅,避免过度设计。遵循该原则设计测试用例,所需的注意事项如下:

(1)从需求出发,设计能有效验证需求的测试用例

(2)明确不在需求范围内的功能,不设计测试用例

(3)在需求范围内的功能,不过度设计。

(4)一些没有明确提出、但属于共识或隐含的需求,应设计测试用例

如,对于一个集成系统之间用于同步数据的更新接口,如果需求规定接口只允许单独调用,设计并发量的测试就属于过度设计。

需求为主、设计为辅的原则

遵循需求为主、设计为辅的原则,同时为进一步提高测试用例编写效率和确保测试覆盖率,CoCode开发云使用AI,自动生成每个需求的正向反向多维度测试用例,提高测试覆盖度和全面性,保障测试质量,减轻测试人员工作量,提高20%-30%工作效率。

2、场景化原则

设计测试用例时应遵循场景化原则,即尽可能贴近真实用户的使用场景,包括各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等。

遵循该原则设计测试用例,注意事项如下:

(1)应全覆盖真实用户的使用场景

(2)围绕场景进行更多的探索

(3)以第一人称的主观视角描述用例,从客户使用角度构建思维导图

(4)按照用户使用的自然顺序设计用例

场景化原则

如,某车载导航一过隧道地图就失灵了,车机不能连WiFi,信号差导航没法用……在软件测试阶段这些问题都没暴露,而嵌入式软件的功能验证不能不考虑真实的使用场景,能在需求分析时就考虑到当然很好,如果前期缺失这些关键信息,在测试设计时进行使用场景的思考就显得尤为重要。

3、原子化原则

测试用例应该具备原子性,应有单独的测试点,确保每个用例只测试一个功能点或场景。

遵循该原则设计测试用例,注意事项如下:

(1)复杂的功能拆分成多个原子化的测试用例,以便更好地管理和定位问题

(2)每个测试用例包含的测试步骤尽量不超过10个

(3)避免将多种情况塞在一个用例里

如,对于一个购物车功能的测试,可以将添加商品、删除商品、修改商品数量等功能拆分成多个原子化的测试用例。

原子性

4、独立性原则

测试用例应该相互独立,一个用例的执行结果不应该影响其他用例的执行结果,进而确保测试结果的准确性和可靠性。即用例B的执行不应该依赖于用例A的执行结果。

测试用例之间不应该有任何依赖关系,即使前一个测试用例的执行结果会影响后一个测试用例的执行,也应该通过在每个测试用例中设置初始状态来实现独立性。测试用例之间应该避免顺序依赖、数据依赖、资源依赖、时间依赖以及环境依赖,以保持每个测试用例能够独立执行,从而提高测试的可维护性和可重复性。

独立性原则

5、可重复性原则

可重复性原则是指测试用例应该能够在不同的测试环境和执行时间重复执行,并产生一致的结果。这个原则的目的是确保测试结果的可靠性和稳定性,以便进行回归测试和统计覆盖率等工作。

为了遵循可重复性原则,我们需要确定测试环境、准备特定的测试数据、清理测试环境、隔离测试用例、记录测试过程以及自动化测试。

通过执行这些测试用例,我们可以重复验证登录功能的正确性,并确保在不同的测试环境和执行时间下都能产生一致的结果。这样可以提高测试的可靠性和稳定性,帮助开发团队及时发现和修复问题。

可重复性原则

6、可判定原则

测试用例可判定原则,是指测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。通过定义明确的预期结果,可以判断测试是否通过或失败。应给出可判定的期望执行结果,在没有缺陷的情况下,多次执行应保持结果一致性。

遵循该原则设计测试用例,注意事项如下:

(1)判定准则应明确可判,避免模糊或笼统的描述

(2)除非业务规则变化,否则判定准则应不变

(3)同一条件下,多次执行结果判定应一致

只要测试用例有单一的判定规则,可以按照预期结果和实际结果来判断用例是否通过,就满足了可判定原则。如,对于一个登录功能的测试用例,预期结果可以是成功登录后跳转到指定页面,或者登录失败后显示错误提示信息。

可判定原则

设计测试用例时,应遵循以上6大原则,帮助我们设计出全面的测试用例,从而提高测试的效率和质量,降低软件的风险和成本。

发布于 2023-11-15 17:14

哈哈,我来分享一下我的理解和设计思路。

第一:所有的设计出发点和第一目标永远是业务,业务,业务。

没有业务为中心的测试都是空洞的。所以基于业务流程的设计最是核心。正向和逆向。

第二:数据层面的交互。页面数据经过中间件,缓存,然后持久话。也就是最常见的入库。数据的正确性、完整性也是重中之重。

第三: UI层面的测试。这个小白最有经验。表单,链接,字体,搜索框,翻页功能,排序等UI方面。这无需多言。

第四:我理解为扩展方面的综合验证。兼容,web安全,性能考量,易用性,本地化等等……

如上针对功能测试用例的参考。其他类型的测试用例当然还是有区别的。网上的回答很多没有重点没有分类。 仅做参考。

发布于 2018-03-23 08:28

前言

由于web应用与用户直接相关,又通常需要承受长时间的大量操作,因此web项目的功能和性能都必须经过可靠的验证。

这就要经过web项目的全面测试。Web应用程序测试与其它任何一种类型的应用程序测试相比没有太大差别。Web的流行和无所不在,是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。

Web测试:界面测试、功能测试、性能测试、接口测试、客户端兼容性测试、安全性测试。

测试对象 Web的页面元素 页面部分 1.页面清单是否完整 2.页面在不同的分辨率和不同的浏览器版本是否显示 3.页面在不同大小的窗口中的显示是否正确、美观 4.页面特殊效果是否显示:如特殊字体效果、动画效果 5.页面特殊效果显示是否正确 6.每个页面都有相应的Title,不能为空,或者显示“无标题页”

页面元素部分 1.页面元素清单是否全部列出:如按钮、单选框、复选框、列表框、超连接、输入框等等 2.元素是否存在,是否显示 3.页面元素是否显示正确,如文字、图形、签章等 4.页面元素的外形、摆放位置 5.页面元素基本功能是否实现 6.页面元素的容错性是否存在,是否正确

一、链接测试

主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。可以使用特定的工具如XENU来进行链接测试。

1.导航测试:导航菜单的描述与导航的链接是否一致,是否有效,如果是相同的页头导航,每个页面都需要测试。

2.图形测试:每个图形的描述与链接是否一致,是否有效,尤其注意幻灯片的链接测试。

3.URL链接检查:在地址栏直接输入各个功能页面的URL地址,看系统如何处理,是否有效

4.Web的业务逻辑

==========================================================

二、输入测试

字符型输入框: 1.字符检查:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&*?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。

2.长度检查:最小长度、最大长度、最小长度-1、最大长度+1、输入超工字符比如把整个文章拷贝过去。

3.空格检查:输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空格。

4.多行文本框输入:允许回车换行、保存后再显示能够保存输入的格式、仅输入回车换行,检查能否正确保存。若能,检查保存结果,若不能,查看是否有正常提示。

5.安全性检查:输入特殊字符串

(null, NULL,  javascript, <script>, </script>, <title>, <html>, <td>)、输入脚本函数(<script>alert("abc")</script>)、doucment.write("abc")、<b>hello</b>

数值型输入框: 1.边界值:最大值、最小值、最大值+1、最小值-1

2.位数:最小位数、最大位数、最小位数-1最大位数+1、输入超长值、输入整数   3.异常值、特殊字符:输入空白(NULL)、空格或"~!@#$%^&*()_+{}|[]\:"<>?;',./?;:'-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用“粘贴、拷贝”查看是否能正常提交。将Word里面的特殊字符通过剪贴板拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等

4.输入负整数、负小数、分数、输入字母或汉字、小数(小数前0点舍去的情况,多个小数点的情况)、首位为0的数字如01、02、科学计数法是否支持1.0E2、全角数字与半角数字、数字与字母混合、16进制,8进制数值、货币型输入(允许小数点后面几位)、

日期型输入框:

1.合法性检查:(输入0日、1日、32日)、月输入[1、3、5、7、8、10、12]、日输入[31]、月输入[4、6、9、11]、日输入[30][31]、输入非闰年,月输入[2],日期输入[28、29]、输入闰年,月输入[2]、日期输入[29、30]、月输入[0、1、12、13]    2.异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&*(){}[]等可能导致系统错误的字符

3.安全性检查:不能直接输入,就copy,是否数据检验出错?   搜索功能 功能实现: 1.如果支持模糊查询,搜索名称中任意一个字符是否能搜索到

2.比较长的名称是否能查到

3.输入系统中不存在的与之匹配的条件   4.用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明。

组合测试: 不同查询条件之间来回选择,是否出现页面错误(单选框和多选框最容易出错) 测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错。

三、表单测试

普通表单: 1.特殊键:是否支持Tab键,是否支持回车键,PageUp和PageDown等

2.提示信息: 不符合要求的地方是否有错误提示, 不选择任何信息,直接点击删除按钮,是否有提示

3.唯一性: 字段唯一的,是否可以重复添加,添加后是否能修改为已存在的字段(字段包括区分大小写以及在输入的内容前后输入空格,保存后,数据是否真的插入到数据库中,注意保存后数据的正确性)

4.数据增加正确性: 对编辑页的每个编辑项进行修改,点击保存,是否可以保存成功,检查想关联的数据是否得到更新。

进行必填项检查(即是否给出提示以及提示后是否依然把数据存到数据库中;是否提示后出现页码错乱等)

是否能够连续添加(针对特殊情况)

在编辑的时候,注意编辑项的长度限制,有时在添加的时候有,在编辑的时候却没有(注意要添加和修改规则是否一致)

对于有图片上传功能的编辑框,若不上传图片,查看编辑页面时是否显示有默认的图片,若上传图片,查看是否显示为上传图片

修改后增加数据后,特别要注意查询页面的数据是否及时更新,特别是在首页时要注意数据的更新。

提交数据时,连续多次点击,查看系统会不会连续增加几条相同的数据或报错。

若结果列表中没有记录或者没选择某条记录,点击修改按钮,系统会抛异常。

5.数据删除实现: 是否能连续删除多个产品

当只有一条数据时,是否可以删除成功

删除一条数据后,是否可以添加相同的数据

如系统支持批量删除,注意删除的信息是否正确,如有全选,注意是否把所有的数据删除

删除数据时,要注意相应查询页面的数据是否及时更新

如删除的数据与其他业务数据关联,要注意其关联性(如删除部门信息时,部门下游员工,则应该给出提示)

如果结果列表中没有记录或没有选择任何一条记录,点击删除按钮系统会报错。

注册模块 1.注册时,设置密码为特殊符号,检查登录时是否会报错

2.注册成功后,页面应该以登录状态跳转到首页或指定页面

3.在注册信息中删除已输入的信息,检查是否可以注册成功

四、总结

人生本该如此:勇敢地面对挑战,坚定地去实践自己的梦想,不要怕。作出了选择,就要勇敢地承担责任和后果,不要后悔。对于那些害怕危险的人,危险无处不在。

伟人所达到并保持着的高处,并不是一飞就到的,而是他们在同伴们都睡着的时候,一步步艰辛地向上攀爬的。

千淘万漉虽辛苦,吹尽黄沙始到金。风雨后的彩虹最美丽,拼搏收获的果实最甜美。祝愿朋友跨越坎坷,一往直前,百折不挠,早日实现自己的理想!

发布于 2022-09-25 16:40

设计界面Web测试中的界面测试用例设计软件测试一、文本框、按钮等控件测试1、文本框的测试如何对文本框进行测试:a、输入正常的字母或数字;b、输入已存在的文件的名称;c、输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符,  Web测试中的界面测试用例设计 软件测试  一、文本框、按钮等控件测试  1、文本框的测试  如何对文本框进行测试:  a、输入正常的字母或数字;  b、输入已存在的文件的名称;  c、输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符,尝试输入256个字符,检查程序能否正确处理;  d、输入默认值,空白,空格;

关注我,有很多免费公开课,一起来学习

发布于 2022-09-06 15:43