微软软件测试过程介绍
简述系统测试的过程

简述系统测试的过程系统测试是软件开发过程中的一个重要环节,它是为了保证软件产品质量而进行的一系列测试活动的总称。
在软件开发过程中,系统测试是最后一个测试环节,也是最重要的测试环节。
其目的是确保软件产品能够满足用户需求,并且功能正常、稳定可靠。
系统测试的过程可以分为以下几个阶段:1. 需求分析阶段在这个阶段,测试人员需要仔细阅读软件需求文档,了解软件功能和性能的需求。
测试人员需要将需求文档转化为测试用例,以便后续测试。
2. 测试计划阶段在这个阶段,测试人员需要制定详细的测试计划和测试策略,包括测试环境、测试用例、测试工具、测试人员和测试进度等。
测试计划是指测试的整体安排和组织,是测试活动的指南。
3. 测试设计阶段在这个阶段,测试人员需要根据测试计划和测试策略,设计测试用例和测试数据。
测试用例是指一组输入和输出条件,以及测试执行步骤和预期结果。
测试数据是指用于测试软件的输入数据和验证数据。
4. 测试执行阶段在这个阶段,测试人员需要按照测试计划和测试策略,执行测试用例,并记录测试结果。
测试执行是指运行测试用例和验证测试结果的过程。
5. 缺陷管理阶段在这个阶段,测试人员需要收集、记录和跟踪软件缺陷。
缺陷是指软件产品中的错误、缺陷或不符合需求的部分。
测试人员需要将缺陷分类、分级和定位,以便开发人员修复。
6. 测试报告阶段在这个阶段,测试人员需要编写测试报告,汇总测试结果和缺陷情况。
测试报告是指测试结果、缺陷情况、测试用例、测试环境和测试工具等信息的总结和分析。
测试报告是提供给开发人员、测试人员和管理层的重要文档。
系统测试是软件开发过程中的重要环节,它能够保证软件产品的质量和可靠性。
系统测试的过程包括需求分析、测试计划、测试设计、测试执行、缺陷管理和测试报告等多个阶段。
在测试过程中,测试人员需要遵循测试流程和方法,以保证测试的有效性和准确性。
微软MSF过程模型

微软MSF过程模型微软MSF(Microsoft Solutions Framework)是微软公司开发的一种流程模型,旨在提供一种灵活性和可扩展性强的方法来管理软件和IT项目的全生命周期。
MSF过程模型结合了敏捷方法和传统的瀑布模型,强调项目管理和风险管理,并将团队的活动划分为一系列的阶段和活动。
下面将详细介绍MSF过程模型。
MSF过程模型包括四个核心原则:压缩风险、增强可信性、提高效率和促进沟通。
这些原则有助于建立一个团队和项目成功的环境。
首先是MSF的项目生命周期,它由六个阶段组成:启动、定义、计划、构建、部署和稳定。
每个阶段都有明确定义的目标和交付物,以确保项目的顺利进行和成功交付。
启动阶段是项目启动的阶段,旨在了解需求、定义范围和目标,并确定项目的计划和团队组成。
该阶段的关键交付物包括项目开发计划和启动报告。
定义阶段是详细定义项目需求和解决方案的阶段。
在这个阶段,团队将收集、分析和明确需求,并定义项目的范围和目标。
关键交付物包括需求文档和解决方案设计。
计划阶段是为项目制定详细计划和资源安排的阶段。
在这个阶段,团队将制定项目的工作计划、里程碑和资源分配,并进行项目进度和风险管理。
关键交付物包括计划文档和风险管理计划。
构建阶段是实施项目的阶段,包括软件开发、测试和集成。
在这个阶段,团队将根据需求文档和解决方案设计进行软件开发和测试,并将组件集成到解决方案中。
关键交付物包括软件代码和测试报告。
部署阶段是将解决方案交付给用户的阶段。
在这个阶段,团队将安装、配置和测试解决方案,并进行用户培训和支持。
关键交付物包括部署文档和用户培训材料。
稳定阶段是为解决方案提供持续支持的阶段。
在这个阶段,团队将监控和维护解决方案,并处理用户的反馈和问题。
关键交付物包括用户支持文档和问题解决报告。
除了项目生命周期,MSF还强调了项目管理和风险管理。
项目经理在MSF模型中扮演着重要的角色,负责协调项目团队、制定计划和管理项目进度。
WHQL Test 讲解

