软件测试-期末速成收藏版

前言:软件测试,别让Bug成为你的期末噩梦!

   同学们,期末将至,软件测试这门课是不是已经悄悄在你脑海里排起了“Bug队列”?代码写得飞起,结果测试一跑,全是红的……这酸爽,懂的都懂。别慌!这篇博客就是你的“调试神器”,带你梳理重点,干掉那些潜伏在试卷里的“潜在缺陷”!

软件测试可不是简单地“点点按钮,看看有没有炸”,它是软件开发的守门员,帮你拦住那些调皮的Bug,让程序更加稳定。而在考试中,它更是你的得分密码,掌握好测试方法、测试策略、缺陷管理等核心知识,才能在期末大战中稳操胜券!

所以,别让Bug成为你的噩梦,跟着这篇复习攻略,笑着走进考场,赢得漂亮的胜利吧!💪😆


第一章-概论定义

  • 软件质量保证-是指建立一套有计划、有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。(目的是使软件过程对于管理人员来说是可见的)
  • 软件质量保证活动:软件评审,验证与确认, 纠正和预防措施。
  • 软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误或隐藏的功能缺陷。
  • 软件测试是为了发现错误而执行程序的过程。(软件测试是为了发现错误而执行程序的过程。测试是为了证明程序有错,而不是证明程序无错)
  • 软件测试原则:1.增量测试,2.由小到大 3.避免测试自己的程序 4.应尽早地和不断地进行软件测试 5.进行回归测试 6.软件测试应该有计划、有组织地进行。7.所有的软件测试都应追溯到用户需求 8.不可能进行完全测试 软件测试只能表明缺陷的存在,而不能证明产品已经没有缺陷 9.软件产品中潜在的缺陷数与已发现的缺陷数成正比(群集)
软件测试的分类:测试阶段—单元测试、集成测试、系统测试、验收测试
                           是否执行被测软件—静态测试(不运行)、动态测试
                           测试方法—白盒测试、黑盒测试、灰盒测试
                           执行过程是否需要人工干预—手工测试、自动化测试
                           测试实施组织—开发方测试、用户测试、第三方测试
软件质量保证与软件测试的关系:
两者共同点:
  • 两者都是贯穿整个软件生命周期的流程;
  • 作用都是确保软件质量、满足用户需求
两者区别:
  • 软件测试主要侧重于通过执行各种测试方法和工具,发现软件中的缺陷。
  • 软件质量保证则更侧重于对整个软件开发流程的管理和控制,确保开发过程和最终产品符合既定的质量标准 。它涉及对流程中各过程的管理与控制策略,包括缺陷预防和风险管理策略,以避免软件测试中出现错误,从而获得高质量的软件产品。
两者关系:
  • 软件测试和软件质量保证在确保软件质量方面具有不可分割的联系。
  • 软件质量保证为软件测试提供了指导和标准,帮助明确测试目标和要求,制定有效的测试策略和方案,并对测试效果进行评估和度量 。 软件测试为软件质量保证提供了数据和依据,帮助了解质量计划的执行情况,并协助测试流程的改进。

第二章-白盒测试(结构测试,逻辑驱动测试)

逻辑覆盖法
1.满足条件覆盖不一定满足判定覆盖 满足判定覆盖不一定满足条件覆盖(特例:每个判定分支中只有一个条件)
2.条件组合覆盖:针对同一个判断语句内存在多个条件的情况,不同的判断语句内的条件之间无需组合。
3.条件组合覆盖一定满足条件覆盖、判定覆盖、判定-条件覆盖;
4.条件组合覆盖不一定满足路径覆盖;
5.满足路径覆盖一定满足判定覆盖和语句覆盖。(特例:只有一个判定时,满足判定覆盖需要2个测试用例,同时也满足了路径覆盖。)
基本路径测试法(画控制流图)
以详细设计或源代码作为基础,导出程序控制流图;
计算程序控制流图的环路复杂度;
确定独立路径集合;
设计测试用例,确保基本路径集合中每条路径都被执行
计算环路复杂度
  • 控制流图中线性无关的区域数等于环形复杂度。 (有箭头)
  • 控制流图G的环形复杂度V(G)=E-N+2,其中,E是边的条数,N是结点数。
  • 控制流图G的环形复杂度V(G)=P+1,其中,P是判定结点的数目。

第三章-黑盒测试(功能测试)

等价类划分法设计测试用例步骤
1.对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行编号。
2.设计一个测试用例,使其尽可能多地覆盖有效等价类,
3.重复这一步,直到所有的有效等价类被覆盖。
4.为每个无效等价类设计一个测试用例。 (why?否则无法判断是哪种无效等价类导致的错误)
边界值分析法
基本边界值分析(最小值,略大最小值,中间值,略小于最大值,最大值)4N+1
健壮值分析法(略小于最小值,最小值,略大最小值,中间值,略小于最大值,最大值,略大于最大值)6N+1
决策表法(2n个 n为条件个数)
决策表化简(动作项结果相同,且条件项只有一处不同)

第四章-软件测试过程

单元测试(模块测试)
驱动模块(Driver)是用来模拟待测试模块的上级模块
桩模块也称为存根程序(Stub),用来模拟待测模块工作过程中所调用的模块。
集成测试
非增量式集成:可以同时集成所以模块,方法简单。
                         难以保证接口与数据结构充分测试,可能会出现大量错误。
