软件測试基本方法(六)之集成測试和系统測试

在软件开发中。常常会遇到这种情况。单元測试时确认每一个模块都能单独工作,但这些模块集成在一起之后会出现有些模块不能正常工作。比如,在chrome环境下用js写了一个实时捕捉video中特定区域的模块,正常工作;利用worker线程进行webgl场景渲染,也正常。但是当两个运算合并时。出现一个模块不能正常执行,原因在于两个模块不适合在worker线程中结合。基于worker本身的局限性,仅仅能有一个模块正常工作。

所以,非常有必要进行集成測试。


(1)集成測试定义:

集成測试是将软件集成起来,对模块之间的接口进行測试。



(2)集成种类:

  • 模块内的集成,主要是測试模块内各个接口间的交互集成关系
  • 子系统内的集成。測试子系统内各个模块间的交互关系
  • 系统内的集成,測试系统内各个子系统和模块间的集成关系

(3)两种集成測试模式:

  • 非渐增式測试模式:先分别測试每一个模块,再把全部模块按设计要求放在一起结合成所要的程序。如大棒模式
  • 渐增式測试模式:把下一个要測试的模块同已经測试好的模块结合进来进行測试,測试完后再把下一个应该測试的模块结合起来測试。渐增式測试又能够依据每次加入模块的路线分为自顶向下測试自底向上測试混合測试等方式

优缺点:
  • 渐增式须要编写的软件较多,工作量较大,而非渐增式測试开销小
  • 渐增式測试模式发现模块间接口错误早。而非渐增式測试晚
  • 非渐增式測试模式发现错误。较难诊断,而使用渐增式測试模式。假设错误发生则往往和近期加进来的那个模块有关
  • 渐增式測试模式測试更彻底
  • 渐增式測试模式须要较多的机器时间
  • 使用非渐增式測试模式,能够并行測试

详细方法:
  • 自顶向下法:从主控模块開始,沿着软件的控制层次向下移动,从而逐渐把各个模块结合起来。

    (长处:不须要驱动程序。能在早期发现上层错误。缺点:须要桩,低层错误发现较晚。在早期不能展开人力)

  • 自底向上法:从原子模块開始集成以进行測试。
  • 混合策略:基本使用Top-down。但在早期使用Bottom-up。对中较上层,使用Top-down,中较下层,使用Bottom-up。
  • 大棒法:先是对每个子模块进行測试(单元測试),然后将所有模块一次性地所有集成起来进行測试。

  • 三明治法:自两头向中间集成。

(4)系统測试
  • 定义:检验系统全部元素之间协作是否合适。整个系统的性能和功能是否达到要求。其測试内容包含:功能測试非功能測试回归測试等。
  • 功能測试:主要是依据产品规格说明书。来检验被測试的系统是否满足各方面功能的使用要求。(黑盒測试也长被称为功能測试,尽管这不是一种准确的说法)
  • 回归測试:在程序有改动的情况下,保证原有功能正常的一种測试方法。
  • 非功能性測试(特征測试):性能測试、压力測试、容量測试、安全性測试、可靠性測试和容错性測试
  • 系统測试根据:需求说明书,概要设计说明书。具体设计说明书,最重要的是需求说明书。
  • 确认測试:确认測试又称有效性測试。有效性測试是在模拟的环境下,运用黑盒測试的方法。验证被測软件是否满足需求规格说明书列出的需求。

    任务是验证软件的功能和性能及其它特性是否与用户的要求一致。

    对软件的功能和性能要求在软件需求规格说明书中已经明白规定,它包括的信息就是软件确认測试的基础。


(5)非功能測试实战:


  • pagespeed.webkaka.com在线站点性能測试

 

选取站点首页和其它几个有代表性的页面进行測试。

http://www.sc.sdu.edu.cn/default.do

http://www.sc.sdu.edu.cn/getMoreNews.do?

newsType=84

http://www.sc.sdu.edu.cn/getNewsDetail.do?

newsId=7581


这里仅仅截取这三个界面的測试结果

软件測试基本方法(六)之集成測试和系统測试