81
BNC线
Audio Precision适配软件(安装界面)
82
测试联接图
WHQL(DTM) 服务器studio
网线
集线器(HUB)
网线 网线
A P 适 配 卡
测试机(笔记 本/台式电脑)
B N C 线
Audio Precision(AP)
AP适配软件 AP2007 (Winds XP)
83
进行Fidelity测试相关设置:
WHQL测试 讲解
1
前
言
此PPT主要围绕怎么得到CPK档进行一系列的 动作, 分为7点,为了便于理解测试的方法,大 部分幻灯片都是测试过程的截图。
2
目 录 主要有以下几点:
1.WHQL定义? 2.为什么进行WHQL测试? 3.微软通过什么进行认证? 4.进行WHQL测试前的准备? 5.测试过程?(包括调试) 6.打包CPK档; 7.整理测试报告.
71
各测试项目大约所要的时间(机台配置性 能高RUN程序则用的时间少)
72
手动测试部分
Disk Stress (System LOGO) DRM Test - Vista (System,Manual) Fidelity Test - Mobiles (System,Manual) HDAudio Class Driver Fidelity Test - Mobile (System,Manual) 5. Signed Driver Check (Manual) 6. System-USB Test (Manual)
先要根椐测试的要求配 置好硬件,包括 CPU, RAM,HDD,ODD,主 板类型等部分. (注:拆装机台有可能会 拆不会装,装完后手里 可能会剩很多螺丝。)
软件测试过程及方法指南

软件测试过程及方法指南软件测试是确保软件质量的重要环节,它涉及到全面检查、评估和验证软件系统的各个方面。
本文将介绍软件测试的过程和方法指南,以帮助读者更好地理解和应用软件测试。
1. 测试准备阶段在测试准备阶段,测试团队需要进行测试计划的制定和测试资源的准备。
以下是该阶段的具体步骤:1.1 定义测试目标和范围在开始测试之前,明确测试的目标和范围是非常重要的。
测试目标可以是发现软件缺陷、验证系统功能、评估性能等。
同时,确定测试范围,即测试哪些功能、模块或者系统。
1.2 制定测试计划测试计划是测试工作的总体指导文件,它包括测试策略、测试范围、测试目标、测试资源、测试进度等。
根据项目需求和规模,合理制定测试计划。
1.3 确定测试环境和工具测试环境包括硬件、操作系统和网络环境等。
根据项目需求,选择适合的测试环境和工具,例如测试管理工具、自动化测试工具等。
2. 测试设计阶段测试设计阶段是根据测试计划,设计测试用例和测试数据。
以下是该阶段的具体步骤:2.1 确定测试用例测试用例是测试工作的核心,它描述了测试的步骤、输入、预期输出以及测试覆盖的范围。
在设计测试用例时,需考虑功能覆盖、边界条件、异常情况等。
2.2 制定测试数据测试数据用于执行测试用例,它应该包括各种典型情况和边界情况。
为了节省时间和资源,可以利用辅助工具生成部分测试数据。
3. 测试执行阶段在测试执行阶段,根据测试计划和测试设计阶段的工作,执行测试用例并记录测试结果。
以下是该阶段的具体步骤:3.1 准备测试环境确保测试环境配置正确,测试数据准备完整,测试工具可用。
如果需要,可以进行系统恢复、重启等操作,保证测试环境的稳定性。
3.2 执行测试用例按照测试计划和测试设计阶段的工作,逐条执行测试用例。
记录测试执行的结果,包括测试通过、失败、缺陷等。
3.3 缺陷管理在测试执行过程中,发现的缺陷需要进行记录、分类和报告。
同时,与开发团队密切合作,及时解决和验证缺陷修复情况。
软件测试流程

