视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
系统测试在软件开发中的重要作用
2025-10-03 14:39:28 责编:小OO
文档
系统测试在软件开发中的重要作用

作者:王丽平

来源:《消费电子》2012年第19期

        摘要:本文重点介绍了系统测试在软件开发过程中的重要作用,列举了软件测试的基本原则和方法,并以自行开发的在线即时通信软件的部分模块进行各种功能测试和确认测试,其目的是通过与系统的需求相比较,尽可能多的发现软件开发过程中的错误,使系统的可靠性进一步提高。

        关键词:系统测试;软件开发;在线即时通信

        中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 18-0022-02

        为了开发的软件满足用户需求,软件设计开发人员运用了大量分析、设计和调试方法,在分析设计的每个部分结束前,对相应的分析设计结果进行严格的审查和评定。由于人为能力有一定的局限性,审查很难发现所有的错误和缺陷,而且在编码调试阶段会引出大量的错误,在所设计的软件投入运行之后,这些缺陷和错误最终会暴露出来。而这可以通过系统测试来解决,系统测试就是在软件投入运行之前,对软件的需求分析阶段、概要设计阶段、详细设计阶段和编码部分的最终审查,是保证软件质量的关键步骤[1]。

        一、系统测试的含义

        系统测试是指为了发现软件的错误而执行程序的过程。系统测试的最基本任务是尽可能多的、彻底的检查出程序运行中的错误,提高软件系统的可靠性,从而能检验出系统是否存在问题。在软件开发的整个过程中,通常使用大量保证软件质量的方法分析、设计和实现软件,但仍然难免会出现一定的错误,从而导致软件产品中隐藏一些错误和缺陷。尤其是对于规模较大、复杂性较高的软件更会如此。在这些错误和缺陷中,有些是致命的,如果不排除掉,就可能会导致重大损失。基于这种情况迫使设计者必须认真计划、彻底地进行系统测试[2]。

        二、系统测试的原则

        系统测试的原则是必须最大限度地模拟出被测试软件的实际运行环境,以保证测试的可靠性[3]。

        在进行有效无误的系统软件测试之前,系统测试工程师必须了解软件系统测试的基本原则:

        (1)查找错误的源泉。系统测试的最终目标在于查找软件错误,而最严重的错误(用户角度)就是完成的用户需求分析模型是错误的。

        (2)系统测试计划要在需求分析模型完成时形成,详细的系统测试过程要在软件的任意代码产生之前就进行计划和设计。

        (3)Pareto原则。Pareto原则意喻在系统测试中发现的错误有80%可能来源于程序模块中的20%。

        (4)系统测试应按照有“小规模”到“大规模”的方式进行。最初的测试要把焦点定位在单个程序模块上,然后在逐渐向集成的模块簇转变,最后在整个系统中寻找错误。

        (5)穷举测试是无法实现的。选择尽可能充分覆盖程序逻辑关系的数据。

        (6)系统测试的实现要由第三方来完成。创建系统的软件设计工程师不是构造软件测试的最佳人选。

        系统测试工作人员通常站在用户的角度(第三方)来把握系统,并且在软件开发的整个阶段中时刻与用户进行不间断的交流和沟通,理解系统业务需求、理顺业务关系,测试系统的可靠性、可用性、正确性、完整性和可维护性等。依据软件开发各阶段的规格说明和程序的内部结构认真设计各种测试用例,用这些精心设计的测试用例去执行程序进行系统测试,以发现程序的错误。软件测试所追求的是通过各种不同的系统测试方法,发现软件中错误,完善丰富的错误诊断信息,以便于改正错误,达到预错误的发生,减少软件相应开发费用的目标[1]。

        如果系统测试对软件的审查不够严格,引起了大量的错误,待到那时,不仅要付出很高的代价来改正这些错误,还会造成无法弥补的损失。系统测试在软件整个生命周期中主要经历两个阶段:通常在编写出每一个模块之后就对它做必要的测试,这称为单元测试。编码与单元测试属于软件开发生命周期中的同一阶段。在结束这个阶段之后,对整个软件系统还要进行各种不同的综合测试,这是软件生命周期的另一阶段,即测试阶段[2]。

        三、系统测试的方法

        黑盒测试和白盒测试是系统测试的基本方法。这两种方法主要是依靠一组精心挑选的测试用例为输入执行程序,对程序的行为进行逐个检验,确定其是否与软件预期的结果相符。因此,对系统进行实时性测试时,要借助相应的测试工具对应用程序的算法复杂度和操作系统的任务调度进行分析测试。从测试是否针对具体实现算法的角度和系统的内部结构来看,软件测试可以分成黑盒测试和白盒测试。

        (1)黑盒测试又称为功能测试,它是通过测试输入和输出来检测每个功能模块是否都能正常使用。在测试过程中,把每个功能模块程序看作是一个不能打开的黑盒子,在完全不考虑其程序内部结构和内部特性的情况下,在程序的输入和输出接口处进行测试,它仅仅检查程序的每个模块功能是否按照需求规格说明书的规定正常运行,以及程序是否能准确地接收输入数据而输出正确的结果信息。黑盒测试主要是从程序的外部结构出发,不考虑程序本身的内部逻辑结构,主要针对的是软件界面和软件基本功能进行测试。黑盒测试是站在用户的角度,从输入数据与输出数据的对应关系出发进行测试的。这种测试方法的缺点是如果程序外部特性本身有问题或规格说明的规定有误,用墨盒测试方法是检测不出来的。

        (2)白盒测试又称为逻辑驱动测试或结构测试,它主要按照程序内部的结构来进行测试的,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都是按照预定要求进行正确工作的。这种方法是把被测试对象看作一个打开的盒子,测试工程师依据程序内部的逻辑相关信息,设计或选择对应测试用例,对程序所有可能的逻辑路径进行测试,通过在不同的测试点检查程序的状态,确定实际的状态是否与预期的状态一致[4]。

        四、系统测试举例

        这里以用户自行开发的一款在线即时通信系统为测试用例进行系统测试,本系统实现的通信功能极其复杂,运用多个线程进行前台和后台的消息发送和接收。使用ServerSocket创建要连接的端口,线程连接socket打通前后台的消息通道。在线即时通信系统登录界面如图1所示。

        根据这一逻辑,在线用户登陆成功后就将登陆ID保存在线程中,打开在线好友通信窗口时,也会将接收者的ID进行保存,这样就能正确保证消息的发送者和接收者。消息的传递会通过前台发送给连接后台的线程,经后台线程处理后,找到接收者,再将信息进行转发,这样就完成了好友间的在线即时通信。同时,在用户登录时,也会进行上线提示,将自己在线情况通知给所有在线用户,又将所有在线用户的状态进行显示。这样就能正确的显示在线用户列表,也能准确的实现在线用户间消息传递。

        在线即时通信模块功能测试过程和要求如下:

        1.登录模块

        (1)测试描述。用户需正确输入用户名和密码,才能正确登录并跳转到好友列表界面。系统默认用户名为1-50之内的任意数字,密码为123456。

        (2)测试步骤。首先打开在线即时通信登录界面,输入用户名和密码;然后点击登录按钮;最后确认是否能够正常登录。

        (3)合格标准。输入正确的用户名和密码后,能够成功登录,并跳转到我的好友列表;或者用户名和密码不正确时会弹出相应的错误提示。

        2.好友列表界面

        (1)测试描述。登录成功的用户在好友列表会以彩色头像显示,后登录的用户会通知所有在线用户更新好友列表。双击在线好友能正确打开通信对话框。

        (2)测试步骤。首先由登录用户跳转到好友列表,确认好友列表可以将自己的头像设置成彩色在线状态;然后再登录一个用户,确认能正确通知所有在线用户进行好友在线更新,鼠标滑过在线用户时,确认是否有不同颜色提示;最后双击在线好友头像,能实时打开通信对话框。

        (3)合格标准。登录成功在好友列表显示自己的头像为彩色在线状态,并获取所有在线好友;后登录的用户会通知所有在线用户更新自己的在线好友列表;鼠标滑到在线用户名上时,用户名由黑色变为红色;鼠标滑过时,又会从红色变为黑色;双击在线好友,能成功打开通信对话框,发送者和接收者均正确。

        3.通信界面

        (1)测试描述。在线好友间的消息能够准确发送和接收,并正确显示在通信界面上。

        (2)测试步骤。首先互相打开在线好友的通信界面;然后在文本框中输入通信内容,可以是任意字符,点击发送按钮;最后确认发送的消息是否能准确显示在接收者的通信界面上。

        (3)合格标准。输入任意通信内容,点击发送后,接收者的通信界面上即时显示好友发送的消息,同时好友也能接收返回的信息,并正确显示。

        五、总结

        将系统测试的基本方法用于软件开发过程中,可以增加软件的可靠性,使软件在投入运行之后基本不出错误,或者错误很少。对实际开发的软件系统按照测试步骤进行测试,满足测试通过原则的软件系统安装到用户现场能够顺利实施和运行,得到用户认可。

        参考文献:

        [1]马瑞芳,王会燃.计算机软件测试方法的研究[J].小型微型计算机系统,2009,12.

        [2]张新华,何永前.软件测试方法概述[J].科技视界,2012,2.

        [3]郭远东,黄荣瑛.基于模块化设计的嵌入式软件测试方法[J].单片机与嵌入式系统应用,2005,1.

        [4]冯博琴.软件开发技术[M].北京:高等教育出版社,1996.

        [作者简介]王丽平(1974-),女,汉族,吉林长春人,长春工程学院,讲师。下载本文

显示全文
专题