鼠年全马铁人挑战 WEEK 02:软体测试的种类 - 第一集


            Photo by Jeffrey Betts on Unsplash

前言

在自动化的文章开始以前,小弟希望可以先说明一些软体测试的各种内容,而这篇的内容小弟将会介绍验证与确认的重要和静态分析与动态测试以及白箱测试与黑箱测试,希望对 Quality Assurance Engineer (以下简称 QA) 有兴趣的大哥大姐们有所帮助,另外小弟预计会再花两个礼拜的时间结束软体测试的介绍,因为这礼拜小弟还要补班,如果有疏忽之处还请各位大哥大姐多多担待。

另外请先让小弟向正在看着这篇文章的各位大哥大姐们说声感谢 (◍•ᴗ•◍),在上一篇文章各位大哥大姐的关注与留言,小弟的文章获得了新的标籤 "达标好文",让小弟真是受宠若惊~ (๑• . •๑),往后还请各位大哥大姐多多关照。


软体测试是甚么

软体测试是一项庞大且複杂的工程,然而更是品质控管最重要的关键,而以 QA 来说主要就是为了追求品质。


Verification & Validation

在进行软体测试的时候主要会有两点,验证(Verification)与确认(Validation)。

Verification: Have you built the software right?

把事情做对 (确保软体走在对的路上)。确认是否符合规则、要求、规範和强制条件。

Validation: Have you built the right software?

做对的事情 (确保软体是个对的产品)。确认是否满足客户或其他利益相关者的需求。

Static Analysis & Dynamic Testing

而依照策略可以划分静态分析(Static Analysis)与动态测试(Dynamic Testing)。

Static Analysis

静态分析 (不需执行被测试的程式)扫描程式,对程式的资料流和控制流等讯息进行分析,找出系统的缺陷。检查软体开发是否满足所制订的需求规格,并尝试找出错误与及早修正。方法包含检视、结构化逐步审查和主动审查等。可以分析包含建构计画、需求规格、设计规格、程式码及测试计画书等。

Dynamic Testing

动态测试 (需要执行被测试的程式)执行流程,输入各种的测试範例,对其输入与输出的对应关係进行确认与分析。透过单元测试、整合测试、系统测试与验收测试等软体测试阶段,來检查软体介面、功能、与非功能需求的正确性。

Black Box & White Box

一般使用黑箱测试与白箱测试这兩种技术來设计测试案例。

White Box Test
白箱测试 (摊开程式码的内部构造): 也称架构测试或邏辑驱动测试。
在知道产品内部工作流程的情况下來检测产品,其测试原则为:

确保每条独立路径至少必须完成执行一次。所有包含邏辑判断的程式都须要确实执行。

举个例子:

上述的程式内容为简略的判断输入后的三边长是否可以组合成一个三角形。

需要完成上述第一点至少就必须有三个测试路径,测试的行数分别是路径1: 1 > 2 > 3 (行)路径2: 1 > 2 > 4 > 5 (行)路径3: 1 > 2 > 4 > 6 (行)后续的第二点与第三点我们就可以带入多种输入测试,执行每种路径邏辑1(第2行): (a, b, c) = (-1, 2, 3)邏辑2(第2行): (a, b, c) = (1, -2, 3)邏辑3(第2行): (a, b, c) = (1, 2, -3)邏辑4(第2行): (a, b, c) = (-1, -2, -3)邏辑5(第4行): (a, b, c) = (2, 2, 3)邏辑6(第4行): (a, b, c) = (2, 3, 2)邏辑7(第4行): (a, b, c) = (3, 2, 2)邏辑8(第2、4行): (a, b, c) = (2, 2, 2)

Black Box Test
黑箱测试 (覆盖程式码的内部构造): 也称功能测试或资料驱动测试。
在不知道产品内部工作流程的情况下來检测产品,其测试原则为:

边界测试: 依照需求规格,输入最小与最大临界值进行测试。等效测试: 依照需求规格,了解结果类型调整输入进行测试。错误测试: 依照需求规格,输入各种有可能的错误进行测试。

举个例子:

上述的程式内容乌漆墨黑所以只能根据需求规格进行测试。
从上述的需求规格中,可以知道的有
- 输入範围是 1 到 1000
- 输出类行为 正三角形 与 非三角形

而藉由上述的需求规格就可以完成第一点到第三点的测试了边界1: (a, b, c) = (1, 1, 1)边界2: (a, b, c) = (1000, 1000, 1000)等效1(正三角): (a, b, c) = (666, 666, 666)等效2(非三角): (a, b, c) = (8, 8, 88)错误1: (a, b, c) = (0, 0, 0)错误2: (a, b, c) = (1001, 1001, 1001)错误3: (a, b, c) = (10, 10, 5)

结尾

就这样,以上是这篇所介绍的内容,如果有疑问或是有错误,还请各位大哥大姐提点。
希望这篇的内容可以帮助到想了解软体测试或是想成为 QA 工程师的人。
在此感谢各位大哥大姐的关注,小弟将继续往下週迈进。 ─=≡Σ((( つ•̀ω•́)つ


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章