JH混沌机试题
1.软件质量特性是指软件的功能性,可靠性,易用性,效率,可维护性,可移植性。
2.为了提高测试的效率,应该选择发现错误的可能性大的数据作为测试数据
3.单元测试一般以白盒测试为主,测试的依据是模块功能规格说明
4.测试设计员的职责有:设计测试用例、设计测试过程. 脚本
5.按照风险设定测试用例的优先级并按照优先级顺序进行测试,符合测试的哪个基本原则(穷尽测试是不可能的)
6.典型的V模型包括哪些测试级别(A.单元测试 C.集成测试 E.系统测试 F.验收测试)
7.以下属于典型的软件测试过程的模型有(A. X模型 B. W模型 C. H模型 )
8.软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,下面的选项中QC的是(A.测试 B.跟踪 C.监督)
9.关于测试用例的描述:
A. 建立从测试用例到需求的可追溯性,有助于需求变更时的影响分析
B. 对测试用例本身的质量可以从是否与需求有可追溯性以及期望结果的正确性这两方面来评价
C. 测试用例由一组输入值、执行的前提条件、执行步骤、期望结果和执行的后置条件等组成
11、JAVA:
final修饰的类不可被继承、equals比较字符串内容,==比较引用地址
public static void main为程序的固定入口
ArrayList核心特点:有序、可重复、允许 null、特定位置增删慢(如果在尾部追加元素是适用的)、查询快
ArrayList是非线程安全的集合
ArrayList基于数组,随机访问效率高
runtimeException属于非受检异常,无需强制捕获
接口方法默认为公共抽象方法,默认修饰符是public abstract
JAVA中堆内存是线程共享,主要作用是存储对象实例
手动抛出异常的关键词是throw
HashSet属于SET集合,不属于List集合
防止类被继承的关键字是final
HashMap键唯一,不允许重复,允许一个null键
String是引用类型,不是基本类型
12、测试:
边界值测试上下界及内外点
测试步骤是复现与修复问题的关键
探索性测试强调经验与即时设计(不依赖预制用例)
冒烟测试是做通断性校验
负载测试验证并发承载能力
测试左移=尽早介入(核心是让测试活动尽早参与项目)
缺陷密度:每千行代码的缺陷数
测试用例必须有明确的预期结果才能执行
软件需求可理解为:为解决待定问题而由被开发或被修改的软件所展示出的特性。所有软件需求的基本特性为是(可验证性 )
软件测试的目的是(发现软件错误)
自动化测试适用场景:大量回归测试、重复测试任务、稳定性验证
13、混沌工程的核心原则:建立稳态假说、控制爆炸半径、自动化实验
混沌测试中,如果系统出现了“周期性20秒毛刺”,可以通过字节码增强技术在方法入口处埋点,采集耗时和堆栈信息来定位根因。
混沌工程的核心目标,是通过主动注入故障,验证系统在分布式环境下的韧性和容错能力。
在JAVA技术栈中,实现“无侵入式”故障注入,最核心的底层技术是JAVA Agent(Instrumentation API)与字节码增强(Bytecode Enhancement,ru ASM/ByteBuddy),也包括操作系统层面的tc(Traffic Control,网络延迟即使用此方法)或iptables
一、单选题(共13题)
1、故障注入测试的核心价值在于(B)
a> 证明系统不存在缺陷
b> 主动发现系统在异常条件下的行为
c> 替代所有其它类型测试
d> 缩短功能测试时间
2、在交行联机交易场景中,故障注入测试应优先关注(A)
a> 数据一致性和事务完整性
b> 页面加载速度
c> 字体大小
d> 颜色方案
3、与非技术人员(业务)沟通故障注入计划时,最有效的策略是(B)
a> 专注于技术实现细节
b> 关联业务风险与价值
c> 避免讨论潜在影响
d> 只提供高层及信息
4、故障注入测试执行完成后的首要任务是(B)
a> 立即扩大测试范围
b> 分析结果并修复问题
c> 编辑测试报告后不再关注
d> 指责开发或功能测试团队
5、若开发有个需求要测试方法在连续失败后的熔断处理机制,注入什么类型的故障?(C)
A> 单次随机异常
B> 固定延迟
C> 按特定模式连续失败(如失败 3 次后成功 1 次)
D> 内存溢出异常
6、在交行交易场景中,对验证码服务注入延迟,主要测试的是(D)
A> 验证码生成算法
B> 前端超时处理
C> 用户等待体验
D> 交易超时和重试机制
7、在交行当前的微服务架构中,对服务间调用注入异常,最应该验证的是(B)
A> 单个服务的健壮性
B> 服务链路的容错机制
C> 前端缓存机制
D> 数据库事务隔离级别
8、以下哪个不是 Java 访问修饰符(C)
A. private
B. protected
C. global
D. public
9、敏捷开发的核心特点是(B)
A. 阶段固化,文档超多
B. 迭代增量,快速响应需求
C. 只做编码不做设计
D. 只做后期测试
10、边界值分析法属于哪类测试(B)
A. 白盒测试
B. 黑盒测试
C. 灰盒测试
D. 性能测试
11、Java 中 float 类型赋值书写时,必须加的后缀是(B)
A. L
B. F
C. D
D. 无
12、下列属于软件单元测试常用框架的是(A)
A. JUnit
B. MySQL
C. Redis
D. Tomcat
13、String 和 StringBuilder 最大区别是()
(注:PDF原图中此处选项模糊无法看清,仅提取到了题干,无答案)
最大区别是“可变性”(是否可修改)。
· String 是不可变对象。一旦创建,每次修改(如拼接、替换)都会在内存中创建一个新的 String 对象,原对象不变。
· StringBuilder 是可变对象。所有修改操作(如 append、insert)都在同一个对象上进行,不会创建新对象。
基于这个根本区别,衍生出次要差异:
· 性能:大量字符串拼接时,StringBuilder 远高于 String(避免频繁创建对象开销)。
· 线程安全:String 不可变天然线程安全;StringBuilder 线程不安全(对应线程安全的 StringBuffer)。
一句话总结:选 “String 是不可变的,StringBuilder 是可变的”。如果选项中有“String 对象不可改变”之类的表述,就是正确答案。
二、判断题(对的打√,错的打×)
1、Java 是跨平台编程语言,实现一次编译到处运行,依靠 JVM 虚拟机实现。 (√)
2、软件测试能够发现软件中所有的缺陷和问题。 (×)
3、面向对象编程的三大特性是封装、继承、多态。 (√)
4、黑盒测试无需了解程序内部代码实现逻辑。 (√)
5、String 是 Java 的基本数据类型。 (×)
6、单元测试一般由软件开发人员自行完成。 (√)
7、软件工程只关注软件编码实现阶段的工作。 (×)
8、死循环属于程序逻辑错误,软件测试过程中需要针对性覆盖。 (√)
9、混沌实验过程中,故障注入逻辑可以包含对数据库进行DELETE或UPDATE操作,以模拟数据丢失场景。 (×)
三、多项选择题(共5题)
1、下列属于软件测试常见分类的有(ABCD)
A. 单元测试
B. 集成测试
C. 系统测试
D. 验收测试
2、下列属于 Java 合法标识符的有(AC)
A. _name
B. 123test
C. $value
D. User-name (注:包含减号,非法标识符)
3、下列属于白盒测试覆盖标准的有(ABC)
A. 语句覆盖
B. 判定覆盖
C. 条件覆盖
D. 场景法
4、面向对象设计的核心原则包括(ABCD)
A. 单一职责原则
B. 开闭原则
C. 依赖倒置原则
D. 接口隔离原则
5、下列情况会导致 Java 程序编译报错的有(BC)
A. 整数除以 0 (注:运行时异常,编译不报错)
B. 代码语法错误 (注:编译报错)
C. 类名与源文件名不一致 (注:编译报错)
D. 数组下标越界 (注:运行时异常,编译不报错)
浙公网安备 33010602011771号