软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)

简介: 软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)

前言

本文分为以下内容:

  1. 认识软件缺陷及定义
  2. 软件缺陷的发现与处理
  3. 软件测试定义及常用类型
  4. 软件测试的分类
  5. 软件测试经典测试案例题——纸杯测试

一、认识软件缺陷及定义

bug与Debug:

”bug”术语的发明,因为格蕾丝·霍波(Grace Murray Hopper,是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。)她公布过早期电子计算机的一个故障原因,通常错误地归功于她。这个版本的故事源自下面这段话:“在1946年,当霍波退役后后,她加入哈佛大学的计算机实验室,继续研究马克II型和马克III型计算机的工作。操作员在追踪马克II型的错误时发现继电器中有一只飞蛾,遂有bug术语。这个bug被仔细移除,并被贴在日志本上。这带来的第一个bug,就是我们今日所说的错误(error)或程序中的故障(glitch)。”——百度百科

”Debug“意为程序除错,就是解决程序错误,也叫做调试。

软件缺陷的定义:

软件缺陷通常被称为bug,即计算机软件或程序中存在的运行错误、功能缺陷等。

软件缺陷分为:代码缺陷和功能(界面)缺陷。

IEEE对软件缺陷的定义(IEEE729(1983)):从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;

从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。

很多的bug都是在使用过程中才被发下,说明软件缺陷具有隐藏性,但是随着产品开发工作的进行,缺陷会扩散成大缺陷。

二、软件缺陷的发现与处理

如何找缺陷呢?

软件测试营运而出,即输入输出数据,根据具体的测试用例进行测试,预期结果与实际结果进行比较,从而来寻找软件缺陷。

缺陷状态:

1、经典状态:打开(缺陷处于打开状态)——指定(缺陷报告验证后,将缺陷指派给相关的开发人员负责修复缺陷)——解决(开发人员修复缺陷,并在缺陷报告上简要说明解决的措施和步骤)——关闭(测试人员对已返回的缺陷报告进行检查,重新执行相关用例,确认缺陷已经修复)——重新打开(缺陷可能因为未考虑到的情况而再次出现)

2、常见状态:激活(缺陷打开与指定)——解决——关闭

软件缺陷的分类

软件缺陷有很多,根据不同的情况与角度,可以讲缺陷分为不同的种类。

软件缺陷严重程度:

严重(系统无法使用的bug)——很高(系统级错误的bug)——高(功能性错误的bug)——中(严重界面错误,但是不影响主功能,影响小)——低(界面、提示信息等其他文字类错误)

软件缺陷的优先级:

立即解决——高优先级——正常排队——低优先级

软件缺陷的测试种类:

界面类、功能类、性能类、安全性类、兼容性类。

软件缺陷的不同阶段:

需求分析阶段缺陷——架构阶段缺陷——设计阶段缺陷——编程阶段缺陷——测试阶段缺陷

软件缺陷不同标准划分一览图:

软件缺陷处理方式:

1、已修复:开发人员对修改了相关缺陷并在缺陷报告中说明了修复步骤,等待测试人员的验证,确保缺陷修复

2、暂缓:缺陷确定存在,因技术或时间原因暂时延缓修复

3、外部原因:因外部技术原因,开发人员无法修复缺陷

4、不修复:缺陷被用户发现的概率可以忽略不记,不值得耗费资源(时间、人力等)来修复。

5、重复缺陷:其他测试人员已提交的缺陷。

6、不可重现:根据缺陷报告无法触发该缺陷,也没有其他证据来证实该缺陷的存在。

7、符合设计:程序运行的情况是设计要求的预期情况。

软件缺陷处理流程图:

缺陷报告文档(以Excel表的形式提交)

下面以图书馆管理系统缺陷报告为例:

三、软件测试定义及常用类型

软件测试的定义

软件测试是由一个程序的行为在有限测试用例集合上,针对期望的行为的动态验证组成,测试用例是从通常的无限执行域中适当选取的。

常用的软件测试类型 

编写缺陷时需要注意:

  1. 每个缺陷有且只有一个编号,时缺陷的唯一标识
  2. 缺陷需要有步骤重现。
  3. 一个缺陷生成一份报告,报告要完整。

四、软件测试的分类

按照不同的测试角度有不同的测试方法、技术与名称。下面笔者将一一分类说明。

1、按照测试阶段分类

单元测试——冒烟测试——集成测试——系统测试——验收测试——回归测试——Alpha测试——Beta测试

具体说明如下图:

2、按照测试技术分类

黑盒测试

对应功能测试或数据驱动测试:适用于系统测试,基于需求和功能性的测试,在已知产品所应具有的功能的基础上进行检测每个功能是否能正常使用。

白盒测试

对应结构测试或逻辑驱动测试,适用于单元测试,基于覆盖全部代码、分支、路径、条件的测试。

灰盒测试

