软件测试之软件系统测试
测试工程师主要参与的是系统测试(system testing)阶段,针对整个软件系统开展测试,需要考虑不同类型的测试,如功能测试、性能测试等。
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)以上测试通过后,在真正的外界环境下进行测试,这通常称为外场测试。所有测试都需要在实际的街道上进行,这对应的也是实际环境。
如需了解更多测试技术信息请关注:深圳多测师软件与技术服务有限公司
软件测试之软件系统测试相关推荐
- 软件测试之软件开发模型
一. 软件开发模型 1 为什么学习软件开发模型 了解开发能够更好的有针对性的做好测试. 2 什么是软件开发模型 软件开发生命周期模型是软件产品从最初构思到退役的过程. 3 常见的开发模型 大爆炸模 ...
- 软件测试之软件测试用例
一.概述 测试用例是一个文档,描述输入.操作步骤和一个期望的结果,其目的是验证应用程序的特性能正常工作 测试用例是测试人员编写的,给测试人员执行测试时参考使用. 二.测试用例的要素 1.标 ...
- 软件测试之【单元测试、系统测试、集成测试】
目录 一.单元测试的概念 二.单元测试的目的 三.单元的常见错误 四.如何进行单元测试 五.单元测试策略 六.系统测试的概念 七.系统测试的环境 八.系统测试的类型 九.系统测试的过程 十.集成测试概 ...
- 《Google软件测试之道》- Google软件测试介绍
<Google软件测试之道>- Google软件测试介绍 2015-05-21 目录 1 质量与测试 2 角色 3 组织结构 4 爬.走.跑 5 测试类型 相关链接 与 ...
- 《Google 软件测试之道》摘录
最近刚刚看完<Google 软件测试之道>,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer ...
- 《Google软件测试之道》读书笔记
Google软件测试之道 像google一样进行软件测试 软件测试介绍 少则清晰,测试人员的稀缺导致测试资源很昂贵.(不要招聘太多的测试人员) 质量不等于测试 开发对质量负责(预防行为,不是检测) 卫 ...
- 《Google软件测试之道》目录—导读
内容提要 Google软件测试之道 每天,Google都要测试和发布数百万个源文件.亿万行的代码.数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行.面对这些看似不可能完成的 ...
- 软件测试之魂:核心测试设计精解
软件测试之魂:核心测试设计精解(第2版)(掌握核心竞争力成为不可替代的测试精英) 肖利琼著 ISBN 978-7-121-19677-5 2013年5月出版 定价:59.00元 356页 16开 编辑 ...
- 全程软件测试之测试需求分析与计划
全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计 ...
最新文章
- media player怎么不能拖进度图mp4_榜样力量丨科研路上有难题,学长教你怎么解
- boost::yap::make_expression_function相关的测试程序
- MySQL通过source命令执行sql文件
- 如何在Java中对Collection对象进行排序?
- 创宇技能表_知道创宇研发技能表 一
- 蓝天采集器自动化采集发布
- 思维导图软件下载与安装 记录xmind安装过程
- 注册时,邮箱自动发送验证
- Linux下mySql的安装和使用
- Cisco路由器上传和下载IOS
- 商城小程序源码PHP开源版
- 让PPT设计更出彩的技巧都有哪些?
- vue项目中通过图片url下载图片
- 最小二乘法求线性回归方程
- cc2530单片机的内核是什么_ZigBee技术开发:CC2530单片机原理及应用简介,目录书摘...
- 有哪些曾惊艳到你了的古诗词?1024程序员读古诗词
- QT Libvlc视频画面上覆盖透明控件
- 服务器上传文件出现500错误,但是其他不涉及文件的接口均正常
- 第2阶段 第12讲 XMLHTTP协议
- 微信企业号用户验证php,企业号OAuth2.0验证企业用户接口