编写好一个程序后怎样测试谢谢

编写好一个程序后怎样测试谢谢,第1张

为了使计算机程序得以运行,计算机需要加载代码,同时也要加载数据,然后由处理器执行指令。整个过程可以总结为编译、链接、装载、执行。

1、编译

编译过程又可以被分为两个阶段:编译、汇编。

编译是指编译器读取字符流的源程序,对其进行词法与语法的分析,将高级语言指令转换为功能等效的汇编代码。

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可。

2、链接

链接的主要内容是将各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接。链接又分为静态链接和动态链接:

静态链接是指在编译阶段直接把静态库加入到可执行文件中去,这样可执行文件会比较大;

动态链接则是指链接阶段仅仅只加入一些描述信息,而程序执行时再从系统中把相应动态库加载到内存中去。

3、装载

程序在经过链接后,得到了可执行文件,下一步就需要将可执行程序加载到内存中。

由于现代 *** 作系统均采用分页的方式来管理内存,所以 *** 作系统只需要读取可执行文件的文件头,之后建立起可执行文件到虚拟内存的映射关系,而不需要真正的将程序载入内存。

4、运行

加载器将可执行目标文件中的代码和数据从磁盘复制到内存中,然后通过跳转到程序的第一条指令或入口点来运行程序。

在程序的运行过程中,CPU发现有些内存页在物理内存中并不存在并因此触发缺页异常,此时CPU将控制权限转交给 *** 作系统的异常处理函数, *** 作系统负责将此内存页的数据从磁盘上读取到物理内存中。

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在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具

参考资料:

百度百科-软件测试

软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试。

软件测试是贯穿整个软件生命周期的,软件测试的对象包括软件需求、概要设计、详细设计、软件运行环境、可运行程序和软件源代码等。

软件测试包括质量、人员、资源、技术和流程五大要素,以及测试覆盖率和测试效率两个目标。

单元测试:单元测试是针对软件设计的最小单位--程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。

软件测试的基本流程(重点)。

1、测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。

2、测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。风险评估与规避措施有一个制定。

3、测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。

4、测试执行阶段:搭建环境,执行冒烟测试(预测试)然后进入正式测试,bug管理直到测试结束。

5、测试评估阶段:出测试报告,确认是否可以上线。

1、按是否查看程序内部结构分为:

(1)黑盒测试(black-box

testing):只关心输入和输出的结果

(2)白盒测试(white-box

testing):去研究里面的源代码和程序结构

2、按是否运行程序分为:

(1)静态测试(static

testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。

静态测试包括:

对于代码测试,主要是测试代码是否符合相应的标准和规范。

对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。

对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。

(5)动态测试(dynamic

testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程

3、按阶段划分:

(1)单元测试(unit

testing),是指对软件中的最小可测试单元进行检查和验证。

桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。

(2)集成测试(integration

testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。

集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。

(3)系统测试(system

testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。

系统测试的主要依据是《系统需求规格说明书》文档。

(4)验收测试(acceptance

testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。

验收测试又分为a测试和beta测试,其中a测试指的是由用户、

测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。

4、黑盒测试分为功能测试和性能测试:

1)功能测试(function

testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。

包括逻辑功能测试(logic

function

testing)

界面测试(UI

testing)UI=User

Interface

易用性测试(usability

testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。

兼容性测试(compatibility

testing):包括硬件兼容性测试和软件兼容性测试

2)性能测试(performance

testing)

软件的性能主要有时间性能和空间性能两种

时间性能:主要指软件的一个具体事务的响应时间(respond

time)。

空间性能:主要指软件运行时所消耗的系统资源。

软件性能测试分为:

一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。

稳定性测试也叫可靠性测试(reliability

testing):是指连续运行被测系统检查系统运行时的稳定程度。

负载测试(load

testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。

压力测试(stress

testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate

the

system

or

software

can

allowed

the

biggest

stress)

5、其他测试类型:

回归测试(regression

testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When

a

new

build

or

release

is

deployed,

repeat

all

the

test

cases

which

has

executed

in

the

last

build

or

release)

冒烟测试(smoke

testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate

the

major

function

is

deployed

or

not

in

software

of

system

when

a

new

build

or

release

is

implement)

随机测试(random

testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实 *** 作,并发现一些边缘性的错误。(means

or

all

the

test

data

is

random,

to

validate

the

some

edge

bugs)

以上就是关于编写好一个程序后怎样测试谢谢全部的内容,包括:编写好一个程序后怎样测试谢谢、软件测试的方法一共有几种、软件测试流程有几个阶段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10172843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存