详细分析软件测试的14种类型
软件测试中黑盒测试的测试用例设计方法软件测试的14种类型

软件测试中黑盒测试的测试用例设计方法/软件测试的14种类型发布: 2010-7-09 09:05 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 204次 | 进入软件测试论坛讨论软件测试中黑盒测试的测试用例设计方法/软件测试的14种类型等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.无效等价类:与有效等价类的定义恰巧相反.设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.2)划分等价类的方法:下面给出六条确定等价类的原则.①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件有效等价类无效等价类... ... ...... ... ...然后从划分出的等价类中按以下三个原则设计测试用例:①为每一个等价类规定一个唯一的编号.②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.边界值分析法边界值分析方法是对等价类划分方法的补充.(1)边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.(2)基于边界值分析方法选择测试用例的原则:1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.3)根据规格说明的每个输出条件,使用前面的原则1).4)根据规格说明的每个输出条件,应用前面的原则2).5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.7)分析规格说明,找出其它可能的边界条件.错误推测法基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.利用因果图生成测试用例的基本步骤:(1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符.(2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.(4) 把因果图转换为判定表.(5) 把判定表的每一列拿出来作为依据,设计测试用例.从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.判定表通常由四个部分组成.条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.判定表的建立步骤:(根据软件规格说明)①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有种规则.②列出所有的条件桩和动作桩.③填入条件项.④填入动作项.等到初始判定表.⑤简化.合并相似规则(相同动作).B. Beizer 指出了适合使用判定表设计测试用例的条件:①规格说明以判定表形式给出,或很容易转换成判定表.②条件的排列顺序不会也不影响执行哪些操作.③规则的排列顺序不会也不影响执行哪些操作.④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.软件测试的14种类型作者:啄木鸟(Sawin网站)软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。
软件工程-软件测试

等价类划分法
• 等价类划分是把程序的输入域划分为若干子集,然后从每个子集中选取少 数具有代表性的数据用作测试用例,所选取的输入数据对于揭露程序中的 错误都是等效的。对于测试来说,某个等价类的代表值与该等价类的其他 值是等价的,因此可以把所有的输入数据划分为若干等价类,在每一个等 价类中取少部分数据进行测试。等价类分为有效等价类和无效等价类。
8
12.1.1 软件测试的原则
• 软件测试是为了发现错误而执行程序的过程,它并不可能找出所有的错 误,但是却可以减少潜在的错误或缺陷。人们在长期进行软件测试实践的 过程中,不断地总结出一些软件测试的经验或原则,可供我们参考。
• 完全测试是不可能的。 • 测试中存在风险。 • 软件测试只能表明缺陷的存在,而不能证明软件产品已经没有缺陷。 • 软件产品中潜在的错误数与已发现的错误数成正比。 • 让不同的测试人员参与到测试工作中。
27
软件测试方法
• 与静态测试不同的是,动态测试需要通过实际运行被测程序来发 现问题。测试人员可以输入一系列的测试用例,通过观察测试用例 的输出结果是否与预期相符来检验系统内潜在的问题或缺陷。 • 动态测试中有两种非常流行的测试技术,即黑盒测试和白盒测试。
28
12.5
被测试的软件系统看成是一个黑盒子,并不需要关心盒子的内部结构 和内部特性,而只关注软件产品的输入数据和输出结果,从而检查软件产品是否符合它的功能说明。 与黑盒测试不同,白盒测试关注软件产品的内部细节和逻辑结构,即把被测的程序看成是一个透明的 盒子。
10
12.1.2 软件测试模型
软件测试模型是指软件测试全部过程、活动或任务的结构框架。通常情况下,一个软 件测试模型应该阐明的问题包括:测试时间、测试步骤、如何对测试进行计划、不同阶段 测试中应关注的测试对象、测试中应考虑的问题、测试目标等。
软件测试方案大纲

软件测试方案大纲一、背景在软件开发过程中,为了保证软件的质量和稳定性,软件测试显得尤为重要。
本文将介绍一个软件测试方案的大纲。
二、测试类型在进行软件测试之前,需要先了解软件测试的类型,一般来说软件测试可以分为以下几种类型: - 功能测试:检查软件是否按预期功能正常工作。
- 性能测试:测试软件的负载和性能,确定软件的响应速度、吞吐量等。
- 安全测试:检查软件是否存在安全漏洞和安全隐患,测试软件的安全性。
- 兼容性测试:确认软件在不同的操作系统以及不同的硬件设备上是否正常运行。
三、测试流程在进行软件测试时,一般需要按照以下流程进行: 1. 确定测试目标和测试范围。
2. 制定测试计划和测试用例。
3. 进行测试和记录测试过程。
4. 分析测试结果以及测试数据。
5. 编写测试报告。
在流程中需要重点关注的是测试用例的制定,测试用例的设计需要覆盖软件的所有功能,并根据实际情况考虑边界条件、特殊情况等。
对于需要进行性能测试的软件,在测试时需要设置负载测试工具,以模拟真实的负载条件。
四、工具和平台在进行软件测试时,会用到一些测试工具和测试平台,以下是常用的几种: 1. JMeter:一种Java编写的负载测试工具,可进行性能和压力测试。
2. Selenium:用于进行Web应用程序用户界面的自动化测试的工具。
3. Postman:一种API测试工具,用于检查API是否按照预期工作。
4. Jenkins:一种流行的持续集成工具,用于创建、构建和测试以及部署软件应用程序。
5. Bugzilla:一种常用的缺陷跟踪软件,用于记录和跟踪软件缺陷。
五、团队协作在软件测试过程中,团队协作十分关键。
为了提高效率和质量,需要加强项目管理和协作,包括但不限于以下方面: 1. 确定任务分配和责任人,制定详细的计划。
2. 为每一项任务设置优先级和截止日期,并及时跟进任务的完成情况。
3. 实时把握团队的工作进度,提高沟通效率和交流频率。
软件测试理论

软件测试的方法-动态测试
动态测试,需要运行被测对象的程序代码,执行测试用例,检查系统软件 运行结果与预期结果的差异
通过动态测试,主要分析被测对象的正确性、可靠性和有效性,并分析系 统运行速度、系统资源耗用等性能状况
软件测试的方法-手工测试
手工测试,是最传统的测试方法,测试工程师手工运行被测对象,通过模 拟终端用户的业务流程进行软件系统应用,检查被测对象实际表现与预期 结果间的差异
集成测试的目的是验证单元、模块间接口和接口数据传递关系,以及它们 组合后的整体功能,是否与《概要设计说明书》相符
软件测试的级别-集成测试
集成测试需要掌握“灰盒测试方法”,具体的实施人员可以是开发人员, 也可以是测试工程师,对技能方面的要求是具备接口测试的能力
现在越来越多的企业希望测试工程师能够参与集成测试,因此这部分知识 和技能的学习,是中、高级测试工程师必备的
白盒测试要求测试工程师具备较深的软件开发功底,熟悉相应的开发语言
软件测试的方法-灰盒测试
灰盒测试,结合了黑盒、白盒两种测试方法,一方面需要考虑被测对象的 外部特性表现,另一方面又需要考虑程序代码的内部结构
通俗来说,灰盒测试就是白加黑,性能测试和自动化测试就常用灰盒测试 的方法
软件测试的方法-静态测试
软件测试的方法-自动化测试
Selenium的自动化测试脚本:
软件测试的方法-自动化测试
自动化测试的引入,大大地提高了测试效率和准确性,优点是快速、可重 用,利用自动化测试工具进行测试,无须测试工程师手工重复执行测试, 极大地提高了工作效率
当然,自动化测试的缺点也很明显,只能根据脚本来执行机械的重复测试, 无法主动进行新的测试并发现问题。另外,在自动测试中编写测试脚本的 工作量也很大,因此自动化测试完全替代手工测试是不可能的
软件测试16种测试类型

软件测试主要从以下16种类型进行测试:一:功能测试(10个方面)菜单、工具栏、快捷键、下拉框、按钮、单选按钮、复选按钮、切换、链接、触发键二:界面测试登陆界面、总界面、输入界面(增、删、改、查)、处理界面、输出界面、报表界面、提示界面三:容错测试数据长度、数据类型、非法此操作四:接口测试接口测试也叫业务流程测试(包括功能模块之间、模块与模块之间、子系统之间)内部接口:例如:导入、导出(通俗的讲是接口就是调用)外部接口:五:性能测试(TPS吞吐量、响应速度、cpu占用率、内存占用率)平均吞吐量:单位时间内处理事务的个数平均响应速度:做一个事务处理所用时间例如:界面操作效率测试;报表输出及查询效率测试六:负载测试(压力测试、强度测试、容量测试)压力测试即就是大用户测试(针对B/S而言)容量测试即就是大数据量测试七:并发测试指多个用户在同一时间对同一条数据的删除或者修改等处理八:稳定性测试例如:1小时触发600条信息,那么8个、10个等发信息的条数测试九:恢复测试突然断电(系统触发正常启动;数据包要在断电的地方继续进行处理)十:配置测试最低配置:推荐配置:大多数用户所用的配置十一:安装测试安装过程;卸载过程十二:文档测试交给用户的文档。
例如:系统帮助、用户使用手册、用户安装手册十三:可用性测试(纯粹靠经验)十四:初始化测试是指系统刚刚安装完成后,在数据位空的情况下,如果被调用的模块为空,点击调用模块的时候,是否进行容错的测试。
十五:数据完整性测试是指当主表的某一条件信息被删除后,和这一条相关的从表的信息都应该被删除。
如果某些数据的主键是由数据库本身而实现的,可以不用删除,如果有些主从表是由程序员写的代码而实现,则要进行数据完整性的测试。
16种测试类型归类1)此软件能做什么?针对数据进行”功能、接口、容错、界面、权限、初始化、数据完整性测试“2)软件做的怎么样?性能、负载、恢复、稳定性、并发、系统安全3)软件在什么环境条件下做?配置、安装、文档、可用性7、测试计划的目的是什么?测试计划工作的内容包括什么?其中哪些是最重要的?软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。
软件测试知识点整理

