1、什么是软件测试?
软件测试描述了用于提高软件准确性、完整性、安全性和质量的过程。换句话说,软件测试是检查或比较实际输出与预期输出的过程。
“软件测试”,通俗地说,就是通过软件测试人员验证软件是否满足用户需求。最终交付的产品是否符合用户最初的需求?如果不符合,则找出各个点,提交给开发人员,将测试过程中发现的问题进行汇总,称为“bug”。
软件测试的经典定义是在指定条件下运行程序,以发现程序错误、衡量软件质量、评估是否能够满足设计要求的过程。
2、什么是Bug(软件错误)?
所谓“bug”是指计算机系统的硬件、系统软件(例如操作系统)或应用软件(例如文字处理软件)中的错误。硬件错误的原因有两个:设计错误和硬件组件的老化和故障。
正在加载视频.
软件缺陷:狭义的概念是指软件程序中的漏洞或缺陷。更广泛的概念还包括测试工程师和用户发现并建议改进软件的细节,以及实现与需求文档不同的功能。仅从狭义上讲,软件bug的原因有:
对各个流程分支考虑不够,编码时对边界情况处理不够。没有软件在发布时是完全没有错误的。软件过程管理中常见的CMM(能力成熟度模型)中规定的软件质量指标是(每千行源代码的错误数)。
CMM1 Level 11.95、CMM2 Level 5.52、CMM3 Level 2.39、CMM4 Level 0.92、CMM5 Level 0.32 如果程序规范(软件要求)存在且合理,如果软件功能与软件规范不匹配:我说。软件错误。如果软件需求不存在,用户需求存在且合理,且软件功能与用户功能不匹配,则说明在软件测试阶段存在软件错误。在整个软件开发生命周期中,需求阶段进行干预和验证。要求的合理性和准确性。
3、软件测试与软件开发的区别?
需要专业学位的技能:
软件研发:技能要求高度专业化,但并不广泛,并且需要强大的编码基础。
编程语言:Java、C、JavaScript、C++、Go、R、HTML、C#、SQL 软件测试:技能要求比较广泛,但专业性不强,没有硬编码基础
接口测试:SoupUl、postman、jmeter 性能测试:loadrunner jmeter 自动化测试脚本:Python Java Unittest TestNg Charles fiddler appium
软件测试和软件调试
目的:软件测试是为了验证软件是否达到了它应该达到的功能(要求)。软件调试的目的是为了验证软件是否达到了软件开发者希望软件达到的功能。
作用:测试由开发人员(白盒测试)和测试人员完成,调试由开发人员完成。
阶段:现在在整个软件开发生命周期中执行测试。
需求-规划-设计-编码-测试-运营/维护/调试正在开发阶段
4、开发与测试中的需求是什么?
满足用户期望和合同规定(文件、规则、标准)所需的条件和权限。软件需求细化用户需求并将其转化为具体的实施细节和规范。
用户需求比较宽泛,缺乏细节,难以直接实现。因此,需要软件需求来实现和标准化用户需求的细节,并将其转化为具体的、可实现的过程文档。
5、需求是软件测试的依据
验证需求,确保其正确且可实现,细化需求,并从需求中一一提取测试项目。我们以用户登录为例来说明整个过程。
软件测试人员如何深入理解需求?解答:站在用户的角度,在用户需求分析阶段就开始致力于理解需求。
6、如何编写完整的测试用例
测试用例是针对被测系统发起的一组测试,包括测试环境、测试数据、测试过程和预期结果(重要性、优先级、操作方法、标题等)。
图片:测试点:使用正确(注册的)账号和密码登录知乎界面,即可登录成功。
测试用例:正在测试的项目的标题
测试环境:Chrome版本99.0.4844.51 PC Windows系统
测试数据: 用户名:QingshengRuanjianCeshi 密码:********
测试程序:
1. 在浏览器中打开知乎网址:https://www.zhihu.com/signin?next=%2F2。输入您的用户名和密码。 3. 点击登录。 预期结果:(测试程序完成后的结果)登录成功
测试用例告诉您要测试什么、如何测试以及测试什么。
好处:测量需求覆盖率(测试用例和需求的比较)。可重用性、参考重要性可用于回归测试。
7、软件开发的常见5个模型
软件开发生命周期:需求分析-规划-设计-开发-测试-运维
(1) 瀑布模型
瀑布模型在软件测试工程中占有重要地位,是所有其他模型的基本框架。瀑布模型的每个阶段仅执行一次,使其成为线性顺序软件开发模型。
特点:阶段性强(强调开发阶段,强调前期规划和需求研究,强调产品测试),每个阶段相对独立,前期需求分析和后续测试强调
缺点:容易顺序进行而无需回滚,测试干预速度慢,项目前期的问题后来才发现,错过了及时纠正错误的机会,跟不上频繁的变更。项目
(2) 螺旋模型
适合高风险的大型项目、分层不透明、迭代次数少的项目。
特点:专注于每次迭代的测试质量和风险分析。适合当风险比较高、整体项目比较大,需要在每次迭代时进行风险分析,讨论项目是否值得继续进行的情况。
缺点:风险管控需要大量的人力、物力,对风险分析的要求非常高,需要专家,导致时间和项目支出成本较高。风险比较对测试人员和开发人员的要求比较高。
(3, 4) 迭代和增量模型
预生产:用4周时间开发系统的模块A、模块B、模块C、模块D的功能。
增量:
第一周完成模块A。第二周完成模块B。在3 周内完成模块C。在第4 周完成模块D。
第一周我们完成了A、B、C、D四个模块的基本框架,第二周我们完成了基本功能的开发和测试,第三周我们开发了更复杂的功能,第四周完善细节。特点是抗风险能力强。
(5)敏捷模型(常用模型)
注重与客户的沟通,与整个研发团队的有效沟通,注重产品质量,注重产品交付时间(拥抱变化,客户需要在项目开发过程中了解自己的需求)。
敏捷开发周期很短(1-4周),团队中研发人员很少。
特点:聚焦目标、聚焦输出、聚焦文档、聚焦过程。
示例:Scrum 流程:
角色分析:
PO(Product Owner)产品经理:负责组织用户需求,形成用户故事,SM(Scrum Master)项目经理:负责整个敏捷开发流程的顺利实施、开发以及各种调整。团队:负责整个项目的研发、测试、开发、UI设计等。发布计划会议:将产品经理的需求组织成用户故事以形成产品待办事项列表非常重要。用户故事的内容在会议中讨论,布局在本次迭代规划会议中确定。研发团队审核迭代任务,将用户故事分解为任务,并确定任务完成时间和具体受让人。等;每日站会:(重点总结解决出现的问题,了解整体研发进度)解决三个问题。 昨天完成了什么?今天的日程: 产品简报:向客户和上级展示产品开发成果,PO组织后创建新的用户故事,在下一次迭代中体现; 项目概述:总结优点和缺点;这次迭代,以及任何不满意的改进。并优化这个敏捷开发流程。
8、软件测试人常用的测试模型
软件测试V 型号:
的特点: 每个阶段高度独立,左侧每个阶段位于右侧测试阶段的下方,并且与右侧每个测试阶段一一对应。
缺点:由于测试是在编码之后进行的,测试干预相对较慢,最好在后期测试中发现错误。就失去了及时纠正错误的机会。
软件测试W模型:也称为双V模型
特点:测试开始时每个阶段的独立性很强,确保早期问题检测和并行修复。
缺点:每个阶段都是一系列过程,当一个阶段完成时,下一阶段开始。它不适合需求频繁变化且不支持敏捷(开放变化)开发的项目。
9、软件测试的生命周期(软件测试流程)
需求分析—— 测试计划—— 测试设计/开发—— 测试执行—— 测试报告
进入分析:分析需求并验证其准确性和合理性。调整要求,根据要求调整测试点的测试计划。确定测试的范围、目的、目标、测试人员、测试工具和时间。测试环境测试设计/开发:测试用例开发测试执行:开发人员已提交代码、执行测试、提交bug测试报告:分析总结本次迭代的测试用例数量。发现的错误数量、未解决的错误数量、在线测试解决方案。
10、如何正确的描述一个BUG
示例场景:注册功能,密码长度为8到18个字符,但输入1个字符也能注册成功
标题:注册时输入密码中的一个字符,会出现注册成功的提示。
测试版本(代码提交版本号):代码版本号Qs1001
测试环境:Chrome浏览器版本号96.0.4664.45(因为根据测试环境问题可能会有所不同)
操作系统:Windows 10,计算机品牌型号Lenovo XX 型号
测试数据:qingshengceshi666@163.com,密码;
测试说明:测试数据和运行测试的详细说明,以帮助开发人员重现问题。
(打开注册页面,输入您的邮箱账号,输入密码,点击同意条款,点击注册)
实际结果:注册成功
预期结果(根据要求):注册成功,提示“密码长度不符合规则”。出现错误时会记录附件(屏幕截图、错误日志)、错误屏幕截图和其他附件。
描述BUG的元素:测试环境、测试数据、测试步骤、预期结果、实际结果、附件(错误、错误日志)、级别、标题。
11、Bug的级别的划分与解析
致命错误:系统崩溃、不可执行、无限循环、数据库死锁、资源分配不均匀、黑屏、崩溃、阻塞。崩溃级错误在线发生(在用户环境中)。恢复到之前稳定运行的历史版本可能会导致严重错误。服务器虽然可用,但不稳定,继续使用会出现以下问题:威胁用户安全的常见错误,如严重错误、一级菜单错误、数据库数据插入错误等。系统运行稳定,但小功能未实现,提示不完整,弹框不显示。该按钮为关闭按钮,不影响用户使用。 轻微(推荐):性暗示、重复提示信息(不清晰可见)、界面布局与用户使用习惯不符、软件颜色与用户使用习惯使用场景不符等。
12、Bug的生命周期(附管理流程)
问题:当测试人员发现bug并发送给开发人员修复时,开发人员通知测试人员进行验证,但测试人员又重新引入了该bug。可能的原因有哪些?
答:测试环境不同。开发者理解不够,修改并不成功。开发人员更改代码后,代码没有远程发送,测试人员使用旧版本(有问题的代码)进行测试。
13、测试员因为一个Bug和开发人员发生争执时该怎么处理?
查看自己的BUG描述。描述的清晰程度可以认为让开发人员相信BUG评级应该是有根据的,并且符合公司的规范(权威);产品经理讨论问题的解决方案。
14、面试最喜欢问的问题:为什么选择软件测试这个岗位?
答:一名优秀的软件测试人员应该具备良好的沟通能力、编程能力、学习能力、自动化开发能力、以及编写测试用例的能力。首先,我对软件测试非常感兴趣。我认为成为一名优秀的测试员并不容易。学习开发技能,将来能够作为专业的测试人员与开发人员进行交流。其次,软件产品的出现让我在平时的工作和学习生涯中感受到了强烈的责任感和压力,善于发现和探索新事物。这肯定会起到很大的宣传作用。我未来的职业生涯。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。