二 软件测试的流程
图三 测试各阶段示意图
软件测试流程
三 单元测试
一.单元测试的定义 单元测试[Unit Testing]是对软件基本组成单元进行的测试,单元测试的对象是软件设 计的最小单位——模块,很多人将单元的概念误解为一个具体函数或一个类的方法,这种 理解并不准确,作为一个最小的单元应该有明确的功能定义、性能定义和接口定义,而且 可以清晰地与其他单元区分开来,一个菜单、一个显示界面或者能够独立完成的具体功 能都可以是一个单元,从某种意义上单元的概念已经扩展为组件[component],
软件测试流程
四 集成测试
二.集成测试的层次 软件的开发过程是一个从需求分析到概要设计、详细设计以及编 码实现的逐步细化的过程,那么单元测试到集成测试再到系统测试 就是一个逆向求证的过程,集成测试内部对于传统软件和面向对象 的应用系统有两种层次的划分, 对于传统软件来讲,可以把集成测试划分为三个层次: 模块内集成测试; 子系统内集成测试; 子系统间集成测试, 对于面向对象的应用系统来说,可以把集成测试分为两个阶段: 类内集成测试; 类间集成测试,
软件测试流程
一.一 软件测试的复杂性
图一 最优测试量示意图
软件测试流程ຫໍສະໝຸດ 一.二 软件测试的经济性软件测试的经济性有两方面体现: 一是体现在测试工作在整个项目开发过程中的重要地位; 二是体现在应该按照什么样的原则进行测试,以实现测试成本与测 试效果的统一, 软件工程的总目标是充分利用有限的人力和物力资源,高效率、高 质量地完成测试,
块,再把所有模块按设计要求放在一起结合成所需要实现的程序,如图 七是所示按照一次性集成测试方式的实例
软件测试流程
四 集成测试
图七 一次性集成测试方式
软件测试的5个基本流程图

软件测试的5个基本流程图软件测试是软件开发过程中至关重要的一环,可以帮助开发人员发现和解决潜在的问题和错误。
在进行软件测试时,遵循一定的流程和方法可以确保测试的有效性和可重复性。
本文将介绍软件测试的五个基本流程,并提供相应的流程图。
1. 需求分析和测试计划软件测试的第一个基本流程是需求分析和测试计划阶段。
在这个阶段中,测试团队与产品负责人合作,了解软件的需求和功能。
测试团队根据需求文档或者其他相关文档编写测试计划。
测试计划包括测试的范围、测试目标、测试策略、测试资源等内容。
流程图如下:graph TDA[需求分析和测试计划阶段]A --> B[了解软件的需求和功能]A --> C[编写测试计划]2. 测试设计和测试用例在需求分析和测试计划阶段完成后,测试团队开始进行测试设计和编写测试用例。
测试设计阶段包括根据需求和功能设计测试方案,确定测试的覆盖范围和测试的方法。
测试用例是测试工作的核心,它描述了不同场景下的输入、操作和预期的输出结果。
流程图如下:graph TDA[测试设计和测试用例阶段]A --> B[根据需求和功能设计测试方案]A --> C[编写测试用例]3. 环境准备和测试执行测试设计和测试用例阶段完成后,测试团队开始进行环境准备和测试执行。
环境准备阶段包括搭建测试环境、准备测试数据和测试工具等。
在测试执行阶段,测试团队根据测试计划和测试用例执行测试,记录测试结果,并将测试结果进行整理和分析。
流程图如下:graph TDA[环境准备和测试执行阶段]A --> B[搭建测试环境]A --> C[准备测试数据和测试工具]A --> D[执行测试]A --> E[记录测试结果]A --> F[整理和分析测试结果]4. 缺陷管理和缺陷修复在测试执行阶段,测试团队可能会发现软件中的缺陷或问题。
在这个阶段,测试团队需要进行缺陷管理和缺陷修复。
缺陷管理包括缺陷的提交、缺陷的跟踪和缺陷的验证。
软件测试包括哪些步骤,这些步骤的测试对象是什么

软件测试包括哪些步骤,这些步骤的测试对象是什么软件测试是在软件开发生命周期中的一个重要环节,其目的是验证软件是否符合规定的需求,并发现和修复潜在的缺陷。
软件测试包括一系列的步骤,每个步骤都有其特定的测试对象。
在本文中,我们将详细介绍软件测试的步骤以及它们的测试对象。
步骤一:需求分析需求分析是软件测试的第一步,旨在确保测试团队对软件的需求和功能有清晰的理解。
在这个阶段,测试团队会仔细研究软件需求文档,并与开发团队和产品所有者进行沟通,以确保对软件的期望一致。
测试团队还会评估需求的可测试性和完整性,并确保测试对象的正确性。
测试对象:软件需求文档、与开发团队和产品所有者的沟通结果步骤二:测试计划制定在测试计划制定阶段,测试团队将制定详细的测试计划,其中包括测试范围、测试目标、测试策略、测试资源和时间安排等。
测试计划的目的是确保测试活动的组织和管理,以提高测试效率和效果。
测试对象:测试计划文档步骤三:测试用例设计测试用例是软件测试的核心,用于描述测试步骤、预期结果和测试数据等信息。
测试用例设计应该覆盖软件的各个功能和边界条件,以尽可能发现潜在的缺陷。
在这个阶段,测试团队将根据需求文档和测试目标设计测试用例,并将其记录在测试用例文档中。
测试对象:测试用例文档步骤四:测试环境设置测试环境是进行软件测试的基础设施,包括硬件、操作系统、数据库和网络等。
在这个步骤中,测试团队将建立和配置适当的测试环境,以保证测试的可靠性和一致性。
测试环境设置还包括安装和配置必要的测试工具和框架。
测试对象:测试环境、测试工具和框架步骤五:测试执行在测试执行阶段,测试团队将根据设计的测试用例,通过执行测试用例来验证软件的功能和质量。
测试团队将记录测试过程中遇到的问题和缺陷,并及时通知开发团队进行修复。
测试执行的目的是发现软件的缺陷,并确保软件的正常运行。
测试对象:测试用例、软件系统步骤六:缺陷管理在测试执行过程中,测试团队将记录并跟踪发现的缺陷。
软件测试实验指导书__孙炳欣