一:软件测试定义以及意义软件是计算机系统与硬件相互依存的另一部分,它包括程序、文档的完整集合软件测试的定义:使用人工或自动的手段,来运行或测试某个系统的过程,其目的在于检验他是否满足规定的需求或弄清楚预期结果与实际结果之间的差别测试的目的:1 •测试是以查找错误为中心的,而不是为了演示软件的正确性2.确保最终交给用户的产品功能符合用户的需求,在产品交给用户之前尽可能多的发现并改正问题二:软件测试的原则:1、软件测试应该尽早执行,并且贯穿整个软件生命周期、2、软件应该由第三方来构造3、独立测试原则4、充分注意错误集群原则5、错误不可避免原则6、穷举测试是不可能原则5要遵守good enough原则注意《规格需求说明书》是否真实反映了用户需求,过程中需要不断和用户沟通。
三:软件测试的流程需求分析.■编写测试计划一编写测试用例一测试环境搭建一测试执行一缺陷记录以及缺陷管理一测试报告首先明确分工,一般而言,需求分析、测试用例编写、测试环境搭建等属于高级测试人员工作范畴,而测试执行以及缺陷提交等属于普通测试人员的工作范畴,测试负责人负责整个测试各个环节的跟踪、实施、管理等。
1、需求分析(Requirment Analyzing )应该说是软件测试的一个重要环节,测试人员对这一环节的理解程度如何将直接影响到接下来有尖测试工作的开展。
2、测试计划的依据主要是项目开发计划和测试需求分析结果而制定测试计划的作用:(1)把知识和经验直接转化为执行任务的具体方法(2)为组织、安排和管理测试项目提供一个整体框架(3)促进团队间尖于测试任务和过程的交流(4)对项目执行过程中的风险进行分析,并制定相尖的应对策略(比如开发时间的延迟);测试计划的内容:测试计划的简介;测试项目说明;需要测试的项目清单;测试手段和策略;项目通过或失败的标准;暂停和重新启动测试的标准;测试的可交付性;测试任务;环境的需求;职责;人员和培训需求;进度表;风险及偶然事故的预测;3测试用例4测试环境的搭建测试环境很重要,符合要求的测试环境能够帮助我们准确的测出软件问题,并且做出正确的判断四:测试的分类(1)按测试阶段分类:单元测试、集成测试、确认测试,回归测试、系统测试、验收测试(2)按测试策略分类:黑盒与白盒测试、静态和动态测试、手动和自动测试、冒烟测试(3)其他常见测试:恢复测试、安全测试、强度测试、性能测试、正确性测试、可靠性测试、兼容性测试、web网站测试、软件配置和文档资料的测试单元测试:单元测试针对每个程序的模块,主要测试5个方面的问题:——模块接口、局部数据结构、边界条件、独立的路径和错误处理集成测试:也叫组装测试、联合测试、子系统测试或部件测试。
软件测试各种类型的比较

