【软件测试】软件测试基础概念总结

简介: 能够设计出高效的发现缺陷和保证产品质量的优秀测试用例具有探索性思维,发散思维,对软件测试有浓厚的兴趣并且对工作有责任感和压力

1. 初识软件测试

1.1 什么是软件测试

软件测试就是验证软件的功能是否满足用户的需求,通俗的讲就是找BUG,找软件的缺陷


软件测试的特点:软件测试只是一个样本实验,具有不可穷尽性


1.2 软件测试和软件开发的区别

本质不同

软件测试:软件测试是验证软件功能是否满足用户的需求


软件开发:软件开发是将用户的需求采用编码的方式制作成软件(小程序,网站等)


深度广度不同

软件测试:技能要求比较广泛(业务能力,测试手段和工具的使用,用户模型分析和理解等),但技能要求专业度不高


软件开发:技能要求的专业度高,但技能要求不广泛(如C++开发,Java开发等会一个即可)


1.3 软件测试与调试的区别

目的区别

软件测试:是验证软件是否实现了用户的需求


软件调试:是软件开发人员验证软件是否实现了他想让软件实现的功能


角色区别

软件测试:是由开发人员(白盒测试)和测试人员共同完成的


软件调试:仅仅由开发人员完成


阶段区别

软件测试:贯穿了整个软件开发的生命周期(需求,计划,设计,编码,测试,运行维护)


软件调试:仅仅是在开发阶段


2. 什么是需求

需求就是用户的期望或者满足合同(文档,标准,规范)所需要的条件或者权限


需求包含了两个方面:


用户需求:一般比较粗略的概括

软件需求:从用户需求转化而来,是用户需求的细化和具体实现细节

说明:软件需求是测试人员进行测试工作的基本依据


软件测试人员如何深入了解需求?


从需求分析阶段就开始介入了解需求

站在用户的角度


3. 认识测试用例

3.1 测试用例的概念

测试用例就是向被测试系统发起的一组集合,包含测试环境,测试数据,测试步骤,预期结果


示例:

image.png

 

3.2 为什么要设计测试用例

测试用例可以衡量需求覆盖率

测试用例可以复用

测试用例具有借鉴意义

测试用例可以用于回归测试

防止遗漏测试的需求


4. 关于BUG的常见问题

4.1 什么是BUG

当且仅当程序规格说明书(软件需求)存在并合理,如果软件功能和软件需求不符合,就说是软件错误(BUG)


当软件需求不存在,用户需求存在并合理,软件功能和用户功能不符合,就说是软件错误


4.2 如何描述一个BUG

对于如何描述一个BUG,可以从以下几点来进行描述


测试版本(代码提交版本号):方便开发人员快速定位BUG出现的位置

测试环境:不同环境下测试的结果可能不同,如不同的浏览器,不同的操作系统,不同的设备

测试步骤:测试数据和执行测试的详细步骤,方便开发人员复现BUG

实际结果

预期结果

BUG产生时的log日志,错误截图等附件

4.3 BUG的生命周期

一个BUG从无到有的各种状态

image.png


问题:如果发现了一个BUG,开发人员修改了,但是测试人员又复现了这个BUG,是哪些原因可能导致的?


测试环境不一样

开发人员没有理解到,没有修改成功

开发人员修改后没有提交代码到远程,测试人员仍然测试的是旧代码

4.4 BUG的级别  

崩溃:系统崩溃,不能运行,死循环,数据库死锁,资源分配不均等

严重:服务器可以使用但是不稳定,继续使用会产生严重的错误,如数据库插入错误,威胁到用户的安全等

一般:系统可以稳定的运行,次要的功能没有实现,提示语句不完整,弹出框没有关闭按钮等不影响用户的使用

建议(次要):建议性的,提示信息重叠,界面排版不符合用户使用习惯,颜色不符合软件使用场景等

4.5 因为BUG和开发人员发生冲突的解决方法

