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 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
参考资料:百度百科-软件测试
软件测试方案怎么写
测试目标,测试范围,测试内容,测试使用的方法(黑盒,白盒,自动化等等),时间人员进度安排。
软件测试分为几个阶段分别是什么?几种测试方法分别是什么?
软件测试生命周期包括6个阶段(大体上):1)计划 2)分析,3)设计,4)构建,5)测试周期,6)最后测试和实施,和7)实施后。
1. 计划(产品定义阶段)
高层次的测试计划(包含多重测试周期)
质量保证计划(质量目标,测试标准等 )
确定计划评审的时间
报告问题过程
确定问题的分类
确定验收标准-给质量保证员和用户。
建立应用程序测试数据库
确定衡量标准,例如缺陷数量/严重程度和缺陷起源(仅举几个例子) 。
确定项目质量度量
开始制定项目整体测试时间表(时间,资源等)
必需阶段:评审产品定义文档
文档中加入质量保证标准,作为工程改善进程的一部分
根据该产品的特点帮助确定问题的范围
大约每月要花5 -1 0小时在这一方面
计划在数据库管理所有测试用例,包括手工方面或者自动化方面。
2. 分析(外部文档阶段)
根据业务需求开发功能验证矩阵。
制定测试用例格式-估计时间和分配优先级。
制定测试周期矩阵与时间线
根据功能验证矩阵开始编写测试用例
根据业务需求计划测试用例基准数据
确定用于自动化测试的测试用例。
自动化团队开始在测试工具中创建变量文件和高层次的测试脚本。
为自动化系统中的跟踪组件设置路径和自动化引导。
界定压力和性能测试的范畴。
按照每个测试用例的数据要求开始建立基准数据库。
定义维护基准数据库的过程,即备份,恢复,验证。
开始规划项目所需的测试周期数,和回归测试次数。
开始文档复查,如:功能设计文档,业务需求文档,产品规格说明书,产品外部文档等。
审查测试环境和实验室,前端与后端系统都要。
准备使用McCabe工具,以支持白盒测试中代码的研发和复杂性分析
建立反馈机制并开始录入文档。
必需阶段:审查外部文件
?? 文档中加入质量保证标准,作为工程改善进程的一部分。
?? 根据群体执行反馈编写测试用例
?? 开始研制测试用例估计数目,每个用例的执行时间,和用例是否自动化这些方面的度量
?? 为每个测试用例确定基准数据,
?? 大约每月要花25小时在这一方面
3. 设计(文档架构阶段)
根据变更修改测试计划
修改测试周期矩阵和时间线
核实测试计划和用例用到的数据都输入到数据库,或是否必需的。
修改功能验证矩阵
继续编写测试用例,根据变化添加新的用例
制定风险评估标准
规范自动化测试和多用户测试的细节。
挑选出一套用于自动化测试的测试用例,并且把这些用例脚本化
规范压力测试和性能测试的细节。
最终确定的测试周期。 (根据用例的估计时间和优先权确定每个周期所用的测试用例数)
最终确定的测试计划
估计单元测试所需资源
必需阶段:审查架构文件
?? 文档中加入质量保证标准,作为工程改善进程的一部分。
?? 确定要进行编码的的实际组件或模块
?? 在这定义单元测试标准,通过/失败准则等。
?? 单元测试报告,报告进行单元测试后的模块质量如何,白盒测试和黑盒测试都要包括输入/输出数据和所有决定点。
?? 列出所有要进行单元测试的模块
4. 构建(单元测试阶段)
完成所有计划
完成测试周期矩阵和时间线
完成所有测试用例。 (手动)
完成第一套自动化测试用例的测试脚本。
完成压力和性能测试的计划
开始压力和性能测试
McCabe工具支持-提供度量
测试自动化测试系统,并修复错误。
发展单元测试
运行质量保证验收测试套件,以确保软件已经可以交给QA测试。
5. 测试周期/ 错误修正( 重复/系统测试阶段)
测试周期1,执行第一套的测试用例(前端和后端)
报告错误
错误审核-不断开展的活动。
根据需求修改测试用例
根据需求增加测试用例
测试周期二
测试周期三
6. 最后的测试和实施(代码冻结阶段)
执行所有前端测试用例-人工和自动化。
执行所有后端测试案例-人工和自动化。
执行所有压力和性能测试。
提供对正在进行的缺陷跟踪度量。
提供对正在进行的复杂性和设计的度量。
更新测试用例和测试计划的估计时间。
文件测试周期,回归测试,并更新相应文档。
7. 实施后
开展实施后评估会议以回顾整项工程。 (经验所得)
准备最终的缺陷报告和相关度量。
制定战略以防止类似的问题在今后的项目中重复出现。
创建如何改进流程的计划目标和里程碑,
McCabe工具-制作最后的报道和分析。
自动化测试组-1 )审查测试用例以评估其他可用于自动化回归测试的用例2 )清理自动化测试用例和变量,和3 )审查自动化测试和手工测试结果的整合过程
测试实验室和测试环境-清理测试环境,标记和存档用过测试用例和数据,恢复测试仪器到原始状态等。
软件测试方案设计
OA办公系统自动化测试方案
办公自动化系统擅长处理类似公告、公文等流转类型的行政办公类应用需求、设计及相对独立的个人相关资料、通讯录、记事本等个人事务类的需求、设计。另外办公自动化系统软件的权限管理是其不同于其他应用软件的另外一个特点。系统需要为使用人员提供设置不同的权限和访问许可的功能,管理员可以通过调整各功能模块的访问权限,设置一般用户某些功能可以用,某些功能不允许用;并为员工创建、注销帐号及访问权限。提高了企业系统的资料的安全度,阻止非授权人的非法进入系统。针对这些特点我们在测试时主要着重于对流转型的行政办公需求、设计和对独立型的个人事务需求和设计来组织测试工作。
一、测试方法:
从整体来OA办公自动化系统一般包括公文管理、网上审批、个人信息管理、以及公共信息管理四个大的模块,在对每个模块的测试过程中我们将针对对每个模块的需求、特点分别采用不同的方法,具体在以后的测试过程中我们将采用以下方法:
1、公文管理、网上审批:
公文管理和网上审批都是以流转型业务为主,在此对于此类功能点我们将以收文管理为例,简要说明我们测试过程所采用的方法方案。
例如oa公文管理主要对公文进行登记和处理。在登记收文过程中直接输入,并将登记后的收文送领导阅读或批示(批示的流程完全可以根据用户的需要自己定义,也可以使用系统管理员已经定义好的公文批示流程),处理结束后将文件进行归档。管理人员可以对收文处理全过程进行监督、催办、重定位,也可以随时进行文件流程跟踪及查看其所有领导的批示意见、批示时间。针对这些情况,在进行测试分析和设计时,我们首先按照上面提到的根据现成的公司体制进行分析和设计的测试数据,然后将各个领导是否兼职的情况区分开来。测试过程中我们准备了两套数据:
1) 领导不兼职
领导不兼职的情况, 相对较简单, 即每个领导只负责一个批示。
2) 领导兼职
领导兼职的情况,即每个领导可能负责不同过程中多个批示,这是流转型模块测试的一个难点,因此在测试过程中我们对此进行了重点测试。
2、个人事务
个人事务通常包括:待办工作、日程安排、个人资料、个人通讯录、个人记事本、外出声明等模块。例如批阅各部门上报的各种公文,评阅同事交流的各种文件内容,起草各类报告,查看个人的活动日程、外出等安排,同时系统能自动提醒待办事项。
以个人通讯录为例,用户可将朋友、同事名片登记并进行管理查询。每个人只能看到自己的通讯录,通过对所有个人通讯录的查询,自己可很快地找出所需要联系的人员信息,并方便地通知他们参加会议或发送邮件等等。在进行测试分析、设计和执行中我们将特别考虑以下几点:
1) 新建或修改通讯录时对于输入重复的信息系统是否给予提示警告;
2) 新建或修改信息时个人维护的私有名片是否能被其他人看到或修改;
3) 个人删除私有通讯录信息时是否影响到其他用户的通讯录信息;
4) 需要联系的通讯信息主人联系时,是否可以正确联系上,其联系内容是否显示正确;
3、公共信息管理
公共信息通常分两部分:一部分为一般用户的浏览操作,在此用户只能浏览、查阅。一部分为管理级别的用户,他们有权限添加、修改、编辑、删除相应的功能信息
在进行测试分析、设计和执行时要重点考虑:
1) 对规章制度的权限操作(管理员用户和一般用户)
2) 规章制度的套红头操作。
3) 规章制度浏览时的不可修改性。
4、系统基础信息
基础服务包括:人员注册、部门设置、组织结构调整、OA基础信息维护等模块。在此以基础数据维护为例:OA系统为系统的管理员提供了多项数据维护的服务。可以对一些常用的数据进行设置,包括用户登录名/用户密码组合方式、用户登录名/用户密码长度、主题词、常用意见、公文类型、文件套红模板、存储时间和公文格式等基础信息进行维护。
软件测试的流程
一般测试流程:
1.需求分析阶段:只要就是对业务的学习,分析需求点。
2.测试计划阶段:测试组长就要根据SOW开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
3.测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据《SRS》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。《测试方案》编写完成后也需要进行评审。
4.测试方案阶段:主要是对测试用例和规程的设计。测试用例是根据《测试方案》来编写的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要评审。
5.测试执行阶段:执行测试用例,及时提交有质量的Bug和测试日报,测试报告等相关文档。
软件测试方法有哪些
软件测试的方法根据软件工程的组织和实现方式,有很大差别,有些是比较技术化的方法,有些则是工程方法,主要分为:
黑盒测试方法群:等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等
白盒测试方法群:同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等。
当在单元层面黑盒而在集成层面白盒时,基本上两类方法就会有结合了,就会出现习惯上说的灰盒测试(说实话,不做到纯产品级开发,基本上都是用的灰盒测试)。
测试方案,大概包括哪些方面
软件测试计划是指导测试过程的纲领性文件,包含了产品概述,测试策略,测试方法,测试区域,测试配置,测试周期,测试资源,风险分析等内容;借助软件测试计划,参与测试的项目成员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试用例间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围,方法和资源配置;而测试用例是完成测试任务的具体战术。
测试计划中,最重要的是测试策略和测试方法。
测试计划工作的关键是
1. 明确测试的目标,增强测试计划的实用性---测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具具有较高的实用性,便于使用,生成的测试结果直观准确。
2. 坚持“5W”规则,明确内容与过程
“5W”规则指:what,why,when,where,how;用例5w规则创建软件测试计划,可帮助测试团队理解测试目的(why),明确测试范围和内容(what),确定测试开始和结束日期(when),指出测试的方法和工具(what),给出测试文档和软件存放位置(where)3. 采用评审和更新机制,保证测试计划满足实际需求
软件测试的测试简介
软件测试 是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。
Glenford J.Myers曾对软件测试的目的提出过以下观点:
(1)测试是为了发现程序中的错误而执行程序的过程。
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
(4)测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
(5)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。
(6)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
(7)另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。 一,测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。
二,程序员应该避免检查自己的程序,软件测试应该由第三方来负责。
三,设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,如网络异常中断、电源断电等。
四,应该充分注意测试中的群集现象。
五,对错误结果要进行一个确认过程。一般由A测试出来的错误,一定要由B来确认。严重的错误可以召开评审会议进行讨论和分析,对测试结果要进行严格地确认,是否真的存在这个问题以及严重程度等。
六,制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排尽量宽松,不要希望在极短的时间内完成一个高水平的测试。
七,妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。 1.发现一些可以通过测试避免的开发风险。
2.实施测试来降低所发现的风险。
3.确定测试何时可以结束。
4.在开发项目的过程中将测试看作是一个标准项目。 第一步:对要执行测试的产品/项目进行分析,确定测试策略,制定测试计划。该计划被审核批准后转向第二步。测试工作启动前一定要确定正确的测试策略和指导方针,这些是后期开展工作的基础。只有将本次的测试目标和要求分析清楚,才能决定测试资源的投入。
第二步:设计测试用例。设计测试用例要根据测试需求和测试策略来进行,进度压力不大时,应该设计的详细,如果进度、成本压力较大,则应该保证测试用例覆盖到关键性的测试需求。该用例被批准后转向第三步。
第三步:如果满足“启动准则”(EntryCriteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。
第四步:提交缺陷。这里要进行缺陷审核和验证等工作。
第五步:消除软件缺陷。通常情况下,开发经理需要审核缺陷,并进行缺陷分配。程序员修改自己负责的缺陷。在程序员修改完成后,进入到回归测试阶段。如果满足“完成准则”(ExitCriteria),那么正常结束测试。
第六步:撰写测试报告。对测试进行分析,总结本次的经验教训,在下一次的工作中改。
软件测试过程管理,主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理和测试风险分析以及测试成本的管理。 人类行为具有高度目标性,确立一个正确的目标有着重要的心理学影响。软件测试的心理学问题就是如何摆正测试的两个目标的关系,使得测试活动更加富有成效。
1.程序测试的过程具有破坏性
每当测试一个程序时,人们总希望为程序增加一些价值。利用测试来增加程序的价值,是指通过测试,找出并修改尽可能多的程序缺陷,从而提高程序的可靠性或质量。
因此,不要只是为了证明程序能够正确运行而去测试程序。相反,应该一开始就假设程序中隐藏着错误(这种假设几乎对所有的程序都成立),然后测试程序,发现尽可能多的错误。
事实上,如果把测试目标定位于要证明程序中没有缺陷,那么就会在潜意识中倾向于实现这个目标。也就是说,测试人员会倾向于挑选那些使程序失效的可能性较小的测试数据。另一方面,如果把测试目标定位于要证明程序中存在缺陷,那么就会选择一些容易发现程序缺陷的测试数据。而后一种态度会比前者给程序增加更多的价值。
事实上,如果在测试某个程序段时发现了可以纠正的缺陷,或者测试最终确定再没有其他缺陷,则应将这次合理设计并得到有效执行的测试称作是“成功的”。而所谓“不成功的”测试,仅指未能适当地对程序进行检查,未能找出程序中潜藏缺陷的测试。
“软件测试就是证明软件不存在错误的过程”。对几乎所有的程序而言,甚至是非常小的程序,这个目标实际上是无法达到的。因为即使程序完全实现预期要求,仍可能包含有缺陷。也就是说,如果程序不按要求工作,它显然有缺陷,但如果程序做了不要它做的事,它也有缺陷。
心理学研究告诉我们,当人们在干一件已经知道是不合适的或不可能做到的事时,往往他们的表现就相当糟糕。把程序测试定义为在程序中找出错误的过程,就使测试成了可以做到的任务,从而克服了心理上存在的问题。虽然这看起来像是个微妙的文字游戏,但对成功地进行软件测试有很大的影响。
总之,软件测试更适宜被视为试图发现程序中错误(假设其存在)的破坏性的过程。一个成功的测试,通过诱发程序发生错误,可以在这个方向上促进软件质量的改进。当然最终人们还是要通过软件测试来建立某种程度的信心:软件做了其应该做的,而没有做其不应该做的。
2.程序员应避免测试自己的程序
由开发人员来测试自己的代码是一件很不妥当的事情。开发和测试生来就是不同的活动。开发是创造或者建立某种事物的行为,如一个功能模块或整个系统。而测试的重要目的是证实一个模块或者一个系统工作不正常。这两个活动之间有着本质的矛盾。一个人不太可能把两个截然对立的角色都扮演地很好,因此应当限制开发人员在测试中的参与,给他们比较合适的任务是进行最底层的测试——单元测试。
当一个程序员完成了设计与编写程序的建设性工作后,要一夜之间突然改变他的观点,设法对程序形成一个完全否定的态度,那是非常困难的。所以,大部分程序员都由于不能使自己进入必要的精神状态(不是抱着要揭露出自己程序中错误的态度),就不能有效的测试自己的程序。除了这个心理学问题之外,还有一个重要的问题:程序中可能包含由于程序员对问题的叙述或说明的误解而产生了错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。
3.程序设计组织不应测试自己的程序
在宏观意义上,一个程序设计组织或一个工程项目是个有生命的有机体,它同样有心理学问题。在大多数情况下,人们都以“在给定日期内,以一定代价完成程序编制任务的能力”来衡量程序设计组织和项目管理人员的。这样做的理由是时间和成本指标便于衡量,而程序的质量很难度量。要程序设计组织在测试自己的程序时持客观态度是很困难的,因为如果用正确的定义看待测试,就不大可能按预定计划完成测试,也不大可能把耗费的代价限制在要求的范围以内。
软件生产的三个最重要的因素是:质量、进度和费用。由于费用和进度的限制,要开发一种高质量、快速交付和低成本的软件产品并不容易。也就是说要同时达到三个目标是困难的。因此在软件产品的开发中要权衡它们之间的关系,使软件的特性能满足用户的要求,这意味着软件产品的特性的度量和预计是必要的。
软件测试由独立测试机构承担有很多好处。独立测试是指软件测试工作由在经济上和管理上独立于开发机构的组织进行。独立测试可以避免软件开发者测试自己开发的软件,由于心理学上的问题,软件开发者难以客观、有效的测试自己的软件,要找出那些因为对问题的误解而产生的错误就更加困难。独立测试还可以避免软件开发机构测试自己的软件,软件产品的开发过程受到时间、成本和质量三者的制约,在软件开发的过程中,当时间、成本和质量三者发生矛盾时,质量最容易被忽视,如果测试组织与开发组织来自相同的机构,测试过程就会面临来自于开发组织同一来源的管理方面的压力,使测试过程受到干扰。
客观性——对软件测试和软件中的错误抱着客观的态度,这种客观的态度可以解决测试中的心理学问题,既能以揭露软件中错误的态度工作,也能不受发现的错误的影响。经济上的独立性使测试有更充分的条件按测试要求去完成。
专业性——独立测试作为一种专业工作,在长期的工作过程中势必能够积累大量实践经验,形成自己的专业知识。同时软件测试也是技术含量很高的工作,需要有专业队伍加以研究,并进行工程实践。专业化分工是提高测试水平、保证测试质量、充分发挥测试效应的必然途径。
权威性——由于专业优势,独立测试工作形成的测试结果更具信服力,而测试结果常常和对软件的质量评价联系在一起,专业化的独立测试机构的评价,更客观、公正和具有权威性。
资源有保证——独立测试机构的主要任务是进行独立测试工作,这使得测试工作在经费、人力和计划方面更有保证,不会因为开发的压力减少对测试的投入,降低测试的有效性可以避免开发单位侧重软件开发而对测试工作产生不利的影响。
转载请注明出处51数据库 » 软件测试测试方案 软件测试的方法一共有几种