介于白盒和黑盒之间的测试,关注输入输出的正确性,同时也关注内部的表现

功能测试

测试软件的功能是否满足客户的需求,包括准确性、易用性、适合性、互操作性等

性能测试

关注对软件的时间资源、空间资源的占用要求上,也是最原始的性能需求。包括执行效率、资源占用、稳定性、可靠性、安全性,兼容性、可扩展性等。

3、按照被测软件的角度划分

静态测试:不利于计算机运行待测程序而应用其他手段实现测试目的,如代码审核,主要是通过人工查找的方法进行。

动态测试:通过运行被测试软件来达到目的,借助开发软件帮助提示软件存在的问题。

4、按照测试方式划分

人工测试:通过测试人员人为的设计开发测试数据,并逐步带入软件中完成测试工作。

自动化测试:利用专门的测试软件或者借助脚本等模拟操作过程,完成测试任务。

5、按照测试类型分类

界面类测试:验证软件界面是否符合客户需求,包括界面布局是否美观、按钮是否齐全等。

安全性测试:测试软件在没有授权的内部或外部用户的攻击或恶意破坏时如何进行处理,是否能保证软件与数据的安全。

文档测试:以需求分析、软件设计、用户手册、安装手册为主,主要验证文档说明与实际软件之间是否存在差异。

五、软件测试经典测试案例题——纸杯测试

“纸杯测试”是微软公司给软件测试者面试的经典测试案例,用于考察面试者对软件测试的理解与掌握程度。

测试项目:纸杯。

需求测试:查看纸杯说明书是否完整。

界面测试:观察纸杯外观,测试表面是否光滑、手感是否舒适。

功能测试:用纸杯装水,观察是否漏水。安全测试:纸杯是否有毒或细菌。

可靠性测试:从不同高度摔下来,观察纸杯的损坏程度。

易用性测试:用纸杯盛放开水是否烫手,纸杯是否易滑、是否方便饮用。

兼容性测试:用纸杯分别盛放水、酒精、饮料、汽油等,观察是否有渗漏现象。

可移植性测试:将纸杯放在温度、湿度等不同的环境中,查看纸杯是否还能正常使用。

可维护性:将纸杯揉捏变形,看其是否能恢复。

压力测试:用一根针扎在纸杯上不断增加力量,记录多大压强时针能穿透纸杯。

疲劳测试:用纸杯分别盛放水、汽油放置24小时,观察其渗漏情况(时间和程度)。

跌落测试:纸杯(加包装)从高处落下,查看可造成破损的高度。

震动测试:纸杯(加包装)六面震动,评估它是否能应对恶劣的公路/铁路/航空运输等。

测试数据:编写具体测试数据,其中可能会用到场景法、等价类划分法、边界值分析法等测试方法。

期望输出:期望输出需要查阅国际标准及用户的使用需求。

用户文档:使用手册是否对纸杯的用法、使用条件、限制条件等有详细描述。

说明书测试:查看纸杯说明书的正确性、准确性及完整性。

总结

软件测试,是软件生命周期的重要一环,软件缺陷尽早发现,可以使损失尽量降低。纸杯测试案例,使我们对软件测试有了整体的感知以及对测试流程有了大概的了解。下一篇会对软件测试原则与基本流程进行了解并介绍常见的软件测试模型以及黑盒测试的具体测试用例。

目录
相关文章
|
28天前
|
人工智能 测试技术 项目管理
测试不再碎片化:AI智能体平台「项目资料套件」功能上线!
在实际项目中,需求文档分散、整理费时、测试遗漏等问题常困扰测试工作。霍格沃兹推出AI智能体测试平台全新功能——项目资料套件,可将多个关联文档打包管理,并一键生成测试用例,提升测试完整性与效率。支持套件创建、文档关联、编辑删除及用例生成,适用于复杂项目、版本迭代等场景,助力实现智能化测试协作,让测试更高效、更专业。
|
12天前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
12天前
|
测试技术 UED 开发者
性能测试报告-用于项目的性能验证、性能调优、发现性能缺陷等应用场景
性能测试报告用于评估系统性能、稳定性和安全性,涵盖测试环境、方法、指标分析及缺陷优化建议,是保障软件质量与用户体验的关键文档。
|
2月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
154 0
|
2月前
|
人工智能 数据可视化 测试技术
UAT测试排程工具深度解析:让验收测试不再失控,项目稳稳上线
在系统交付节奏加快的背景下,“测试节奏混乱”已成为项目延期的主因之一。UAT测试排程工具应运而生,帮助团队结构化拆解任务、清晰分配责任、实时掌控进度,打通需求、测试、开发三方协作闭环,提升测试效率与质量。本文还盘点了2025年热门UAT工具,助力团队选型落地,告别靠表格和群聊推进测试的低效方式,实现有节奏、有章法的测试管理。
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
744 23
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
695 24
|
5月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
239 2
|
7月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
337 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡

热门文章

最新文章