《软件测试》实验指导书计算机工程系软件测试实验一、实验目的1.掌握QuickTest Professional 8.2(QTP)操作界面的组成。
2.着重掌握如何在不同的环境中使用QuickTest来作为自动化的功能测试工具。
3.掌握如何创建自动化测试用例。
二、基本知识1.具有微软Windows的使用经验2.熟悉网络和浏览器知识3.熟悉测试概念4.QTP8.2的使用概要。
三、实验设备及环境①windows操作系统②QuickTest Professional 8.2应用软件四、实验内容使用QuickTest进行测试的过程包括6个主要步骤:●准备录制打开你要对其进行测试的应用程序,并检查QuickTest中的各项设置是否适合当前的要求。
●进行录制打开QuickTest的录制功能,按测试用例中的描述,操作被测试应用程序。
●编辑测试脚本通过加入检测点、参数化测试,以及添加分支、循环等控制语句,来增强测试脚本的功能,使将来的回归测试真正能够自动化。
●调试脚本调试脚本,检查脚本是否存在错误。
●在回归测试中运行测试在对应用程序的回归测试中,通过QuickTest回放对应用程序的操作,检验软件正确性,实现测试的自动化进行。
●分析结果,报告问题查看QuickTest记录的运行结果,记录问题,报告测试结果。
关于例子程序的具体操作步骤:我们使用微软的IE做为浏览器,为了使QuickTest能够更加准确的运行,需要对IE 进行一下设置,步骤如下:1 选择IE的[ 工具| Internet选项]菜单命令,在弹出的窗口中,选择“内容”标签页。
2在“个人信息”部分,用鼠标左键单击“自动完成”按钮。
弹出如下的对话框:自动完成设置对话框3 使“Web地址”、“表单”、“表单上的用户名和密码”处于未选中的状态,然后用鼠标左键单击“清除表单”和“清除密码”按钮,设置完成。
1、录制前的准备工作首先,你已经对IE进行了设置。
其次,在你正式开始录制一个测试之前,应该关闭所有已经打开的IE窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试一、微软的测试人员微软的软件测试人员分为两类:测试工具软件开发工程师(Software Development Engineer in Test,简称SDE/T)和软件测试工程师(Software Test Engineer,简称STE)。
测试工具软件开发工程师:负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。
产品开发后的性能测试(Performance Test)、提交测试(Check-in Test)等过程,都有可能要用到SDE/T开发的测试工具。
由于SDE/T和SDE 的工作都是写代码,具有相通的地方,所以两者之间互相转换的情况比较多。
但需意的是,两者写出来的代码用途是不一样的,SDE写的是产品的代码,而SDE/T写的代码只用于测试产品。
软件测试工程师:负责理解产品的功能要求,然后对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),并写出相应的测试规范和测试案例。
除此之外,在一个软件产品的研发和销售过程中,还会需要负责给产品打补丁(Service Pack)的快速修正工程师比(Quick Fix Engineer),通常曲SDE来担任,通过电话方式向用户提供售后技术支持的支持工程师(Support Engineer),销售和市场(Sales and Marketing)人员,研究员和研究工程师(Researchers & Research SDE)。
在进行产品开发的时候,主要是由前面三类人员(项目经理、开发人员及测试人员)组成产品开发团队来进行的。
在微软内部,软件测试人员与软件开发人员的比率一般为1.5-2.5左右,这可能远远超出了大家对测试人员的理解,但微软软件开发的实践过程已经证明了这种人员结构的合理性。
下图中显示了上述两个产品的微软软件开发人员的一般配置图。
下面以微软Exchange2O0O和Windows2000为例介绍一下微软产品团队的人员结构(这里只分析三类主要的人员,即项日经理、开发人员及测试人员),如下表所示。
二、测试时应考虑的几个问题(1) 测试最重要的一件事就是要考虑到所有的出错可能性。
同时,还要做一些不是按常规做的、非常奇怪的事。
说起来可能不太好听,测试的过程就像黑客(Hacker)的攻击过程那样。
可以这么说,像黑客这样的人是最好的软件安全测试员。
他们专门找软件的漏洞,从而破坏这个软件,这样就可以修复这些漏洞保证软件的性能。
如果找不到这种漏洞,那就说明该软件质量己经很好了。
(2) 除了漏洞之外,测试还应该考虑性能(Performance)问题,也就是一定要保证软件运行得很好,非常快,没有内存泄漏,不会出现那种越来越慢的情况。
我们可以在不关机的情况下,与其他软件一起持续运行一个多月,看看是否会出现越来越慢的情况(当然必须保证其他软件是没有问题的)。
我们在做IE的时候,就是让它72小时连续不停地打开不同的网页,处理几万个不同的网页,而且速度不能减慢。
有许多软件,当只有一两个人用的时候,可能感觉不到什么问题,而当几百个用户一起用的时候,有的网站就出现各种各样的异常,这就是测试工作还比较欠缺的原故。
(3) 另外,测试还要考虑软件的兼容性(Compatibility)。
一般来说,一个软件是由许多小软件构成的,如果其中一个小软件与它的前一版本不兼容,那么这个软件就会出现错误。
这种错误需要通过测试来发现和解决。
许多人认为写代码的人一定能找出错误来。
其实开发人员在写代码的时候,如果有错误,他可以意识到了,可是写出来的错误,他不一定能想得到。
我自己也编过程序,在编程序的时候很自信,觉得不会有错,可事实上,即使是我编的小程序也有错误,但要自己找出来,却要费很大劲。
因为我一直认为自己不应该出错,但常常错误就出现在我认为最有把握的地方。
我是学数学的,是一个很细心的人,可是--样还是会出错,但要找出自己的错误却要花费很长的时间。
后来我写的代码让我的师弟帮我看,结果他很快就找到许多问题,可是我自己花一个月时间可能都找不到。
所以,开发人员和测试人员完全不一样,开发人员确实可以找到一些Bug,但是有更多的Bug是他意识不到的。
在一般的开发团队中,并不需要测试人员定位Bug的具体位置,所以,对测试人员的要求并不高。
只要你愿意学,测试工作是非常容易做的。
但是,我当年所在的IE团队(IE 4.0)就不同,因为当时正在与另一个公司的产品竞争,所以微软就要求尽量找到一流的开发人员和一流的测试人员,尽快开发出新产品,打败对手。
所以,当时对我们测试人员的要求非常严格,不仅要找出Bug,而且要定位引起此Bug的代码行。
然后将这些信息交给开发人员,后者就可以很快更正,省去了他们找错误出处的时间。
因此,当时IE的开发速度非常快,一年之内就发布了一个新版本,而且几乎役有任何大Bug,大大超越了竞争对手。
三、关于BugBug的定义很广泛,在软件使用过程中所出现的任何一个可疑问题,或者导致软件不能符合设计要求或满足消费者需要的问题部是Bug,即使这个Bug在实践中是可行的。
有时候,Bug并不是程序错误。
例如,软件没有按照一般用户的使用习惯来运行,此时也可以把这个问题看成是该软件的一个Bug。
通常,对Bug的跟踪过程如图所示。
首先,测试人员根据测试结果来报告他发现的所有Bug。
通常,这项工作还需要用户的参与。
微软在正式发布一个软件之前,经常要依次发布Alpha测试版、Beta测试版让用户试用,以便用户能够反馈出相关Bug的信息。
但是,现在随着微软测试队伍的扩大及测试水平的提高,越来越多的 Bug都是我们内部的测试人员自己发现的,很少出现外部用户所反馈的Bug没有被测试人员发现的情况。
然后,开发经理根据这些Bug的危害性对它们进行排序,确定Bug的优先级,并安排给相关的开发工程师。
接着,开发人员根据Bug的轻重缓急依次修复各个Bug。
最后,测试人员再对开发人员已经修复的Bug进行验证,确认Bug是否已经被彻底更正。
微软开发一个产品经常会遇到几十万条Bug。
随着测试人员越来越多,测试工作也越来越完善。
但是,如何快速有效地追踪并修复Bug,仍然是摆在软件测试人员面前的一个主要困难。
测试产品和追踪Bug时最重要的是问题的定义,要清楚需要解决什么样问题,确定Bug的主次关系,挑选出最主要的问题,并先解决它们。
例如,有些Bug可能会导致死机或程序崩溃,这时就要先修复它们,而另一些Bug可能对软件的运行影响不大,或者出现的机会很少,就可以考虑以后再修复。
可以说,没有任何一个产品没有Bug,也永远不可能找井修复所有的Bug。
在修复了旧的Bug的同时,往往又会生新的Bug。
根据微软的经验,每修复三到四个Bug一般就会产生一个新的Bug。
这个过程就类似于数学中的“极限”的定义,尽管我们知道某个极限值为0,但是它永远也不可能达到0。
这也就产品的Bug永远也修复不完的原因。
因此,我们在修复 Bug时要注意,一定要记住用户最需要的是什么,然后优先尽力修复那些影响用户使用的Bug;而对于大部分对用户影很少、甚至根本不影响的Bug,则可以推迟修复,甚至不修复。
在查找并修复Bug的过程中,测试人员和开发人员经常会发生争执。
例如,当开发人员宣布某一个Bug已经被Fixed时,测试人员往往还不放心,又重新对该Bug进行检查;当开发人员宣布某一个Bug是Duplicated时,细心的测试人员也要验证该Bug是否和另外一个Bug相重复,如果另外一个 Bug己经被修复了,但这个Bug还存在,就会让开发人员重新修复该Bug;对于是否需要Postponed一个Bug,测试人员和开发人员也常常争论不休,测试人员认为这个Bug需要修复,而开发人员则认为修复这个Bug不值得,这时候就需要项目经理来决定,因为测试人员要从用户的角度来看待 Bug,开发人员则要考虑到开发期限和付出的代价,而项目经理要同时考虑到这两种情况。
只有项目经理经过权衡之后才能确定是否要推迟修复该 Bug;在By design情况下,通常是争论最多的时候。
这时候也需要三方都坐下来谈,其结果一般有三种:坚持原来的设计、修改原来的设计并增加特性、或者取消该设计。
对Not repro和Won't fix情况也是这样,需要测试人员、开发人员和项目经理进行协商,直到三方达成共识。
四、软件测试方法和辅助工具有了Bug类型的定义以后,如何去找出这些Bug呢?这就需要采用好的测试方法。
以下介绍几种常用的钦件测试方法。
有多种方式对软件测试方法进行分类。
例如,从代码和用户使用的角度可以将软件测试方法分为如下几种。
(1) 覆盖性测试 (Coverage Testing)覆盖性测试是从代码的特性角度(即内部)出发的测试方法,包括以下方式。
①单元测试 (Unit Test): 按照代码的单元组成逐个进行测试。
②功能测试 (Function Test)或特性测试(Feature Test):按照软件的功能或特性逐个进行测试。
例如,在 Exchange中,发送邮件和接收邮件就是两个不同的功能或特性,在测试时就分别对它们进行检查,看是否工作正常。
③提交测试 (Check-in Test):在开发人员对代码做了任何修改,或者修复了某个Bug 时,需要重新Check-in代码 (即将修改后的代码放大到整个大的系统中)。
这时,开发人员往往也要进行测试,看代码是否工作正常。
为了保险起见,开发人员往往要找测试人员帮着一起进行测试(我们把这种情况称做Buddy Test)。
测试人员和开发人员之间搞好关系是非常重要的,稍后我会专门讲述这一点。
④基本验证测试 (Build Verification Test,简称BVT):对完成的代码进行编译和连接,产生一个构造,以检查程序的主要功能是否会像预期一样进行工作。
这是最简单而又最省时的一种测试方法。
每产生一个新的构造时都要进行测试。
如果连BVT部通不过,表明问题很严重,开发人员需要尽快修复出现的问题,测试人员也就不用浪费时间做其他测试了。
⑤回归测试 (Regression Test):过一段时间以后,再回过头来对以前修复过的Bug 重新进行测试,看该Bug是否会重新出现。
(2) 使用测试(Usage Testing)使用测试是从用户的角度(即外部)出发的测试方法。
它也包括许多类型。
①配置测试 (Configuration Test):从用户的使用出发进行多方面的测试。
例如,保证软件不仅能够在Windows 9X下运行,也能够在Windows ME下运行,还能够在Windows NT/200O/XP下运行;或者软件不仅能够在配置高的计算机上运行,也能够在配置很低的计算机上正确地运行。