您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页软件测试设计技术

软件测试设计技术

来源:爱够旅游网
本栏目责任编辑:谢媛媛

开发研究与设计技术

软件测试设计技术

郭群

(辽宁对外经贸学院信息技术系,辽宁大连116052)

摘要:软件测试是提高软件产品质量的必要条件,是提高软件产品质量最直接、最快捷的手段。本文介绍了软件测试的一般概念、方法和步骤。给出了软件测试的策略。

关键词:软件;测试;设计;技术中图分类号:TP311.52文献标识码A文章编号:1009-3044(2007)17-31323-02

TechniqueofSoftwareTestandDesign

GUOQun

(LiaoningUniversityofIntemationalBusinessandEconomics,Dalian116024,China)

Abstract:Softwaretest,thestraightforwardandrapidwaytoimprovethequalityofsoftware,isthenecessaryconditionfortheimprovementofthesoftwarequality.Thispaper,introducingthecommonconcept,methodandstepofthesoftwaretest,givesthesolutiontothesoftwaretest.

Keywords:software;test;design;technique

1引言

在大型软件开发过程中,人们使用了许多保证软件质量的方法分析、设计和实现软件。但由干问题的复杂性,人们对客观事物认识的局限性及软件开发人员配合不协调等因素,因而在软件开发过程中难免有各种各样的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分错误,则这些错误迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果。因此,一定要高度重视软件测试工作。软件测试是为了发现故障而执行程序的过程。其目的是以尽可能少的时间和人力发现并改正软件中潜在的各种故障及缺陷。所以,在软件投入运行之前必须进行软件测试,以尽可能多地发现软件中的故障,提高软件可靠性。

2软件测试定义

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。正确认识软件测试的定义是十分重要的,它决定了测试方案的设计。软件测试只能查找程序中的错误;不能证明程序中没有错误。

各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行的进行单元测试。

(2)组装测试:又称集成测试,通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:在把各个模块连接起来时,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。

(3)确认测试:又称有效性测试。它的任务是验证软件的功能和性能及其他特性是否与用户的要求一致。首先要进行有效性测试以及软件配置复审,然后进行验收测试和安装测试,在通过了专家鉴定之后,才能成为可交付的软件。

(4)系统测试:是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。

5软件测试的策略

测试过程按4个步骤进行,即单元测试、组装(集成)测试、确认测试和系统测试。如图1所示。

3软件测试方法

怎样对软件进行测试呢?有两种方法。一种称为黑盒测试:如果知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正确使用,也叫功能测试;它是在程序的接口进行的,把软件看成是一个黑盒,测试时仅仅关心如何寻找出使程序不按要求运行的情况,是最基本的测试法。另一种称为白盒测试:如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行,也叫结构测试。它是把软件看成装在一个透明的白盒子里,就是完全了解程序的结构和处理过程,按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按规定要求正确工作。

图1软件测试的过程

4软件测试步骤

一个大型软件系统通常由若干个子系统构成,每个子系统又由若干个模块构成。软件测试分以下几个步骤:

(1)单元测试:又称模块测试,是针对软件设计的最小单位———程序模块,进行正确性检验的测试工作。其目的在于发现

开始是单元测试,集中对用原代码实现的每一个程序单元进

行测试,检查各个程序模块是否正确地实现了规定的功能。然后,把已测试过的模块组装起来,进行组装测试,主要对与设计相关的软件体系结构的构造进行测试。为此。在将一个一个实施了单元测试并确保无误的程序模块组装成软件系统的过程中,对正确性和程序结构等方面进行检查。确认测试则是要检查已实现的软

收稿日期:2007-08-03

作者简介:郭群(1964-),女辽宁本溪人,副教授,主要研究方向:计算机软件。

1323

开发研究与设计技术

件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。

本栏目责任编辑:谢媛媛

的成本,提高软件测试效率。开发出用户满意的高质量的软件。

参考文献:

[1]张海藩.软件工程导轮[M].北京:清华大学出版社,1992.6.[2]郑人杰,等.实用软件工程[M].北京:清华大学出版社,1997.4.

[3]古乐,史九林,等.软件测试案例与实践教程[M].北京:清华大学出版社,2007.2.

6结束语

软件测试是保证软件可靠性的主要手段,是软件开发过程中最艰巨、最繁重的任务。软件开发人员要明确软件测试的目标,掌握软件测试的方法、策略,选用最少量的高效测试数据,做到尽可

降低软件测试能完善的测试,从而尽可能多地发现软件中的问题。

(上接第1320页)

FAT1和FAT2,以改善其安全性。在文件系统的操作中,程序对FAT表结构的两个备份进行顺次修改,以此确保Flash存储器上总是存有一整套完好的文件分配表。系统对FAT表的访问原理如

