中科大软件测试期末复习

本文详细介绍了软件测试的概念、方法和技术,包括测试的目的、四象限、金字塔模型,以及单元测试、代码静态测试、接口测试、组件测试、性能测试等关键环节。还探讨了Docker在测试中的应用、持续集成实践和自动化测试工具Selenium的使用。此外,文章强调了测试驱动开发的重要性,并提供了关于软件开发过程的敏捷理念。
摘要由CSDN通过智能技术生成
前言

taozs老师画的重点,极其重要!!!

25道多选

测试是为了证明这个系统没有bug。 错

测试四象限:
单元测试(工具)、组件测试(开发人员做,daocontroller层,测试驱动开发),自动化,面向技术;
功能测试(接口测试,主要讲了rest接口; restAssuredcurlpostman),selenium,自动化,面向业务;
探索测试:用户验收测试,可用性测试,面向业务;
系统测试:性能、压力,“非功能性”测试,面向技术,Jmeter

测试金字塔:测试投入比例: unit > 接口测试 > UI

selenium grid: 浏览器的兼容性测试。

cobertura不是静态代码测试工具。

PMDckeck style, findbugs(检查字节码) 特点。

Sonarqube

测试用例的设计方法:
基于直觉和经验的方法(名称)☆:随机测试…
基于输入域的方法:等价类划分法,边界值分析(互补的关系);
基于组合及其优化的方法(名称):解决测试用例过多的问题;
基于逻辑覆盖的方法:各个覆盖的意思。条件覆盖100% ≠ 分支覆盖100%;

测试controller的三种方法:new ExampleController@SpringBootTest(意味着要使用真实数据库);@WebMvcTest

HTTP协议:四个动词,acceptlocation, 状态码;

testrestTemplate,不是使用mockmvc的环境,可以构建自己的请求头,请求体;

curl常用参数: -i -L -v

postman提供的功能:保存cookiecookie共享,断言,环境(全局变量);

restAssured:测试rest API,可以测试其他语言。Jsonpath验证,写测试用例的方式(given,when,then);

docker常用参数: -P -d -e,容器与虚拟机的区别;

持续集成:在合并到版本库之前需要进行构建测试(静态,单元)。分层构建(分层级,这个层级做单元测试… 快速反馈)。 哪些?

Jmeter:分布式部署(selenium),可以指定用例数,支持time,支持ssl,支持命令行,支持断言;

selenium ide

seleniumrobot framework关系?

第一章 序言 软件开发过程
软件工程的发展
  1. 敏捷开发

    以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。力求在最短的周期内开发出产品的核心功能,在后续的生产周期内,按照新需求不断迭代升级、完善产品。

  2. 敏捷关键词

    迭代

    反馈

  3. XP 极限编程

    价值观:沟通、简单、反馈、勇气;

    编程方法:结对编程、测试驱动开发、重构、简单设计;

迭代前准备阶段
  1. 用户故事

    3C原则:卡片Card、会话Conversation、确认Confirmation

  2. 软件开发成本

    总成本 = 开发成本 + 维护成本;

    维护成本 = 理解代码的成本 + 修改成本 + 测试成本 + 部署成本;

    维护成本 >>> 开发成本

迭代开发阶段
第二章 软件测试概念
测试目的
  1. 对软件进行充分的测试,找到其中的bug,并进行修复。√
  2. 证明代码中没有bug。 ×
  3. 软件质量:功能性、可用性(简单安装,轻松使用,用户界面良好)、可靠性、性能、容量、可维护性、兼容性、可扩展性;
测试四象限

在这里插入图片描述

  1. 象限一:测试驱动开发,关注代码内部质量,用户不关注,自动化,面向技术。

    • 单元测试:错误发现的早,成本就越低;与写功能代码同时进行(测试驱动开发);黑盒测试(等价类划分、边界值分析法、错误推测法、因果图法、功能图法);白盒测试(逻辑驱动法和基本路径法,各种覆盖);快速反馈是单元测试的首要目标

      驱动和桩:驱动模块:对底层或子层模块进行测试所编写的调用这些模块的程序;桩模块:对顶层或上层模块进行测试时所编写的替代下层模块的程序。

    • 组件测试:也称为集成测试;

      非渐增式测试模式:先分别测试每个模块,再把所有的模块按设计要求放在一起结合成所要的程序;

      渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试;

  2. 象限二:更高层的测试,关注外部质量和客户需要的功能(对设计的软件功能的测试),尽量验证业务层的逻辑,自动化,面向业务。

    主要讲了restAssuredcurlpostmanselenium

  3. 象限三:确认需求是不是用户真正需要的;是不是错误的理解了需求(可能会提出新的需求);通常是用户或客户执行;可用性测试;面向业务;手工测试;

  4. 象限四:系统测试,现实的计算机环境

    性能测试(性能指标,性能瓶颈)、压力(长时间,超负荷的运行,测试系统的性能,可靠性和稳定性)、容量(某项指标的极限值):目的有所不同,但手段和方法在一定程度上相似;

    安全性、可靠性(在规定条件和规定时间下完成规定功能的能力)、容错性(异常条件下是否具有防护性等):目的不同,方法和手段也不同;

    兼容性测试

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值