-
Notifications
You must be signed in to change notification settings - Fork 0
/
软件测试.html
19 lines (18 loc) · 26 KB
/
软件测试.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>软件测试 | LeeHon'blog</title>
<meta name="description" content="。。。。。。">
<link rel="icon" href="/avatar.ico">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/github-markdown-css/2.2.1/github-markdown.css">
<link rel="preload" href="/assets/css/styles.styles.68f6f5b3.css" as="style"><link rel="preload" href="/assets/js/app.c7910e17.js" as="script"><link rel="preload" href="/assets/js/167.34c6e1c1.js" as="script"><link rel="prefetch" href="/assets/js/0.0a69bee2.js"><link rel="prefetch" href="/assets/js/1.cbd15ca8.js"><link rel="prefetch" href="/assets/js/10.bee20cc5.js"><link rel="prefetch" href="/assets/js/100.6226807f.js"><link rel="prefetch" href="/assets/js/101.f4a5a3e8.js"><link rel="prefetch" href="/assets/js/102.6894d166.js"><link rel="prefetch" href="/assets/js/103.57942776.js"><link rel="prefetch" href="/assets/js/104.103af317.js"><link rel="prefetch" href="/assets/js/105.dfb8da7e.js"><link rel="prefetch" href="/assets/js/106.2eb66fb6.js"><link rel="prefetch" href="/assets/js/107.fb0c21b5.js"><link rel="prefetch" href="/assets/js/108.b8d5d801.js"><link rel="prefetch" href="/assets/js/109.d0822494.js"><link rel="prefetch" href="/assets/js/11.617b11a5.js"><link rel="prefetch" href="/assets/js/110.cb82d20f.js"><link rel="prefetch" href="/assets/js/111.c266b66a.js"><link rel="prefetch" href="/assets/js/112.0d25e281.js"><link rel="prefetch" href="/assets/js/113.adb0561d.js"><link rel="prefetch" href="/assets/js/114.4d6d0364.js"><link rel="prefetch" href="/assets/js/115.d24e950a.js"><link rel="prefetch" href="/assets/js/116.863b14e9.js"><link rel="prefetch" href="/assets/js/117.104fc81b.js"><link rel="prefetch" href="/assets/js/118.859bf3e8.js"><link rel="prefetch" href="/assets/js/119.9a740d5a.js"><link rel="prefetch" href="/assets/js/12.955306d4.js"><link rel="prefetch" href="/assets/js/120.4ce626da.js"><link rel="prefetch" href="/assets/js/121.fcb2a3e5.js"><link rel="prefetch" href="/assets/js/122.587191a8.js"><link rel="prefetch" href="/assets/js/123.c524257c.js"><link rel="prefetch" href="/assets/js/124.2f32ba80.js"><link rel="prefetch" href="/assets/js/125.9f817929.js"><link rel="prefetch" href="/assets/js/126.5a44c991.js"><link rel="prefetch" href="/assets/js/127.62ac9340.js"><link rel="prefetch" href="/assets/js/128.b28f4d25.js"><link rel="prefetch" href="/assets/js/129.63e2d8f8.js"><link rel="prefetch" href="/assets/js/13.cb231efb.js"><link rel="prefetch" href="/assets/js/130.a31befc3.js"><link rel="prefetch" href="/assets/js/131.ca67e305.js"><link rel="prefetch" href="/assets/js/132.d1b320aa.js"><link rel="prefetch" href="/assets/js/133.fce2bbbf.js"><link rel="prefetch" href="/assets/js/134.82285b20.js"><link rel="prefetch" href="/assets/js/135.7a0190c5.js"><link rel="prefetch" href="/assets/js/136.10cd4dde.js"><link rel="prefetch" href="/assets/js/137.0fa57d69.js"><link rel="prefetch" href="/assets/js/138.1dc20e85.js"><link rel="prefetch" href="/assets/js/139.55b2b0de.js"><link rel="prefetch" href="/assets/js/14.8be44170.js"><link rel="prefetch" href="/assets/js/140.a3576f53.js"><link rel="prefetch" href="/assets/js/141.ae4d0da0.js"><link rel="prefetch" href="/assets/js/142.ce2ed58c.js"><link rel="prefetch" href="/assets/js/143.0424175e.js"><link rel="prefetch" href="/assets/js/144.54963a32.js"><link rel="prefetch" href="/assets/js/145.26267247.js"><link rel="prefetch" href="/assets/js/146.175e4e41.js"><link rel="prefetch" href="/assets/js/147.f6c47b14.js"><link rel="prefetch" href="/assets/js/148.f2ce56bf.js"><link rel="prefetch" href="/assets/js/149.59828644.js"><link rel="prefetch" href="/assets/js/15.54a036ea.js"><link rel="prefetch" href="/assets/js/150.2e9ec512.js"><link rel="prefetch" href="/assets/js/151.c5d3c386.js"><link rel="prefetch" href="/assets/js/152.31eeaaf7.js"><link rel="prefetch" href="/assets/js/153.4c5d13f2.js"><link rel="prefetch" href="/assets/js/154.26206818.js"><link rel="prefetch" href="/assets/js/155.a573a91a.js"><link rel="prefetch" href="/assets/js/156.8f151e7b.js"><link rel="prefetch" href="/assets/js/157.f238a1d5.js"><link rel="prefetch" href="/assets/js/158.33fcadda.js"><link rel="prefetch" href="/assets/js/159.f1f9d1a1.js"><link rel="prefetch" href="/assets/js/16.e5ba3555.js"><link rel="prefetch" href="/assets/js/160.7b554df8.js"><link rel="prefetch" href="/assets/js/161.14acb5c1.js"><link rel="prefetch" href="/assets/js/162.36010599.js"><link rel="prefetch" href="/assets/js/163.5d9e9e53.js"><link rel="prefetch" href="/assets/js/164.98e0feaa.js"><link rel="prefetch" href="/assets/js/165.95f44eee.js"><link rel="prefetch" href="/assets/js/166.1b818f10.js"><link rel="prefetch" href="/assets/js/168.acac0bf2.js"><link rel="prefetch" href="/assets/js/169.269a0e2a.js"><link rel="prefetch" href="/assets/js/17.d756230b.js"><link rel="prefetch" href="/assets/js/18.5ade4bbb.js"><link rel="prefetch" href="/assets/js/19.8713e4a1.js"><link rel="prefetch" href="/assets/js/2.44277c1f.js"><link rel="prefetch" href="/assets/js/20.593f114c.js"><link rel="prefetch" href="/assets/js/21.4c2fe98e.js"><link rel="prefetch" href="/assets/js/22.9ac1dc84.js"><link rel="prefetch" href="/assets/js/23.87815dc8.js"><link rel="prefetch" href="/assets/js/24.f320f43b.js"><link rel="prefetch" href="/assets/js/25.678fd8be.js"><link rel="prefetch" href="/assets/js/26.ecf15294.js"><link rel="prefetch" href="/assets/js/27.95d55fab.js"><link rel="prefetch" href="/assets/js/28.48a9f416.js"><link rel="prefetch" href="/assets/js/29.6ccd0b14.js"><link rel="prefetch" href="/assets/js/3.cc491620.js"><link rel="prefetch" href="/assets/js/30.d4274369.js"><link rel="prefetch" href="/assets/js/31.837b34c8.js"><link rel="prefetch" href="/assets/js/32.68c090d2.js"><link rel="prefetch" href="/assets/js/33.23de0d7e.js"><link rel="prefetch" href="/assets/js/34.5b6484b8.js"><link rel="prefetch" href="/assets/js/35.d340a14e.js"><link rel="prefetch" href="/assets/js/36.6231ab0c.js"><link rel="prefetch" href="/assets/js/37.fd4b2c63.js"><link rel="prefetch" href="/assets/js/38.c17f1b94.js"><link rel="prefetch" href="/assets/js/39.8cc2fa26.js"><link rel="prefetch" href="/assets/js/4.b0db0ca3.js"><link rel="prefetch" href="/assets/js/40.fa89274c.js"><link rel="prefetch" href="/assets/js/41.e6c4f696.js"><link rel="prefetch" href="/assets/js/42.b91d54e8.js"><link rel="prefetch" href="/assets/js/43.9b67be5f.js"><link rel="prefetch" href="/assets/js/44.2f861eb2.js"><link rel="prefetch" href="/assets/js/45.19b1ba3b.js"><link rel="prefetch" href="/assets/js/46.d200846c.js"><link rel="prefetch" href="/assets/js/47.0c77f2fb.js"><link rel="prefetch" href="/assets/js/48.06ed69fe.js"><link rel="prefetch" href="/assets/js/49.115538c6.js"><link rel="prefetch" href="/assets/js/5.6317d5bb.js"><link rel="prefetch" href="/assets/js/50.0ebf5b23.js"><link rel="prefetch" href="/assets/js/51.50413550.js"><link rel="prefetch" href="/assets/js/52.aefa53f7.js"><link rel="prefetch" href="/assets/js/53.cc28d3e8.js"><link rel="prefetch" href="/assets/js/54.f910e33d.js"><link rel="prefetch" href="/assets/js/55.743378a5.js"><link rel="prefetch" href="/assets/js/56.601e2624.js"><link rel="prefetch" href="/assets/js/57.df59165e.js"><link rel="prefetch" href="/assets/js/58.ea37a94b.js"><link rel="prefetch" href="/assets/js/59.d0e147bb.js"><link rel="prefetch" href="/assets/js/6.880976bc.js"><link rel="prefetch" href="/assets/js/60.b0c659d7.js"><link rel="prefetch" href="/assets/js/61.07a6a138.js"><link rel="prefetch" href="/assets/js/62.66275d9f.js"><link rel="prefetch" href="/assets/js/63.c1ef9b21.js"><link rel="prefetch" href="/assets/js/64.d26a4ce4.js"><link rel="prefetch" href="/assets/js/65.5de15c1a.js"><link rel="prefetch" href="/assets/js/66.9adfee93.js"><link rel="prefetch" href="/assets/js/67.8d56663f.js"><link rel="prefetch" href="/assets/js/68.1a554919.js"><link rel="prefetch" href="/assets/js/69.7eacc59b.js"><link rel="prefetch" href="/assets/js/7.eecac8df.js"><link rel="prefetch" href="/assets/js/70.741af3ea.js"><link rel="prefetch" href="/assets/js/71.9ff5d4fb.js"><link rel="prefetch" href="/assets/js/72.5368df4d.js"><link rel="prefetch" href="/assets/js/73.d3782b26.js"><link rel="prefetch" href="/assets/js/74.892ee93c.js"><link rel="prefetch" href="/assets/js/75.48fbb7c0.js"><link rel="prefetch" href="/assets/js/76.cda2dd0c.js"><link rel="prefetch" href="/assets/js/77.fb40ddd4.js"><link rel="prefetch" href="/assets/js/78.b50e82f7.js"><link rel="prefetch" href="/assets/js/79.876767da.js"><link rel="prefetch" href="/assets/js/8.30817a78.js"><link rel="prefetch" href="/assets/js/80.7e4f8ce9.js"><link rel="prefetch" href="/assets/js/81.618f991c.js"><link rel="prefetch" href="/assets/js/82.8caa7f19.js"><link rel="prefetch" href="/assets/js/83.5e9bc57c.js"><link rel="prefetch" href="/assets/js/84.033ea1fa.js"><link rel="prefetch" href="/assets/js/85.4e932795.js"><link rel="prefetch" href="/assets/js/86.ab844b56.js"><link rel="prefetch" href="/assets/js/87.60f5200b.js"><link rel="prefetch" href="/assets/js/88.65cbe31a.js"><link rel="prefetch" href="/assets/js/89.13d60d51.js"><link rel="prefetch" href="/assets/js/9.318b73e1.js"><link rel="prefetch" href="/assets/js/90.0c030d2a.js"><link rel="prefetch" href="/assets/js/91.3dc3252b.js"><link rel="prefetch" href="/assets/js/92.4b878383.js"><link rel="prefetch" href="/assets/js/93.8bef3555.js"><link rel="prefetch" href="/assets/js/94.ecdb6e60.js"><link rel="prefetch" href="/assets/js/95.d783d73b.js"><link rel="prefetch" href="/assets/js/96.0956ffc3.js"><link rel="prefetch" href="/assets/js/97.3c5df0bb.js"><link rel="prefetch" href="/assets/js/98.bf652974.js"><link rel="prefetch" href="/assets/js/99.c9c29aa6.js">
<link rel="stylesheet" href="/assets/css/styles.styles.68f6f5b3.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">LeeHon'blog</span></a> <div class="links" style="max-width:nullpx;"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">首页</a></div><div class="nav-item"><a href="/js/" class="nav-link">前端</a></div><div class="nav-item"><a href="/website/" class="nav-link">网站导航</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">首页</a></div><div class="nav-item"><a href="/js/" class="nav-link">前端</a></div><div class="nav-item"><a href="/website/" class="nav-link">网站导航</a></div> <!----></nav> <!----> </div> <div class="page"> <div class="content"><h1 id="软件测试"><a href="#软件测试" aria-hidden="true" class="header-anchor">#</a> 软件测试</h1> <h3 id="软件测试的基本概念"><a href="#软件测试的基本概念" aria-hidden="true" class="header-anchor">#</a> 软件测试的基本概念</h3> <p>软件 = 程序 + 数据 + 文档 + 服务</p> <p>软件测试的定义: 检验是不是满足需求,是不是有差别。</p> <p>软件测试的目的:尽可能多地找出错误。</p> <p>软件测试的原则:</p> <ul><li>尽可能开展预防性测试</li> <li>可追溯性</li> <li>投入/产出原则</li> <li>80/20原则</li> <li>回归测试</li> <li>独立的软件测试,避免开发人员同时进行开发和测试。</li></ul> <p>软件测试模型:</p> <ul><li>瀑布模型</li> <li>V字模型</li></ul> <h3 id="软件测试策略"><a href="#软件测试策略" aria-hidden="true" class="header-anchor">#</a> 软件测试策略</h3> <h4 id="静态测试和动态测试"><a href="#静态测试和动态测试" aria-hidden="true" class="header-anchor">#</a> 静态测试和动态测试</h4> <p>静态测试:不通过执行程序而进行测试的技术,只是检查和审阅。</p> <p>动态测试:直接执行被测试程序以提供测试支持。包括功能确认与接口测试,覆盖率测试,性能分析,内存分析。</p> <h4 id="白盒测试和黑盒测试"><a href="#白盒测试和黑盒测试" aria-hidden="true" class="header-anchor">#</a> 白盒测试和黑盒测试</h4> <p>白盒测试:又称为结构测试或逻辑驱动测试,清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定进行的。</p> <p>黑盒测试:又称为功能测试或数据驱动测试,完全不考虑程序内部结构和处理过程,通常在程序界面处进行测试,它只是检查程序或软件是否满足需求规格说明书的规定正常运行。</p> <h3 id="软件开发与软件测试过程"><a href="#软件开发与软件测试过程" aria-hidden="true" class="header-anchor">#</a> 软件开发与软件测试过程</h3> <p>软件开发:制定计划,需求分析,软件设计,软件编码,软件测试,运行和维护</p> <p>软件测试:单元测试,集成测试,确认测试,系统测试,验收测试</p> <h2 id="黑盒测试"><a href="#黑盒测试" aria-hidden="true" class="header-anchor">#</a> 黑盒测试</h2> <h3 id="黑盒测试的目的"><a href="#黑盒测试的目的" aria-hidden="true" class="header-anchor">#</a> 黑盒测试的目的</h3> <p>尽量发现代码所表现的外部行为的错误</p> <ul><li>功能不正确或不完整</li> <li>接口错误</li> <li>接口所使用的数据结构错误</li> <li>行为或性能错误</li> <li>初始化和终止错误</li></ul> <h3 id="黑盒测试的优点"><a href="#黑盒测试的优点" aria-hidden="true" class="header-anchor">#</a> 黑盒测试的优点</h3> <ul><li>与软件的具体实现无关,所以如果软件实现发生了变化,测试用例依然可以使用。</li> <li>设计黑盒测试可以和软件实现同时进行,压缩项目总开销。</li></ul> <h3 id="等价类测试"><a href="#等价类测试" aria-hidden="true" class="header-anchor">#</a> 等价类测试</h3> <p>在每个子集合中,各个输入数据对于揭露程序中的错误都是等效的。</p> <p>软件不能只接受有效的,合理的数据,还要经受意外的考验。因此在划分等价类时,区分有效等价类和无效等价类。</p> <h4 id="等价类的适用前提"><a href="#等价类的适用前提" aria-hidden="true" class="header-anchor">#</a> 等价类的适用前提</h4> <p>在需求中必须有输入项并且输入项之间是独立的</p> <h4 id="等价类的优缺点"><a href="#等价类的优缺点" aria-hidden="true" class="header-anchor">#</a> 等价类的优缺点</h4> <p>优点:简单使用频率高</p> <p>缺点:不考虑输入项之间的联系(逻辑关系,组合关系)</p> <h3 id="边界值分析法"><a href="#边界值分析法" aria-hidden="true" class="header-anchor">#</a> 边界值分析法</h3> <p>边界容易犯错误。</p> <h3 id="决策表"><a href="#决策表" aria-hidden="true" class="header-anchor">#</a> 决策表</h3> <p>基于决策表的测试时最严格,最具有逻辑性的测试方法。</p> <h3 id="因果图"><a href="#因果图" aria-hidden="true" class="header-anchor">#</a> 因果图</h3> <p>适合描述与多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。</p> <h3 id="错误推测法"><a href="#错误推测法" aria-hidden="true" class="header-anchor">#</a> 错误推测法</h3> <p>人们可以依赖经验和直觉来推测程序之中可能存在的各种错误从而有针对性地设计测试用例的方法。</p> <h2 id="白盒测试"><a href="#白盒测试" aria-hidden="true" class="header-anchor">#</a> 白盒测试</h2> <h3 id="白盒测试原则:"><a href="#白盒测试原则:" aria-hidden="true" class="header-anchor">#</a> 白盒测试原则:</h3> <ul><li>保证一个模块中的所有独立路径至少被测试一次</li> <li>所有逻辑值均需测试真和假两种情况</li> <li>检查程序的内部数据结构,保证其结构的有效性</li> <li>在上下边界及可操作范围内运行所有循环</li></ul> <p>控制流测试</p> <p>数据流测试</p> <h3 id="测试覆盖率"><a href="#测试覆盖率" aria-hidden="true" class="header-anchor">#</a> 测试覆盖率</h3> <p><strong>语句覆盖:</strong> 每个可执行语句至少执行一次</p> <p><strong>判定覆盖:</strong> 每个判断的取真分支和取假分支至少经历一次。 也就是每个判断既要取一次True也要取一次False。</p> <p><strong>条件覆盖:</strong> 每个判断中的每个条件的真假值至少有一次。</p> <p><strong>判定/条件覆盖:</strong> 同时满足判定覆盖和条件覆盖。 在保证条件覆盖的基础上,保证判定覆盖。</p> <p><strong>条件组合覆盖(组合覆盖):</strong> 每个判定中的各个条件的各种可能组合都至少出现一次。满足判定/条件覆盖</p> <p><strong>路径覆盖:</strong> 覆盖程序中所有可能的执行路径,可以对程序进行彻底的测试用例覆盖。 组合覆盖不能覆盖所有路径? 反例?</p> <h2 id="单元测试"><a href="#单元测试" aria-hidden="true" class="header-anchor">#</a> 单元测试</h2> <p><strong>概述:</strong></p> <p> 在软件开发过程中要进行的最低级别的测试活动,针对软件设计的最小单位程序模块进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。</p> <p> 单元测试过程中,软件的独立单元将在于程序的其他部分相隔离的情况下进行测试。</p> <p> 根据单元测试计划和测试说明文档中制定的要求,执行充分的测试;由编写该模块的开发组成员设计测试用例,测试该单元并修改缺陷。</p> <p><strong>单元测试与集成测试的区别:</strong></p> <ul><li><p>单元测试对象是实现具体功能的单元,集成测试是针对概要设计所包含的模块以及模块组合进行的测试。</p></li> <li><p>单元测试所使用的主要测试方法是基于代码的白盒测试,而集成测试使用的是基于功能的黑盒测试。</p></li> <li><p>集成测试要在所有要集成的模块都通过了单元测试之后才能进行。</p></li></ul> <p><strong>单元测试与系统测试的区别:</strong></p> <ul><li>不仅仅是测试层次不同,而且测试性质也不同</li> <li>单元测试早于系统测试</li> <li>在单元测试过程中,测试的是软件单元的具体实现,内部逻辑结构以及数据流向等,而系统测试主要根据需求规格说明书进行的。是从用户角度来进行的功能测试和性能测试,证明系统是否满足用户的需求。</li></ul> <p><strong>原则:</strong></p> <ul><li>单元测试越早越好</li> <li>应根据《软件详细设计规格说明》进行</li> <li>对于修改过的代码应重做单元测试</li> <li>当测试结果与《软件详细设计规格说明》不一致时,如实记录测试结果</li> <li>注意被测软件单元的大小</li> <li>一个完整的单元测试说明应该包含正面测试和负面的测试</li> <li>注意使用单元测试工具</li></ul> <p><strong>主要内容和任务:</strong></p> <ul><li>模块接口测试</li> <li>模块局部数据结构测试</li> <li>模块中所有独立执行路径测试</li> <li>各种错误处理测试</li> <li>模块边界条件测试</li></ul> <p><strong>单元测试过程:</strong></p> <ul><li><p>准备阶段</p></li> <li><p>编制阶段</p></li> <li><p>代码审查阶段</p></li> <li><p>单元测试阶段</p></li> <li><p>评审,提交阶段</p></li></ul> <h4 id="单元测试环境建立"><a href="#单元测试环境建立" aria-hidden="true" class="header-anchor">#</a> 单元测试环境建立</h4> <ul><li><p>驱动模块:被测模块的主程序</p></li> <li><p>桩模块:代替被测模块调用的子模块</p></li></ul> <h2 id="集成测试"><a href="#集成测试" aria-hidden="true" class="header-anchor">#</a> 集成测试</h2> <p><strong>概述:</strong> 将多个单元组合起来形成更大的单元,在假定各个单元通过单元测试的前提下,检查各个单元之间的接口是否是否正确。保证增量的行为正确</p> <p><strong>主要任务:</strong></p> <ul><li>将各模块连接起来,检查模块相互调用时,数据经过接口是否丢失</li> <li>将各个子功能组合起来,检查能否达到预期要求的各项功能</li> <li>一个模块的功能是否会对另一个模块的功能产生不利影响</li> <li>全局数据结构是否有问题,会不会被异常修改</li> <li>单个模块的误差积累起来,是否被放大,从而达到不可接受的程度</li></ul> <p><strong>集成测试的层次:</strong></p> <p>传统软件</p> <ul><li>模块间集成测试</li> <li>子系统内集成测试</li> <li>子系统间集成测试</li></ul> <p>基于面向对象的应用</p> <ul><li>类内集成测试</li> <li>类间集成测试</li></ul> <p><strong>集成测试的原则:</strong></p> <p><strong>集成测试关注的主要问题:</strong></p> <p><strong>集成测试与单元测试的区别:</strong></p> <ul><li>集成测试关注的是模块间的接口,接口之间的数据传递关系,单元组合后是否实现预计的功能</li> <li>集成测试组装的对象比单元测试的对象级别要高</li></ul> <p><strong>集成测试与系统测试的区别:</strong></p> <ul><li>系统测试对象是整个系统以及系统交互的硬件和软件平台。系统测试更大程度上站在用户的角度对系统进行功能性的验证。同时还进行一些非功能性的验证</li> <li>集成测试所测试的对象是模块间的接口,其目的是找出在模块接口上面,包括整体体系结构上的问题。</li> <li>软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,已提高集成测试的效果</li></ul> <p><strong>集成测试的环境:</strong></p> <ul><li>硬件环境</li> <li>操作系统环境</li> <li>数据库环境</li> <li>网络环境</li> <li>测试工具运行环境</li> <li>其他环境</li></ul> <p><strong>集成测试的过程:</strong></p> <ul><li>计划阶段:制定集成测试计划</li> <li>设计阶段:设计集成测试</li> <li>实施阶段:实施集成测试</li> <li>执行阶段:执行集成测试</li> <li>评估阶段:评估集成测试</li></ul> <p><strong>集成测试方法:</strong></p> <ul><li>非增式集成</li> <li>自顶向下集成</li> <li>自底向上集成</li> <li>混合集成</li> <li>基于事件集成</li></ul> <h2 id="系统测试"><a href="#系统测试" aria-hidden="true" class="header-anchor">#</a> 系统测试</h2> <p><strong>概念:</strong> 测试整个系统已确定是否能够提供应用的所有需求行为。包含了多种测试活动,主要分为功能性测试和非功能性测试。功能性测试通常检查软件功能的需求是否与用户的需求一致。非功能性测试主要检查软件的性能,安全性,健壮性,包含性能测试,压力测试,兼容性测试,可靠性测试,安全测试,健壮性测试。</p> <p>将已经经过良好集成测试的软件系统,作为一个元素与其他系统元素结合在一起,在实际运行环境下,对系统进行一系列的组装测试和确认测试。</p> <p><strong>目的:</strong> 通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方,对计算机系统进行一系列严格测试来发现软件中的潜在缺陷,保证系统交付给用户之后能正常使用。</p> <h3 id="功能测试"><a href="#功能测试" aria-hidden="true" class="header-anchor">#</a> 功能测试</h3> <p><strong>概念:</strong> 它不管软件内部的实现逻辑,主要根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。</p> <p><strong>方法:</strong></p> <ul><li>链接(界面切换)测试</li> <li>业务流程测试</li></ul> <h3 id="性能测试"><a href="#性能测试" aria-hidden="true" class="header-anchor">#</a> 性能测试</h3> <h3 id="压力测试"><a href="#压力测试" aria-hidden="true" class="header-anchor">#</a> 压力测试</h3> <h3 id="容量测试"><a href="#容量测试" aria-hidden="true" class="header-anchor">#</a> 容量测试</h3> <h3 id="安全性测试"><a href="#安全性测试" aria-hidden="true" class="header-anchor">#</a> 安全性测试</h3> <h2 id="验收测试"><a href="#验收测试" aria-hidden="true" class="header-anchor">#</a> 验收测试</h2> <p><strong>概念:</strong> 确保软件准备就绪,并且让最终用户将其用于执行软件的既定功能和任务。</p> <p><strong>主要内容:</strong></p> <ul><li>验证系统达到了需求规格说明书中的要求</li> <li>尽可能发现系统中存留的缺陷,从而为软件进一步改善提供帮助</li> <li>保证系统能被最终用户接受</li></ul> <p><strong>策略:</strong></p> <ul><li>正式验收测试</li> <li>Alpha测试</li> <li>Beta测试</li></ul> <p><strong>分为:</strong></p> <ul><li>用户验收测试</li> <li>操作验收测试</li></ul> <p>**Alpha测试: ** 是指软件开发公司组织内部人员模拟各类用户行为对即将面市软件产品进行测试,试图发现错误并修正。</p> <p><strong>Beta测试:</strong> Beta测试由最终用户实施,通常开发组织对最终用户的管理很少或不进行管理</p></div> <div class="page-edit"><!----> <!----></div> <!----> </div> <!----></div></div>
<script src="/assets/js/app.c7910e17.js" defer></script><script src="/assets/js/167.34c6e1c1.js" defer></script>
</body>
</html>