惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
D
DataBreaches.Net
F
Full Disclosure
腾讯CDC
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
J
Java Code Geeks
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
A
Arctic Wolf
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CERT Recently Published Vulnerability Notes
O
OpenAI News
Project Zero
Project Zero
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
Schneier on Security
Schneier on Security

博客园 - callbin

dockfile Docker 城市扬尘监测系统方案设计 项目跟进 软件配置管理活动在 GJB 5000B 评价中的应用 测试 软件的生命周期模型 QT FeatureList文件分析 需求跟踪矩阵维护情况 软件开发阶段与基线 企业数字化-销售数字化看板项目(Axure9) 软件配置项目 背景于框架-中心模式 Web交互式设计尺寸 Office2019 激活密钥 项目开发流程与角色 Idea快捷键 多线程
软件配置项测试
callbin · 2024-10-19 · via 博客园 - callbin

一、软件黑盒测试,顾名思义就是把被测目标当做一个黑盒子,不需要了解对象内在的逻辑和特征,只针对对象的外部输入输出接口去设计的一种测试方式。

黑盒测试简单的说就是通过外部输入获取外部输出,不考虑中间过程、

目前常用的黑盒测试用例设计方法有好几种,需要根据各种应用场景分析和结合使用。

1、等价类划分法:是黑盒测试中最常用的、典型的方法。其核心思想就是选择一套合理的输入子集来体现出所有的输入情况,其中还需要包括所有的有效数

据和无效数据。

2、边界值分析法:由过去累计的测试数据表明,在数据的边界是最有可能产生错误的。边界值分析法是根据各种数据的边界进行分析来设计测试用例的一种

方法。因为这种针对性的特点我们可以把它当作是等价类划分法基础上的扩展;

3、因果图分析:是一种着眼于将各种输入有策略的结合方法,首先分析所有的输入情况,组合出一组会导致一个确定性输出结果的输入集合,那么这个输

入集合为“因”,输出结果为“果”。

二、白盒测试

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。是指被测对象内部是可视的,测试人员需要全面了解对象内部的逻辑结构,然后对

逻辑的所有路径进行测试,并确定不同路径下的测试结果与期望值是否一致。

1、代码检查法:是属于静态测试方法的一种。会根据检查人员和形式的差异,划分为桌面检查、代码审查和走查[34][35]。主要是检查代码的编码规范、程序的语

法和结构等内容;

2、静态结构分析法:借助测试工具对软件的各种内部结构进行分析,然后以各种图标的方式生成信息,使测试人员能更清晰的对软件进行分析;

3、静态质量度量法:根据 ISO/IEC 9126 质量模型作为评估依据,构造质量度量模型,对软件各个方面进行评估;

4、逻辑覆盖法:是针对软件内部的逻辑结构来进行编写测试用例的一种方法。要求编写测试用例的人员需要对软件内部的逻辑结构非常清晰[36]。在设计测试用

例时需要根据代码模块的复杂度,选择对应的覆盖方法:

(1)判断覆盖:需要使每一条可执行语句至少被执行一次;

(2)判断覆盖:需要使每个判断的取真分支和取假分支至少经历一次;

(3)条件覆盖:需要使每个判断的每个条件的可能取值至少执行一次;

(4)判定-条件覆盖:需要使每个判断中每个条件的所有可能取值至少被执行

一次,同时每个判断本身的所有可能判断结果至少执行一次;

(5)条件组合覆盖:需要使得每个判断的所有可能的条件取值组合至少执行

一次;

(6)路径覆盖:需要覆盖程序中所有的路径[37]。

5、基本路径测试法:从上述路径覆盖的描述,可以看出想要覆盖所有的路径是不现实的。因此如何在保证测试有效性和可靠性的基础上,来确定需要覆盖的

路径。基本路径测试法就是基于这个的一种测试手段[38]。其是根据程序控制流程图来进行测试用例的编写,保证程序的每个可执行语句至少执行一次。

三、灰盒测试

灰盒测试是针对软件需求规格说明中的部分需求点,需要将黑盒测试与白盒测试有策略的结合起来,才能完成测试目的的一种测试手段。它虽然也同白盒测

试一样需要清楚软件内部的逻辑,但又不需要对软件内部理解的那么透彻[39]。例如当有个功能需求,无论怎么通过黑盒测试的手段都无法满足测试需求,或者需

要非常繁琐、复杂的黑盒测试方式才能勉强完成,这时如果使用灰盒测试,将外部接口与内部逻辑有效的结合,可能就会比较简便的设计出满足需求的测试用例。

总而言之,灰盒测试不仅需要了解外部输入对应外部输出的影响,也需要了解程序内在的表现。