软件测试基础第一章
测试基础问题篇第一章
什么是测试?
1.软件测试(Software Testing),其经典定义或是标准定义:在规定的条件下对程序进行操作,以发现程序错误。 2.通俗来讲,就是通过“人工”或“自动化”的手段,来测试某个程序或系统,进而检验其是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
试说明几种软件过程模型?
一.瀑布模型 瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、训试和维护,上一阶段完成后才能进入到下一阶段, 整个模型就像一个飞流直下的瀑布。 瀑布模型的过程如下图: 瀑布模型有许多优点: 可强迫开发人员采用规范的方法: 严格规定了各阶段必须提交的文档: 要求每个阶段结束后,都要进行严格的评审。 但这也造就了瀑布模型过于理想化,而且缺之灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,直到软件开发完成之后才发现与用户需求有很大距离,此时必须付出高额的代价才能纠正这一偏差,这开发模型主要适用于需求非常明确的应用。
二、螺旋模型
螺旋模型结合瀑布模型和增量模型的优点,最主要的特点在于加入了风险分析。它是由制订计划、风险分析、实施工程、客户评估这循环组成的, 它最初从概念项目开始策一个螺旋, 这种开发模型将风险分析作为个单独的阶段来做,比较适合风险救大的大中型的软件开发项目。根据螺旋模型开发的特点,我们其实就可以得出螺旋模型的优点就是对于大型软件开发项目具有较好的风险控制。但是同样也就是这样的一个优点所造成了的缺点是,开发人员需要有风险评估的经验,契约开发通常需要指定过程模型和发布产品。
三、快速开发模型
为解决前面瀑布模型,客户与开发人员对于需求的不同理解是造成软件开发失败,在正式开发前在需求方面达成一致可有效地提高客户的满意度和软件的可用性,快速原型开发模型正是基于这样的思想而设计的。
优点:产品的开发基本上是线性的,最大程度避免回溯
开发进度快:正式设计和编程前做了大量的沟通和准备工作,在开发过程回溯较少,因此整体上提高了开发的速度
缺点:需求人员和客户确定的展示性原型可能不利于设计人员的创新
什么是软件缺陷和软件故障?
1:软件未达到产品说明书标明的功能
2:软件出现了产品说明书指明不会出现的错误
3:软件功能超出产品说明书指明的范围
4:软件未达到产品说明书虽未指出但应该达到的目标
5:软件难以理解、不易使用、运行速度缓慢或者从测试人员的角度看最终用户认为不好
软件测试的目的是什么?
1.提高软件的质量,减少软件发布后因为软件缺陷而造成的商业损失。
2.保障软件安全性。
3.降低软件开发成本。
4.降低企业风险。
5.提高用户体验。
试说明软件测试有哪些基本原则?
七项原则数一数,好像大侠掌七武 正确理解和认识,测试走上阳光路🍗
1. 软件测试能够发现软件存在缺陷,但不能证明软件没有缺陷 软件测试能够发现软件潜在的缺陷,好的测试可以使软件中遗留的缺陷非常少。这使得软件测试的作用被夸大。甚至有些人认为只要通过了软件测试的软件,就不再存在任何缺陷,就可以放心的使用。这种把软件测试神话了的现象是违背这一原则的。实际上即使软件测试发现任何缺陷,也不能证明软件当中就没有缺陷,软件就是完全正确的。
2.穷尽软件测试是不可行的 理论上我们希望在软件投入使用之前能够通过软件测试,把各种输入和前提条件的组合都测试一遍。但在实际上这种穷尽的软件测试是不可能实现的。一方面这种穷尽的软件测试所消耗的工作量巨大,软件的收益和成本不成比例;另一方面软件中存在。一些无关紧要的缺陷,并不会影响软件的使用。所以软件通常会遵循一个 good enough原则——通过衡量测试的投入产出比,测试既不能太少,也不能太过。
3.软件测试应尽早介入 软件测试应当尽早地介入软件开发过程,这样就可以尽早的地发现软件缺陷,而越早发现软件缺陷,缺陷的修复成本就会越小。所以让测试人员参加需求开发过程,确认每条需求的正确性、可测试性等,可以有效地节省开发成本。
4.缺陷的集群性 软件测试也是符合28原则的,即80%的缺陷只存在20%的模块当中。在测试的实践当中也会发现,如果你在某个模块发现了缺陷,那么在这模块当中可能就会存在不止一个缺陷。这就是缺陷的集群性。
5.杀虫剂悖论 测试中的杀虫剂现象,有两种情况:一种情况是同一个软件由同一个人测试,那么他在几天后就会发生杀虫剂现象;另外一种情况是同样的测试用例对同一个软件重复测试,也会发生杀虫剂现象。对于后者需要对通过对测试用例的定期评审和完善来克服,对于前者则需要采用轮流测试的方式来克服。
6.软件测试活动依赖于软件测试背景 不同领域的软件测试都有它自己的特殊的测试策略。比如,军用软件会重视可靠性和安全性的测试,信息化系统软件则会强调压力测试等性能的测试。
7.无法使用的软件不需要测试 如果一个软件根本无法正常使用,或者他最主要的软件功能都不能正常使用这样的软件是完全没有必要进行测试的。
请详细说明软件测试的各种过程模型?
V模型:
v模型反映了测试活动与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系,如图所示,图中的箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V 模型指出,单元和集成测试是验证的程序设计,检测程序的执行是否满足软件设计的要求。系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标。测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满足用户需求或合同的要求。
V 模型存在一定的局限性,它仅仅是测试过程作为在需求分析、概要设计、详细设计及编码后的一个阶段。需求分析阶段隐藏的问题一直到后期的验收测试才被发现。
V 模型的软件测试策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试为了使整个系统满足用户的需求。
W模型:
V 模型的局限性在于没有明确地说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。在 V 模型中增加软件各开发阶段应同步进行的测试,被演化为一种 W 模型,因为实际上开发是 “V”,测试也是与此相并行的 “V”。基于“尽早地和不断地进行软件测试”的原则。
W 模型的优点:
(1)测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。
(2)体现“尽早地和不断地进行软件测试”的原则。
(3)在 V 模型中增加软件和开发阶段应同步进行的测试。
W 模型的局限性:
软件开发和测试保持一种线性的前后关系,需要有严格的指令表示上一阶段完全结束,才可正式开始下一个阶段。这就无法支持迭代、自发性以及变更调整。
H模型:
H 模型将测试活动独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。贯穿于整个产品周期,与其他流程并发地进行。
试说明软件生命周期中的主要测试活动?
了解需求-对需求进行评审,根据需求制定编写测试计划,根据测试计划和需求说明文档编写测试用例,进行用例评审,执行测试,修改bug,回归测试,验收测试-最后输出测试报告及相关文档。(23条消息) 软件测试的生命周期&测试流程_csdn0_1的博客-CSDN博客_软件测试迭代周期
-
软件的生命周期:是指从产生到淘汰的过程
-
包括:计划(开发方与需求方讨论)、需求分析、设计、编码、测试(单元测试、集成测试、系统测试、验收测试)、运行维护、淘汰升级等。(后续完善)
实施测试应给出哪些信息?
需求规格说明书,API文档,原型图,系统的设计文档,竞品分析、个人经验。(后续修改)
请对测试流程的每一阶段进行简要说明
冒烟测试-单元测试-集成测试-系统测试-验收测试(回归测试在各个阶段都有)。(后续补充)
测试的流程?
开始-系统培训/了解系统(测试计划)——制定测试需求-编写测试用例-测试执行(包括测试记录,和修复缺陷记录)-测试总结(包括测试报告相关文档)-结束
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!