检查自己的BUG描述,看看是否自己将BUG描述清楚

可以从用户角度考虑,说服开发人员

BUG的定级要有理有据,符合公司规范

测试人员要不断提高自己的专业技能和业务水平

找产品经理去讨论问题的解决方案

5. 软件开发和测试的生命周期

软件开发的生命周期

image.png


软件测试的生命周期(软件测试的流程)

image.png


需求分析:验证需求的合理性与正确性,细化需求,根据需求提炼测试点

测试计划:确定测试范围,目表,测试人员,测试环境,时间等

测试设计:开发测试用例

测试执行:执行测试,提交BUG

测试报告: 本次迭代的测试情况进行分析和总结,如写了多少测试用例,执行了多少,发现了多少BUG,修改了多少,剩余BUG的解决方案,测试的覆盖率


6. 开发模型

6.1 瀑布模型

 image.png


特点:阶段性强,每一个阶段比较独立,看重前期的需求分析和后期的测试阶段


缺点:测试在编码后才开始介入,导致前期的问题到后期才发现,失去错误补救机会


6.2 螺旋模型

螺旋模型适合项目庞大,前期风险大,不是很明确的项目

image.png

特点:强调每一个迭代的测试质量和风险分析,抗风险能力很强


缺点:风险管控人力物力投入多,成本较大


6.3 增量模型,迭代模型

比如同一个系统四个模块A,B ,C,D要花两周开发完


增量模型:第一周开发A,B模块,第二周开发C,D模块

迭代模型:第一周开发A,B,C,D的基础功能模块,第二周开发A,B,C,D的其他功能模块

特点:抗风险能力强


说明:通常开发将两个模型结合使用,在迭代的基础上使用增量


6.4 敏捷开发模型

特点:轻文档,轻流程,重目标,重产出,拥抱变化(用户可以随时更改需求)


敏捷开发有很多方式,scrum是比较流行的一种


scrum里的角色


scrum由产品经理(product owner),项目经理(scrum master),研发团队(team)组成


PO:将用户需求转化为user story

SM:管理整个团队,负责召开各种会议,协调项目,为研发团队服务

Team:由各种技能的人员组成,通过紧密协同,完成每一次迭代的目标,交付产品

scrum的基本流程

image.png


发布计划会议:产品经理收集需求形成userstory,讲解,排出本迭代需要进行开发的userstory形成sprint backlog

迭代计划会议:分析userstory,把userstory分解成一个个任务,分配开发人员,指定开发计划

每日例会:团队成员回答昨天干了什么,遇到的问题,今天的计划

产品演示会议:甲方,用户演示产品,PO把不足的地方收集整理形成新的user story

回顾计划会议:回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程


7. 测试模型

7.1 V模型

image.png 


特点:每一个阶段独立性强,左边每一个阶段是右边测试阶段的依据,和右边每一个测试阶段一一对应


缺点:瀑布模型的变种,编码后才进行测试,前期的错误后期才发现,会失去错误及时补救机会


7.2 W模型(双V模型)

image.png


特点:每一个阶段独立性强,测试一开始就介入,可以保证前期的问题及时发现和纠正,测试和开发是并行的


缺点:每一个阶段都是串行的过程,一个阶段完了之后就会进行下一个阶段


V模型和W模型都不支持敏捷开发


8. 一个优秀的软件测试人员所具备的素质

综合能力:沟通能力,编程能力,学习能力,文字描述能力

自动化开发能力:开发自动化脚本和工具的能力

编写测试用例的能力:能够设计出高效的发现缺陷和保证产品质量的优秀测试用例

具有探索性思维,发散思维,对软件测试有浓厚的兴趣并且对工作有责任感和压力


相关文章
|
3月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
171 11
|
3月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
3月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
104 4
|
3月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
71 4
|
3月前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
66 1
|
2月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
1月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
97 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
27天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
64 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
6天前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
|
19天前
|
小程序 测试技术 数据安全/隐私保护
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。

热门文章

最新文章