1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
扩展资料
软件测试的内容:
1 得到需求、功能设计、内部设计说书和其他必要的文档
2 得到预算和进度要求
3 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 ( 例如发行过程、变更过程、等等 )
4 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
5 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
6 确定对测试环境的要求 ( 硬件、软件、通信等 )
7 确定所需的测试用具 (testware) ,包括记录 / 回放工具、覆盖分析、测试跟踪、问题 / 错误跟踪、等等
8 确定对测试的输入数据的要求
9 分配任务和任务负责人,以及所需的劳动力
10 设立大致的时间表、期限、和里程碑
11 确定输入环境的类别、边界值分析、错误类别
12 准备测试计划文件和对计划进行必要的回顾
13 准备白盒测试案例
14 对测试案例进行必要的回顾 / 调查 / 计划
15 准备测试环境和测试用具,得到必需的用户手册 / 参考文件 / 结构指南 / 安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
16 得到并安装软件版本
17 进行测试
18 评估和报告结果
19 跟踪问题 / 错误,并解决它
20 如果有必要,重新进行测试
21 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
参考资料:百度百科-软件测试
软件测试方案怎么写
测试目标,测试范围,测试内容,测试使用的方法(黑盒,白盒,自动化等等),时间人员进度安排。
测试方案,大概包括哪些方面
软件测试计划是指导测试过程的纲领性文件,包含了产品概述,测试策略,测试方法,测试区域,测试配置,测试周期,测试资源,风险分析等内容;借助软件测试计划,参与测试的项目成员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试用例间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围,方法和资源配置;而测试用例是完成测试任务的具体战术。
测试计划中,最重要的是测试策略和测试方法。
测试计划工作的关键是
1. 明确测试的目标,增强测试计划的实用性---测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具具有较高的实用性,便于使用,生成的测试结果直观准确。
2. 坚持“5W”规则,明确内容与过程
“5W”规则指:what,why,when,where,how;用例5w规则创建软件测试计划,可帮助测试团队理解测试目的(why),明确测试范围和内容(what),确定测试开始和结束日期(when),指出测试的方法和工具(what),给出测试文档和软件存放位置(where)3. 采用评审和更新机制,保证测试计划满足实际需求
软件测试一般都用到哪些工具
测试工具分为很多种,主要如下:
测试管理工具:MQC,TestManager,QACenter,其中缺陷跟踪还可以使用:变更管理工具
功能测试自动化:QTP,RFP,QARun,Silk
性能测试工具:Loadrunner,Robot,QAload,WAS,Silk Performance
单元、白盒测试工具:Junit,Jmeter,devpartner,Jprobe,Purify Plus
安全测试: Appscan,Fortify
软件测试方案设计
OA办公系统自动化测试方案
办公自动化系统擅长处理类似公告、公文等流转类型的行政办公类应用需求、设计及相对独立的个人相关资料、通讯录、记事本等个人事务类的需求、设计。另外办公自动化系统软件的权限管理是其不同于其他应用软件的另外一个特点。系统需要为使用人员提供设置不同的权限和访问许可的功能,管理员可以通过调整各功能模块的访问权限,设置一般用户某些功能可以用,某些功能不允许用;并为员工创建、注销帐号及访问权限。提高了企业系统的资料的安全度,阻止非授权人的非法进入系统。针对这些特点我们在测试时主要着重于对流转型的行政办公需求、设计和对独立型的个人事务需求和设计来组织测试工作。
一、测试方法:
从整体来OA办公自动化系统一般包括公文管理、网上审批、个人信息管理、以及公共信息管理四个大的模块,在对每个模块的测试过程中我们将针对对每个模块的需求、特点分别采用不同的方法,具体在以后的测试过程中我们将采用以下方法:
1、公文管理、网上审批:
公文管理和网上审批都是以流转型业务为主,在此对于此类功能点我们将以收文管理为例,简要说明我们测试过程所采用的方法方案。
例如oa公文管理主要对公文进行登记和处理。在登记收文过程中直接输入,并将登记后的收文送领导阅读或批示(批示的流程完全可以根据用户的需要自己定义,也可以使用系统管理员已经定义好的公文批示流程),处理结束后将文件进行归档。管理人员可以对收文处理全过程进行监督、催办、重定位,也可以随时进行文件流程跟踪及查看其所有领导的批示意见、批示时间。针对这些情况,在进行测试分析和设计时,我们首先按照上面提到的根据现成的公司体制进行分析和设计的测试数据,然后将各个领导是否兼职的情况区分开来。测试过程中我们准备了两套数据:
1) 领导不兼职
领导不兼职的情况, 相对较简单, 即每个领导只负责一个批示。
2) 领导兼职
领导兼职的情况,即每个领导可能负责不同过程中多个批示,这是流转型模块测试的一个难点,因此在测试过程中我们对此进行了重点测试。
2、个人事务
个人事务通常包括:待办工作、日程安排、个人资料、个人通讯录、个人记事本、外出声明等模块。例如批阅各部门上报的各种公文,评阅同事交流的各种文件内容,起草各类报告,查看个人的活动日程、外出等安排,同时系统能自动提醒待办事项。
以个人通讯录为例,用户可将朋友、同事名片登记并进行管理查询。每个人只能看到自己的通讯录,通过对所有个人通讯录的查询,自己可很快地找出所需要联系的人员信息,并方便地通知他们参加会议或发送邮件等等。在进行测试分析、设计和执行中我们将特别考虑以下几点:
1) 新建或修改通讯录时对于输入重复的信息系统是否给予提示警告;
2) 新建或修改信息时个人维护的私有名片是否能被其他人看到或修改;
3) 个人删除私有通讯录信息时是否影响到其他用户的通讯录信息;
4) 需要联系的通讯信息主人联系时,是否可以正确联系上,其联系内容是否显示正确;
3、公共信息管理
公共信息通常分两部分:一部分为一般用户的浏览操作,在此用户只能浏览、查阅。一部分为管理级别的用户,他们有权限添加、修改、编辑、删除相应的功能信息
在进行测试分析、设计和执行时要重点考虑:
1) 对规章制度的权限操作(管理员用户和一般用户)
2) 规章制度的套红头操作。
3) 规章制度浏览时的不可修改性。
4、系统基础信息
基础服务包括:人员注册、部门设置、组织结构调整、OA基础信息维护等模块。在此以基础数据维护为例:OA系统为系统的管理员提供了多项数据维护的服务。可以对一些常用的数据进行设置,包括用户登录名/用户密码组合方式、用户登录名/用户密码长度、主题词、常用意见、公文类型、文件套红模板、存储时间和公文格式等基础信息进行维护。
手机软件测试方案有那些?
是不是所有优秀的开发人员都能够成为优秀的测试人员? 所有的人都知道应该如何进行测试,但是却未必知道要成为一名优秀的测试人员,真正需要哪些素质。 优秀的系统验证测试人员应该具备哪些素质? 在8 年多的软件开发工作中,我曾从事过各种项目的设计和开发,并且从初级开发人员成长为高级开发人员,最终成了一名软件架构师。在此期间,我意识到测试工作的重要性和挑战,甚至曾自愿地对自己设计的程序进行测试,这是出于“自己解决自己的问题”的考虑。大约在一年前,我成为了系统验证测试 (SVT) 组的负责人。我之所以想到要撰写这个专栏,是因为与所在部门的一名测试人员的闲聊,情况是这样的,该测试人员以前的一名同事申请了我部门中的测试职位。当我向这名测试人员询问有关申请者(当时他正从事开发工作)的情况时,她的回答是“对这个人我已经记不大清楚了,但他肯定是一名优秀的测试人员,因为他是一名开发人员”。 听到这样的评论我感到震惊,但是后来我发现,对于开发和测试团体来说,这是一个普遍存在的观点。的确存在许多优秀的开发人员和优秀的测试人员,但是在某个方面非常一流,并不一定就意味着在其他方面也同样优秀。所以作为一名测试管理人员,我需要说明成为一名优秀的 SVT 测试人员所面临的挑战和应该具备的独特品质,这不仅仅是要吸引高素质人才加入到这个行列,同时还可以分享这项工作给我们带来的自豪感,并且或许可以为测试工作赢得更多的尊重。 发现客户价值 按照规定,SVT 组负责进行系统级测试。什么是系统级测试呢?这是一个常见的问题。我的理解是,进行系统级测试的目的是为了确保通过产品所提供的功能,实现既定的客户价值。 那么,什么是“客户价值”呢?其答案正是为什么客户购买和使用某种产品的原因之一。例如,我使用 Microsoft?? Word 已有许多年了。回忆我个人使用该软件的经历,在早期的版本中,最苦恼的事情是它容易在编辑的过程中发生崩溃,这样就会丢失最近一次保存以来的所有工作。幸好,现在的版本不再出现这种情况了。甚至更加完善,它会定期地自动保存文档,这样一来,即使在退出的时候忘了保存文档,仍然可以恢复到最近一次自动保存的副本,对我来说这是个非常好的特性。这种作为客户的经历使我意识到,尽管该产品提供一般性的功能,但正是其独特的特性使得它能够从众多的竞争产品之中脱颖而出,并且正是这些提供价值的特性使得其客户钟情于该产品。因此,对于优秀的 SVT 测试人员来说,最重要的品质是能够清楚地了解每个特性的客户价值。 尽管可以很容易地从设计文档或用户手册的简介部分中找到每个特性所允诺的客户价值,但是要有效地将它们合并为测试设计方案的核心,并不是那么简单。要实现这一点,测试人员需要了解技术的采用周期,以及该技术当前位于其采用曲线中的什么位置。他还需要了解提供类似客户价值的竞争技术,以及有可能共同使用的协作性技术。 测试更广泛的场景 我观察到新的 SVT 测试人员常犯的一个错误是,他们总是从局部而非整体的角度来看待某种技术(或者产品特性)。结果,测试工作重点关注于产品与设计的符合性,而不是它所提供的真正价值。例如,当在 J2EE?? 技术中引入容器管理的持久性时,其目标是为数据库的访问提供一种更简单并且更具可移植性的编程模式,它的竞争技术是其他持久性技术,如 JDBC 和持久的数据对象。如果该技术或特性不易于使用,并且不能够伸缩或至少执行其竞争技术所能完成的任务,那么该特性就难以获得接受,即使客户购买了这个产品,他们也不会使用该特性。因此,SVT 测试人员的任务是发现问题的本质,并在产品发布之前进行报告。 是可以工作,还是工作得更好? 不久之前,一名测试人员向我解释她正在测试的新的安全会话特性,如何通过在每次调用中与信任服务器联系以便进行身份验证,从而使得 Web 服务能够更好并且更安全地执行。我很怀疑向信任服务器进行附加调用的时间是否短到足以避免抵销这个新特性所节省的时间,以及这个信任服务器是否向系统中引入了单点故障。 对于SVT 测试人员来说,对该特性及其相关特性的技术知识同样重要,并且仅仅有技术上的知识是不够的。使用客户价值作为特性测试的核心,还需要测试人员考虑更多的内容,在有些情况下,需要跨越组织的界限。当我提出关于信任服务器性能方面的担心时,该测试人员的回答是“我不负责测试性能,那是由性能团队负责的”。还有一次,有个客户向我询问关于产品如何在重负载下处理事务恢复的问题。执行这个测试场景的测试人员无法回答这个问题,因为她根本没有进行负载测试。 在一定程度上,这反映了组织中的定义受到很大的限制。当然,很少有能够很好地处理各种情况的组织结构。我认为,优秀的 SVT 测试人员不仅仅只是完成特性本身的测试工作,并且对任何可能妨碍该特性实现其允诺的客户价值的问题保持高度的警惕,无论是性能优于该特性的竞争技术、或未能很好集成的协作特性、或特性本身没有达到预期效果、或在系统中产生了附加的缺陷。 _|.黑禮服≒ 回答采纳率:23.1% 2008-09-19 01:56 检举
采纳哦
软件测试是做什么的?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
Grenford J.Myers曾对软件测试的目的提出过以下观点: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试。
然而,这种观点指出测试是以查找错误为中心,而不是为了演示软件的正确功能.但是只从字面意思理解,可能会产生误导,认为发现错误是软件测试的唯一目的,查找不出错误的测试就是没有价值的测试,实际上并非如此!
(1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者 发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性;
(3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法 软件测试完整分类,参见:软件测试的完整分类
以上的都是官话!其实说白了,软件测试就是在开发人员做出软件投放市场前,尽可能早的找出软件当中所存在的BUG!因为任何软件在理论上来说都是存在问题的,都不是完美的!尽早的找出漏洞,公司的损失也就越低!这也就是软件测试人员越来越受重视的原因!
其实软件测试是一种相当乏味枯燥的工作,一般面公司都比较偏向稍微内向的人,另外测试人员还要具备相当的口才,方便与开发人员还有客户交流!
为什么要进行软件测试?软件测试的目的是什么?
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事情(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此,软件测试的第三个目的是保证整个软件开发过程是高质量的。
转载请注明出处51数据库 » 软件产品测试方案 软件测试的方法一共有几种
好尴尬给哥哥
