minekirito的个人博客分享 http://blog.sciencenet.cn/u/minekirito

博文

软件质量与软件测试相关问题(2)

已有 2548 次阅读 2018-11-17 15:35 |个人分类:软件质量保障与测试课程|系统分类:教学心得| 软件质量, 软件测试

 以下为本人软件质量与软件测试课程的部分关键笔记,有需要的可以借鉴一下


1.    单元测试的原则

对于结构化编程语言,测试的单元一般是函数或子过程。对于面向对象的语言一般选择类作为测试单元。对于图形化软件,一般选择窗口菜单或控件作为一个测试单元

补充:尽量不要干涉原来的代码。其次代码要只是测试某个class里面的一个特定的function。这个function不能太简单,太简单就没有测试的意义;也不能太复杂,不应该牵涉太多其他的class。

2.    单元测试的过程

根据项目计划、详细设计文档编写单元测试计划文档

做单元测试准备

单元测试执行

编写单元测试报告文档

image.png

3.    单元测试的主要任务

测试模块的接口、局部数据结构、边界条件、执行路径、出错处理、非合理输入系统异常、调用函数和全局变量定义的一致性、数据定义、使用、循环边界输入边界、重要路径关键路径。

4.    单元测试的测试环境

被测模块、驱动模块和桩模块共同构成了单元测试的环境

image.png

5.    单元测试的相关文档

单元测试计划 单元测试用例 单元测试记录 单元测试缺陷跟踪报告 单元测试总结报告

6.    常用的单元测试工具

Junit 对应java

Cantata++ 对应C、C++

Testbed 对应 C、C++

Nunit 对应.Net

7.    集成测试的过程

根据项目计划、概要设计文档编写集成测试计划文档

做集成测试准备

集成测试执行

编写集成测试报告文档

8.    集成测试模式

分为非增量模式和增量式模式。

非增量是先分散测试,再集中测试。需要编写的程序多,工作量大。发现错误比较难定位。并行测试模块,充分利用人力,占用时间少。

增量式模式分为自顶向下、自底向上、混合模式。

自顶向下又分为深度优先集成和广度优先集成。

深度优先:优先集成主控路径下的所有模块。

广度优先:把每层从属于上一层的模块集成起来测试。

增量式利用已测过的模块作为部分测试程序,工作量小。发现错误可以及时定位。每次增加模块,会运行全部模块,占用时间长。

9.    系统测试的对象

系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。

根本任务是证明被测系统的功能和结构的稳定性,确保软件产品能够被用户或操作者接受。

10.    系统测试的过程

根据项目计划、需求规格说明书编写系统测试计划文档

做系统测试准备

系统测试执行

编写系统测试报告文档

11.    常见的系统测试类型 软件兼容性测试包括哪些内容 安装测试包括哪些内容

功能测试:起步容易。需要相关行业业务知识背景知识·

性能测试:主要测试多种正常、峰值以及异常负载条件下系统的响应时间(各项指标)主要使用负载压力测试。在真实环境下检测系统的并发承受力、预见系统负载压力承受力、分析系统瓶颈,优化系统。

接口测试:接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

GUI 测试:GUI 测试是对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。

可靠性测试:可靠性测试也称软件的可靠性评估,指根据软件系统可靠性结构(单元与系统间可靠性关系)、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估出系统的可靠性特征量。

恢复性测试:恢复性测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复性测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。

边界测试:就是用来探测和验证代码在处理极端的或偏门的情况时会发生什么边界测试并不仅仅指输入域/输出域的边界,还包括以下内容:

数据结构的边界;状态转换的边界;功能界限的边界或端点。

可安装性测试:可安装性测试是针对那些用于在目标环境安装软件的安装程序所进行的测试。它可以包括安装操作系统的软件或在客户个人电脑上安装软件产品的安装向导软件。典型的可安装性测试应完成下列目标:

● 使用安装向导或遵照安装手册的步骤(包括执行必需的安装脚本),验证是否可以成功地进行软件安装。其中包括选择相应的选项针对不同的软硬件配置进行安装,以及进行不同程度地安装(如完全安装或部分安装);

● 测试安装软件是否能够正确处理安装过程中所出现的失败(例如:无法安装某些DLL)现象,而不致于使系统处于某个不确定的状态(如软件只安装了一部分或造成错误的系统配置);

● 测试部分(不完全的)安装/卸载能否完成;

● 测试安装向导是否可以成功地识别无效的硬件平台或操作系统配置;

● 衡量是否能够在一定时间内或在一定步骤内完成整个安装过程;

● 验证是否可以成功地进行软件降级或卸载;

容量测试:容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。

敏感性测试:为了发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。

标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试

兼容性测试:兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试

中文本地化测试:本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。

验收测试:部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

安全性测试:安全性测试是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。此节包括一些重要的测试建议,用来验证已创建安全的应用程序。

12.    验收测试的步骤

指定测试计划,测试项,测试策略及验收通过准则,并邀请客户参与计划的评审。

建立测试环境,设计测试用例。

准备测试数据,执行测试用例,记录测试结果。

分析测试结果,根据验收通过准则分析测试结果,作出评价。

提交测试报告。

 image.png

13.    验收测试常用策略

· 正式验收:系统测试的延续

· 非正式验收或 Alpha 测试(用户再开发环境下进行的测试,由软件开发团队辅助测试)

· Beta 测试(用户独立测试,也就是公测)





https://blog.sciencenet.cn/blog-3401624-1146741.html

上一篇:如何理解Zero one infinity(ZOI)规则
下一篇:数据挖掘领域必须熟悉的十大经典算法其一——C 4.5算法
收藏 IP: 110.16.106.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 05:09

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部