软件测试基本方法之集成测试和系统测试

Posted 松勤软件学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试基本方法之集成测试和系统测试相关的知识,希望对你有一定的参考价值。



在软件开发中,经常会遇到这样的情况,单元测试时确认每个模块都能单独工作,但这些模块集成在一起之后会出现有些模块不能正常工作。例如,在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,进行检测,下面给出综合结果:


软件测试基本方法之集成测试和系统测试





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



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


软件测试免费视频观看链接:https://ke.qq.com/course/159919#tuin=ba4122 

松勤网:www.songqinnet.com


打开微信扫一扫  关注松勤软件学院


以上是关于软件测试基本方法之集成测试和系统测试的主要内容,如果未能解决你的问题,请参考以下文章

集成测试之自顶向下自底向上三明治集成

软件测试相关术语概念

大型分布式系统集成测试实践和探索之测试痛点

软件测试基本方法_之验收测试

对“房屋租赁系统”进行集成测试和系统测试day1

单元测试/集成测试/系统测试的区别