实时警报通知:微信告警通知的重要性解析
740
2022-12-02
软件测试之软件系统测试
1. 系统测试的基础知识
一个网站、一个手机App、一个智能音箱都可以看成一个系统,针对它们的测试都属于系统测试。
2. 什么是系统测试
系统测试是指将已经集成的软件系统作为整个计算机系统的一个元素,与计算机硬件、外部设备、辅助软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。
系统测试的目的在于通过与系统的需求定义做比较,发现软件与系统定义不符合或与之矛盾的地方,以验证软件系统的功能和性能等满足其规约所指定的要求。系统测试的测试用例应根据需求分析说明书设计,并在实际使用环境下运行。
由于软件只是计算机系统中的一个组成部分,因此软件开发完成以后,最终还要与系统中其他部分配套运行。在投入运行以前,系统各部分要完成组装和确认测试,以保证各组成部分不但能单独地检验,而且在系统各部分协调工作的环境下能正常工作。这里所说的系统组成部分除软件外,还可能包括计算机硬件及其相关的外围设备,数据及其收集和传输机构,甚至还可能包括受计算机控制的执行机构。显然,系统的确认测试已经完全超出了软件工作的范围。然而,软件在系统中毕竟占有相当重要的位置,软件的质量好坏、软件的测试工作进行得是否扎实与能否顺利、成功地完成系统测试关系极大。另外,系统测试实际上是针对系统中各个组成部分进行的综合性检验。尽管每一个检验有着特定的目标,但是所有的检测工作都要验证系统中每个部分均已正确集成,并能完成指定的功能。
系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统的测试方法很多,主要有功能测试、性能测试等。后面章节将进行详细的描述。
3. 常见系统的分类
系统的划分有不同的方式。根据组成,系统可以分成以下3类。
纯软件:这种类型的软件直接在PC上运行,还可以进一步细分成单机软件(如Word)、客户端软件(如QQ)、服务器端软件(如淘宝网站),以及插件软件(不能独立运行,需要借助浏览器等软件才能运行,如Firefox浏览器插件)。
软件+硬件:随着技术的不断进步,越来越多需要靠硬件才能实现的特性现在能通过软件实现了,硬件和软件结合得越来越紧密。这种系统在日常生活中非常常见,如手机、空调、电梯等。
软件+硬件+维护人员:这种系统通常对应大型的系统,如电信公司或者移动公司所使用的系统。这种系统通常需要长时间运行,在运行过程中一旦出现故障,仅靠系统自身很难自动恢复,需要由维护人员来进行操作,帮助系统恢复。
无论是哪种类型的系统,都是系统测试的对象。
12.1.3 实际环境和开发环境
在系统测试中,除了针对不同类型的系统进行测试外,还需要尽可能在实际环境中进行测试。与实际环境相对应的是开发环境,这两个环境的区别如下。
被测系统所包含的代码不同:实际环境下,被测系统包含的代码比较干净;而开发环境下,被测系统包含大量测试用代码,没有这些测试用代码,无论是测试还是调试都会很不方便。当然,也不可能为这两个不同的环境分别开发代码。两个环境下的代码通过宏开关来进行控制,所有测试代码都包含在#ifdef debug…#endif中。只要对代码进行编译时没有包含debug的编译开关,所有测试代码都不会包含进去。
配置不同:实际环境下配置千差万别,有的用户的配置高,有的用户的配置低;有的用户的网络速度快,有的用户的网络速度慢。开发环境下配置一般比较单一,计算机通常统一配置,而且配置较高。
包含的DLL不同:实际环境下,包含的DLL较少;而开发环境下,由于安装了较多的开发工具和测试工具,因此DLL较丰富。于是,就可能出现在开发环境下运行正常的软件在实际环境下无法正常运行,这是需要在系统测试中考虑的。
为了能更好地理解实际环境与开发环境的不同,下面通过手机测试来具体说明。
(1)手机上的软件不可能直接在手机上开发,这样成本太高,因此手机上的软件先在PC上进行开发和测试,而且是在Windows操作系统上进行的,这对应的就是开发环境。
(2)一旦手机软件在安装了Windows系统的PC上测试通过,就需要将软件移植到Linux系统上,但仍然在PC上进行,这对应的仍然是开发环境。
(3)Linux系统上测试通过后,手机软件就该放到手机上来进行测试了,这时并没有真正的移动网络,所有网络设备需要通过测试仪器进行模拟,但对于手机测试而言已经接近用户的实际使用情况了,这时对应的是实际环境。
(4)以上测试通过后,在真正的外界环境下进行测试,这通常称为外场测试。所有测试都需要在实际的街道上进行,这对应的也是实际环境。
发表评论
暂时没有评论,来抢沙发吧~