1、安装SDK和集成SDK的区别
安装(Installed)
安装指将独立的软件、硬件或组件部署到指定环境中的物理或逻辑操作。如安装腾讯云某一个API接口的SDK到服务器,实际上仅完成文件复制和环境配置,尚未与系统交互。
结果:组件存在但未激活功能关联。
集成(Integrated)
集成强调多个组件或系统间的功能性互联与协同,实现整体价值大于部分之和。软件层面比如改造某个接口所联通的服务层,动态调度本地/云端服务并统一结果格式,形成可扩展的处理流程。
结果:组件深度关联协作,形成新能力。
系统影响层级
安装的影响范围局限于组件自身,例如:安装独立显卡提升图形性能,但不改变CPU与内存的协作方式。安装吊顶电器模块(浴霸、灯具)未解决布线凌乱问题。
集成的影响范围重构系统架构或业务流程,例如:集成吊顶将扣板、电器、布线统一设计,实现强弱电分离和安全优化。支付系统集成需打通商户、银行、用户账户,形成闭环交易链路。
将SDK放入Java工程时,若仅配置依赖或放置文件,称为安装;若进一步编码实现功能调用,则称为集成。实践中二者常连续进行,但需明确阶段差异
误区:认为“安装SDK = 完成功能接入”,实际未调用API则集成未发生。
2、颗粒度(Granularity)
在软件测试领域中,“颗粒度”指测试的精细程度或细节覆盖密度,而“最小颗粒度”通常与最基础的测试单元相关;“对齐颗粒度”则是团队协作中的协调动作。
最小颗粒度
定义与核心概念:最小颗粒度指测试可覆盖的最基础、不可再分的测试单元。在代码层面,这通常对应单元测试,即针对单个函数、方法或类的最小可测试单元进行验证。
可以快速定位低级错误,提升代码健壮性;支持重构和持续集成。
对齐颗粒度
对其颗粒度是项目管理与协作的概念,指协调多方对任务细节的认知一致性。例如,开发与测试团队对登录功能测试范围的理解一致:是否需覆盖密码加密、多设备兼容性等细节。
二者缺一不可——缺乏最小颗粒度测试会导致底层缺陷;未对齐颗粒度则可能遗漏重要场景或浪费资源。
3、样本空间(Sample Space)
核心定义样本空间指所有可能测试结果的集合,即测试对象所有潜在输出状态的完整枚举。在概率论中,它是随机试验基本结果的集合;在测试中,则对应被测功能所有可能的输出或状态。
测试登录功能
样本空间 = {成功, 用户名错误, 密码错误, 系统异常}。
测试实践意义
定义测试覆盖范围:明确需验证的所有边界场景(如输入为空、超长字符等)。
设计测试用例:每个样本点对应一个测试场景(如密码错误需验证错误提示和重试机制)。
避免遗漏场景:若样本空间未完整定义,可能导致漏测关键缺陷(如未处理“系统异常”状态)。
4、样本量(Sample Size)
核心定义样本量指测试中实际使用的观察对象数量(如测试用例执行次数、用户行为模拟次数)。它是为了以合理成本验证样本空间代表性而选择的子集大小。
用户登录测试中执行 100 次不同账号的登录尝试 → 样本量=100
计算机视觉测试中使用 173 张黑底数字图片 → 样本量=173。
简单随机抽样(无放回)
场景:从100个元素中抽取10个不重复样本。
样本空间:总体数据集(population)
样本量:sampleSize参数(此处为10)
import java.util.*;
public class SimpleRandomSampling {
public static List<Integer> sample(List<Integer> population, int sampleSize) {
List<Integer> sample = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < sampleSize; i++) {
int index = random.nextInt(population.size());
sample.add(population.remove(index));
}
return sample;
}
public static void main(String[] args) {
List<Integer> population = new ArrayList<>();
for (int i = 1; i <= 100; i++) population.add(i); // 样本空间:1~100
List<Integer> result = sample(population, 10); // 样本量=10
System.out.println("抽样结果:" + result);
}
}