软件測试基本方法(六)之集成測试和系统測试


 网页统计

软件測试基本方法(六)之集成測试和系统測试


结果分析

通过測试,我们发现站点首页的訪问速度比其它页面慢非常多。訪问时间大概在其它网页的4~6倍。

总体上。性能能够满足学院师生的訪问。

 

  • Google PageSpeedInsights在线測试工具

结果

软件測试基本方法(六)之集成測试和系统測试


问题及解决方式

1)在 HTTP 标头中为静态资源设置过期日期或最长存在时间。可指示浏览器从本地磁盘中载入曾经下载的资源。而不是通过网络载入。
利用浏览器缓存存储可缓存的资源。

2)清除首屏内容中阻止呈现的 JavaScript 和 CSS。

网页中有1个阻止呈现的脚本资源和2个阻止呈现的 CSS 资源。这会导致呈现网页的过程出现延迟。

3)启用压缩。

使用 gzip 或 deflate 压缩资源能够降低通过网络发送的字节数。

压缩 JavaScript 代码能够节省大量数据字节空间,并提高下载、解析和运行的速度。

适当地设置图片的格式并进行压缩能够节省大量的数据字节空间。
压缩 HTML 代码(包含当中所含的不论什么内嵌 JavaScript 和 CSS)能够节省大量数据字节空间。并提高下载和解析的速度。


压缩 CSS 代码能够节省大量数据字节空间。并提高下载和解析的速度。





  • apache ab工具



结果

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/

Server Software:

*****************

Server Hostname:

www.sc.sdu.edu.cn

Server Port:

80

Document Path:

/default.do

Document Length:

21541 bytes

Concurrency Level:

40

Time taken for tests:

0.273954 seconds

Complete requests:

1000

Failed requests:

0

Total transferred:

21757000 bytes

HTML transferred:

21541000 bytes

Requests per second:

3.65

Transfer rate:

79.42 kb/s received

Connnection Times (ms)

 

min

avg

max

Connect:

0

3

47

Processing:

4521

10830

16780

Total:

4521

10833

16827

 

This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/

Server Software:

*****************

Server Hostname:

www.sc.sdu.edu.cn

Server Port:

80

Document Path:

/getNewsDetail.do?newsId=7525

Document Length:

7134 bytes

Concurrency Level:

40

Time taken for tests:

0.5438 seconds

Complete requests:

1000

Failed requests:

0

Total transferred:

7372000 bytes

HTML transferred:

7134000 bytes

Requests per second:

183.89

Transfer rate:

1355.65 kb/s received

Connnection Times (ms)

 

min

avg

max

Connect:

1

1

23

Processing:

14

212

281

Total:

15

213

304

 

 

參数解释

Document Path             #測试的页面

Document Length          #页面大小

Concurrency Level        #測试的并发数

Time taken fortests              #整个測试持续的时间

Complete requests         #完毕的请求数量

Failed requests              #失败的请求数量

Write errors: 0

Total transferred            #整个过程中的网络传输量

HTML transferred          #整个过程中的HTML内容传输量

Requests persecond       #相当于LR中的每秒事务数。后面括号里的mean表示这是一个平均值

Time per request    #相当于LR中的平均事务响应时间,后面括号里的mean表示这是一个平均值

Time per request    #每一个连接请求实际执行时间的平均值

Transfer rate          #平均每秒网络上的流量,能够帮助排除是否存在网络流量过大导致响应时间延长的问题

 

測试结果

站点首页的訪问速度比其它页面慢非常多。

总体上,性能能够满足学院师生的訪问。

 


  • 站点安全性測试——360在线站点安全检測


输入网址www.sc.sdu.edu.cn。进行检測。以下给出综合结果:

软件測试基本方法(六)之集成測试和系统測试




看来站点在设计或制作时存在漏洞,进一步我们得到:

软件測试基本方法(六)之集成測试和系统測试

安全漏洞集中在“核心数据被非法更改”和“server配置信息泄露”上,应该是在设计数据库和网页时没有做好权限管理。