增量测试(深度广度)
自顶向下集成
优点:不需要开发驱动,减少开发维护成本,对于高层次模块可以提前发现问题  
缺点:增加了桩模块的开发维护成本,容易出现回归测试,底层模块测试不充分
自底向上集成(注意集成测试的时候,下层依赖模块都必须完全)
优点:尽早验证了下层模块行为,具有并行性可以同时对结构图不同分支进行集成测试
缺点:驱动模块开发成本高,不能及时发现高层模块错误
三明治集成
“三明治”集成测试步骤
① 确定以哪一层作为运用“三明治”集成测试方法的分界层;(分界层归下层管)
② 对分界层及其所在层下面的各个层次使用自底向上的集成测试方法;
③ 对分界层上面的各个层次使用自顶向下的集成测试方法;
④ 对被测系统进行整体测试。
三明治测试
优点:具有两种测试方法的优点,可以减少桩模块和驱动模块的开发量,可以并行集成
缺点:在最后集成阶段会增加缺陷定位难度
系统测试
系统测试指的是将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件、外部设备、支撑软件等其他系统元素组合在一起进行的测试。
性能测试与压力测试的区别
性能测试:在负载一定时,测试获得系统的性能指标
压力测试:在异常情况下,测试获得系统的性能指标。(不可接受状态)
容量测试是为了确定测试对象在给定时间内能够持续处理的最大负载或工作量。
健壮性有两层含义:一是容错能力,二是恢复能力。(在故障存在的情况下软件还能正常运行的能力
验收测试主要验证软件功能的正确性和需求符合性 。( 以用户为主

第五章-软件测试管理

软件测试项目管理:
软件测试项目管理是以测试项目为管理对象,通过测试人员运用专门的软件测试知识、技能、工具和方法,对测试项目进行计划、组织、执行和控制,并在时间成本、软件测试质量等方面进行分析和管理。
软件测试文档的作用:
  • 有利于管理测试项目
  • 便于项目组成员交流沟通
  • 印证测试的有效性
  • 为测试资源的检验提供标准
  • 方便后期再测试
  • 为测试工作的总结和评价提供依据
  • 更好地防范项目风险
测试人员的能力:
  • 一般性能力:包括沟通表达能力、创新能力、自我督促不断学习的能力
  • 测试的专业技能:包括测试的基本概念和整体流程、测试策略、测试方法
  • 测试设计规划能力
  • 测试执行能力
  • 测试分析改进能力
缺陷管理
  • 软件缺陷属性
  • 缺陷标识
  • 缺陷类型
  • 缺陷严重程度
  • 缺陷优先级
  • 缺陷状态
  • 缺陷起源
根据你对缺陷管理的理解,说明缺陷管理对软件测试工作的重要性。
  • 保证软件质量:通过系统化地记录和跟踪缺陷,可以确保所有发现的问题都得到适当的解决,从而提升软件的稳定性和用户体验。
  • 优化测试过程:缺陷管理帮助测试团队了解缺陷的分布和类型,有助于优化测试用例设计,集中资源在关键区域,提高测试效率。
  • 提升团队协作:缺陷管理系统为开发、测试和产品团队提供了一个沟通平台,确保信息透明,有助于协调各方资源和尽早解决问题。
  • 数据驱动决策:缺陷数据有助于分析常见问题的根源,为后续开发和测试提供参考,避免类似问题再次发生,支持持续改进。

第六章-软件自动化测试(系统稳定后)

手工测试的局限性:       
1. 通过手工测试无法做到覆盖所有的代码路径。
2.简单的功能性测试用例在每一轮测试中都不能少,而且具有一定的机械性和重复性,工作量较大。
3.许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到。
4.进行系统负载和性能测试时,需要模拟大量数据或大量并发用户等各种应用场合时,很难通过手工测试进行。
5.如果有大量的测试用例,需要在短时间内完成,手工测试也很难做到。
6.进行回归测试时,手工测试难以做到全面测试。
自动化测试的优点
1 .提高了测试执行的速度,节省了时间。
2.提高了测试效率。 提高了准确度和精确度。 更好地利用资源。 模拟测试条件。
3.具有一致性和可重复性,有利于解决测试与开发之间的矛盾。
4.增加软件的信任度。
缺点
根据你的理解,谈谈如何正确认识手工测试与自动化测试的关系。
手工测试和自动化测试是互补关系,手工测试适用于探索性和复杂场景,灵活但效率较低;自动化测试则适合重复性高的任务,初期投入大但后期效益明显。合理结合两者,能在保证效率的同时全面提升软件质量。

第七章-软件测试工具

  • 功能测试工具:用于自动化执行功能测试的工具,如Selenium、QTP/UFT和TestComplete等,适合Web和桌面应用的功能验证。
  • 性能测试工具:用于模拟大量用户并发、分析系统性能的工具,如JMeter、LoadRunner和Gatling,常用于负载和压力测试。
  • 缺陷跟踪工具:帮助团队记录和跟踪缺陷的工具,如JIRA、Bugzilla和Redmine,方便缺陷管理和沟通。
  • 持续集成工具:支持自动化测试与部署集成的工具,如Jenkins、GitLab CI/CD和TeamCity,有助于提升开发测试效率。
  • 安全测试工具:用于检测应用安全漏洞的工具,如OWASP ZAP和Burp Suite,保障系统的安全性。

后记

  恭喜你,坚持看到这里,说明你的期末复习已经迈出了一大步!(鼓掌👏)希望这份 软件测试期末速成笔记 能帮你在考试中 避坑踩点,精准得分,不再被测试理论绕晕,不再因公式遗忘而抓耳挠腮!

当然,软件测试不仅仅是为了考试,它在实际开发中更是 程序的护城河,帮助你拦截Bug、提升质量、打造稳定的软件。如果未来你走上开发或测试的道路,记得:测试不是“找茬”,而是让代码更靠谱的一种责任!

最后,祝你考试顺利,Bug远离,得分如预期,稳稳过关! 🎯💪🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry-Walker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值