下:访问文件时先从要目录中找到该文件的目录项,从中读出首簇号。然后在FAT中找到从该首簇号开始的簇链,簇链上的簇号即为文件依次存放的位置,这样便可以进行数据读写了。

2.2.3FAT的根目录区

FAT的根目录区是固定大小的紧跟在FAT表后的区域。FAT16中将从FAT区之后紧跟的32个扇区作为根目录区,可以保存512个目录项。每个目录项记录了该文件的文件名、文件属性、文件大小、文件创建的日期和时间以及文件在数据区中所占的首簇号,即该文件在FAT表中的入口等数据。

2.2.4FAT的数据区

数据区存在文件的数据内容。文件系统对数据区的存储空间是按簇进行划分和管理的。

3NANDFlash可靠性设计

由于工艺和使用环境的问题,NANDFlash存储器中不可避免的会出现坏块,这一弱点长期影响存储的可靠性,带来不可预测的后果,因此如果能解决坏块问题,将大大提升NANDFlash的可靠性。本文提出一种在文件系统底层解决坏块问题的方法,即利用Flash存储器上未使用的空间来代替坏块,同时在FAT表中标记出损坏的坏块信息,避免以后对坏块进行读写。具体方案如下。

3.1坏块发现

NANDFlash对存储器的写入采用先擦后写的流程,擦除的最小单位为1个block,写入的最小单位为一个page。在写入数据时,先在内存中申请1个block大小的缓冲区,然后在存储空间找到要写入数据的page所在的block,将该block全部读入缓冲区,在缓冲区中将数据写入相应的page,写完后,将该block写入Flash,若在写入Flash时多次报错则判定该block为坏块

3.2坏块处理

3.2.1在内存里建立文件系统的反向簇链,方便进行坏块的替换。

3.2.2备份坏块对应簇的FAT表项,在FAT表中标记出该坏块的信息。

3.2.3寻找替换空间

以1个block包含32个page,1个簇包含16个page,即1个block包含2个簇为例进行说明,坏块N包含x,x+1簇,首先从Flash的末尾处开始寻找空闲块,找到即进行整块的替换,见图1。

簇,以簇为单位进行替换,如图2,假设Y,Z分别为X,X+1的替换簇,由于簇在物理空间上并不一定连续,因此在进行簇的替换时可能会出现3种情况:

情况1:替换簇不在坏块中,即Y,Z不在坏块N中

处理方法:直接进行簇的替换,将备份的索引号,直接赋值给替换簇的FAT表项,同时更新反向簇链。

情况2:替换簇在坏块中,即Y或者Z也在坏块N中,这时要再分两种情况

情况2.1替换簇在被替换簇之前

处理方法:因为替换簇自己在之前已经被替换,所以要备份之前更新FAT表时替换的新簇簇号,根据两坏簇间距离,到替换簇号备份中查找其应对应的簇号,来更新当前簇的链接,同时更新反向FAT表。

情况2.2替换簇在被替换簇之后

处理方法:因为替换簇是坏簇,其替换的位置未知,所以只更新反向FAT表,其本身的FAT表项到更新替换簇的前续节点时再做更新。最后查询反向FAT表,将替换的各个新簇接回其前续节点。

图2替代簇

如果FAT表中已经没有空闲簇则报错,该方案完成。

使用一块32M的NANDFlash,将测试代码先写入一块数据,然后读出数据进行校验的方法对上述方案进行论证,通过两个星期反复的读写,结论为:在没有采用坏块处理程序之前,由于坏块的存在,导致写入的数据在大约12M之后全部丢失,采用坏块处理程序之后,运行的两周内没有任何校验错误。由此可见其可靠性得到很大提升。

4结语

通过上述对NANDFlash文件系统的设计,使得NANDFlash的性能大大优化,能够满足各个领域对嵌入式存储器越来越高的要求,同时在面对NANDFlash所固有的坏块问题上,通过上述坏块处理的算法,很好的解决了在NANDFlash存储介质上运用FAT文件系统的坏块问题,增加了整个嵌入式系统的存储可靠性。

参考文献:

[1]陈育智.嵌入式系统中的Flash文件系统[J].单片机与嵌入式系统应用,2002(2):5-8.

[2]MikeFicco.如何在嵌入式电子设备中建立多媒体文件系统[J].电子工程专辑,2004(2):20-22.

[3]陈代军.解析FAT文件系统对长文件名的支持[J].成都信息工程学院学报,2004,(18):380-385.

图1替代块

若一直寻找到数据区的开头都没有空闲块,则重新寻找空闲

1324

电脑知识与技术

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务