回归测试
就是漏洞修复完成后再对软件进行测试,以确保软件 没有产生“回归”或因修复而变得更糟,这种测试一 般要重新运行最初发现问题的原始测试程序
冒烟测试
对软件的版本进行测试,测试的时间较短
随机测试
主要是根据测试者的经验对软件惊醒功能抽查,随机 测试是根据测试说明书执行样例测试的重要补充手 段,是保证测试覆盖完整性的有效方式和过程
易用性测试
界面整体测试是指对界面的规范性、一致性、合理性 用户界面测试 等进行测试和评估,界面元素主要包括:窗口、菜单 、图标、文字、鼠标等 辅助系统测试 为了帮助和引导用户使用软件而存在于软件内的辅助 性系统(帮助测试、向导测试、信息提示)
பைடு நூலகம்
在一定的约束条件下测试系统所能承受的并发用户量 负载压力测试 、运行时间、数据量,以确定系统所能承受的最大负 载压力
类型
定义
安装测试
按照软件产品安装手册或相应的文档,在一个用户使 用该产品完全一样的环境中或相当于用户使用环境 中,进行一步一步的安装操作性的测试
卸载测试
对软件的全部、部分或升级卸载处理过程的测试
功能测试
又称正确性测试,检查软件的功能是否符合规格说明 指软件产品被理解、学习、使用和吸引用户的能力 -易理解性、易学习性、美观性、一致性 -最终用户是否感到软件容易使用,直接决定了一个 软件能否取得市场的成功
是软件可靠性保证过程中非常关键的一步。经过软 件可靠性测试的软件 并不能保证该软件中残存的错误数最小,但可以保证 该软件的可靠性达到较高的要求
1.识别出软件中被修改的部分 2. 从原基线测试用例库中排除所有不再适用的测试 用例,确定那些对新的软件版本依然有效的测试用 例 3. 如果必要,生成新的测试用例集,用于测试原来 不仅需要按照原来缺陷出现的步骤重现测试, 测试用例集无法充分测试的部分 还要测试有可能受影响的所有功能 4. 依据一定的策略选择测试用例测试被修改的软件 。 5.进行测试,并记录测试结果到测试报告 6. 分析测试报告 7. 修正和测试工作 8. 完成测试产品提交配置 版本完成后,测试人员测试Bug由程序员改正,确保 需要重点验证上一个版本的改动涉及到的功能 改后的代码不会出现一系列的连锁反应 主要是对被测试软件的一些重要功能进行复测,也 包括测试那些当前的测试样例没有覆盖到的部分。 另外,对软件更新和新增的功能要重点测试。重点 对一些特殊点情况点,特殊的使用环境,并发性, 进行检查。
浅谈软件测试的几种类型

黑盒测试顾名思义就是 将被测 系统看成一个仅有 输入和输 出 的黑盒 , 从外 界输入数 据 , 然后 将结果输 出到外 界。 整个测 试基 于需 求文档 , 看是否能满 足需求 文档中的所有要 求。黑盒测试要求测试 者在测试 时不能使用 与被测 系统 内部结 构相 关的知识或经验 , 它适 用 于对 系统 的功 能进 行 测 试 。
兼容性 。 9 安 装 测 试 安装测试有两个 目的。 一是确保软件在正常情况 和异常情况的 不 同条件下都能正常安装。异常情 况包括磁盘空间不 足、 缺少 目录 创建权限等 ; 二是核实软件在安装后可立 即正 常运行 。安装测试包 括测试安装代码以及安装手册。安装手册提供 如何进行安装 , 安装 代码提供安装一些程序能够运行 的基础数据 。
系统级别 的安全性还 可确保只有具 备系统访问权 限的用户才 能访问应用程序 , 而且只能通过相应 的网关来访 问。 7 故 障 转 移 和 恢 复 测 试 故障转移和恢复测试 是指当主机软 、 件发生灾难时 , 硬 备份机 器是否能够正常启动 , 系统能够正常运 行, 使 这对 于电信 、 银行等需 要持续运行系统的领 域是十分重要 的。 障转移 和恢复测试可 以确 故 保测试 对象成功 完成故 障转移 , 能恢复数据 。 并 故障转移测 试还 可以确 保系统发生故障时 , 备用系统将不失时 机地 “ 替” 顶 发生故 障的系统 , 以免丢失数据 。 恢复测试是一种对抗 性 的测试 过程 。在这种测试 中, 将把应用程序或 系统置于极端的条
里, 软件测试 就是一个 “ 挑错 ”的角色 , 是软件 开发过程 的重要组成 部分。软件测试的 目的 , 一是 确认 软件的质 量; 第 第二是提供信息 , 为风险评估准备信息 ; 三 , 第 软件测试不仅 是在测试软件 产品的本 身, 而且还包括软件 开发 的过程 。在实 际工作 中, 软件测试 的方法 、 类型是非 常多 的, 以根据软件及用户 的需求进行多种测试类型的 可 集合 。以下是在软件测试技术 中常用 的几种类型 。 1数据和数据库完整性测试 数据 与数 据库完整测性试 是指测试关 系型数据库完 整性原则
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详细分析:软件测试的14种类型文章来源:中国IT实验室收集整理文章作者:佚名发布时间:2007-09-03 字体: [大中小]软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。
本文主要描述软件测试的类型。
1. 数据和数据库完整性测试数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
数据库完整性原即:主码完整性:主码不能为空;外码完整性:外码必须等于对应的主码或者为空。
数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。
在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。
对于数据库管理系统(DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
比如,有两张表:部门和员工。
部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。
如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。
如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
员工类型如下定义:0:职工,1:职员,2:实习生。
但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。
2. 白盒测试白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
白盒测试分为动态白盒测试和静态白盒测试2.1 静态白盒测试利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。
比如,代码规范中规定,函数必须为动宾结构。
而黑盒测试发现一个函数定义如下:Function NameGet(){….}这是属于不符合开发规范的错误。
有这样一段代码:if (i<0) & (i>="0)…这段代码交集为整个数轴,IF语句没有必要I="0;while(I>100){J="J+100;}在循环体内没有I的增加,bug产生。
2.2 动态白盒测试利用开发工具中的调式工具进行测试。
比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
看一段代码if(I<0){P1}else{P2}在调试中输入I="-1,P1程序段通过,P2程序段未通过,属于动态黑盒测试的缺陷3. 功能测试功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。
这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。
此类测试基于黑盒技术,该技术通过图形用户界面(GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。
功能测试的主要参考为类似于功能说明书之类的文档。
比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。
4. UI测试UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等。
用户界面(UI) 测试用于核实用户与软件之间的交互。
UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。
另外,UI 测试还可确保UI 中的对象按照预期的方式运行,并符合公司或行业的标准。
包括用户友好性,人性化,易操作性测试。
UI测试比较主观,与测试人员的喜好有关。
比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。
5. 性能测试性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试。
5.1负载测试负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。
此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?5.2 强度测试水平要求。
实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。
如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。
而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。
强度测试还可用于确定测试对象能够处理的最大工作量。
比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。
5.3 数据库容量测试数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。
容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。
例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。
做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
5.4 基准测试基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
5.5 竞争测试软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。
比如:一台机器上即安装您的财6. 安全性和访问控制测试安全性和访问控制测试侧重于安全性的两个关键方面:1) 应用程序级别的安全性,包括对数据或业务功能的访问。
2) 系统级别的安全性,包括对系统的登录或远程访问。
6.1 应用程序级别的安全性可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。
例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。
如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?6.2 系统级别的安全性可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?7. 故障转移和恢复测试故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
恢复测试是一种对抗性的测试过程。
在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出(I/O) 故障或无效的数据库指针和关健字)。
然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。
一定要注意定时备份,比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话?8. 配置测试又叫兼容性测试。
配置测试核实测试对象在不同的软件和硬件配置中的运行情况。
在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。
客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。
(如浏览器版本,操作系统版本等)下面列出主要配置测试8.1 浏览器兼容性1) 测试软件在不同产商的浏览器下是否能够正确显示与运行;2) 比如测试IE,Natscape浏览器下是否可以运行这套软件?8.2 操作系统兼容性1) 测试软件在不同操作系统下是否能够正确显示与运行;2) 比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?8.3 硬件兼容性1) 测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用。
2) 比如在INTER,舒龙CPU芯片下系统是否能够正常运行?3) 这样的测试必须建立测试实验室,在各种环境下进行测试。
9. 安装测试安装测试有两个目的。
第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。
异常情况包括磁盘空间不足、缺少目录创建权限等。
第二个目的是核实软件在安装后可立即正常运行。
这通常是指运行大量为功能测试制定的测试。
安装测试包括测试安装代码以及安装手册。
安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。
10. 多语种测试又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。