软件设计师考试 | 第五章 软件工程基础知识 | 系统测试

(一)系统测试与调试

1.系统测试的意义、目的及原则

意义: 为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。

目的: 希望能以最少的人力和时间发现潜在的各种错误和缺陷。

原则:

  • 应尽早并不断地进行测试
  • 测试工作应该避免由原开发软件的人或小组承担
  • 在设计测试方案时,不仅要确定输入数据,而且要根据系统功能确定预期输出结果
  • 在设计测试用例时,不仅要设计有效、合理的输入条件,也要包含不合理、失效的输入条件
  • 在测试程序时,不仅要检验程序是否做了该做的事,还要检验程序是否做了不该做的事
  • 严格按照测试计划来进行,避免测试的随意性
  • 妥善保存测试计划、测试用例,作为软件文档的组成部分,为维护提供方便
  • 测试例子都是精心设计出来的,可以为重新测试或追加测试提供方便

2.测试过程

过程:

  • 制定测试计划(充分考虑整个项目的开发时间和开发进度及一些人为因素和客观条件)
  • 编制测试大纲(规定了系统每项功能或特性所必须完成的基本测试项目和测试完成的标准)
  • 根据测试大纲设计和生成测试用例,产生测试设计说明文档(主要包括被测项目、输入数据、测试过程、预期输出结果等)
  • 实施测试(按照测试大纲和测试用例进行测试)
  • 生成测试报告(对测试进行概要说明、列出测试的结论、指出缺陷和错误、给出整改建议)

(二)传统软件的测试策略

1.单元测试

也叫模块测试,在模块编写完成且无编译错误后就可以进行。
单元测试侧重于模块中的内部处理逻辑和数据结构。
测试内容:

  • 模块接口
    • 测试模块的输入参数和形式参数在个数、属性、单位上是否一致
    • 调用其他模块时,所给出的实际参数和被调用模块的形式参数在个数、属性、单位上是否一致
    • 调用标准函数时,所用的参数在属性、数目和顺序上是否正确
    • 全局变量在各模块中的定义和用法是否一致
    • 输入是否仅改变了形式参数
    • 开/关的语句是否正确
    • 规定的I/O格式是否与输入/输出语句一致
    • 在使用文件之前是否已经打开文件或使用文件之后是否已经关闭文件
  • 局部数据结构
    • 变量的说明是否合适
    • 是否使用了尚未赋值或尚未初始化的变量
    • 变量的初始值或默认值是否正确
    • 变量名是否有错
  • 重要的执行路径
    • 计算方面的错误,算术运算的优先次序不正确或理解错误、精度不够、算法错误等
    • 比较和控制流的错误,精度不相等、不同类型间进行比较、逻辑运算符错误等
  • 出错处理
  • 边界条件

单元测试过程:

  • 驱动模块
  • 桩模块(存根模块)
单元测试环境

2.集成测试

集成测试就是把模块按系统设计说明书的要求组合起来进行测试。

集成测试的两种方法:

  • 非增量集成(分别测试各个模块,再把这些模块组合起来进行整体测试)
  • 增量集成(以小增量的方式逐步进行构造和测试)

增量集成策略:

  • 自顶向下集成测试
    从主控模块(主程序)开始,沿着控制层逐步向下,以深度优先或广度优先的方式将从属于主控模块的模块集成到结构中。
  • 自底向上集成测试
    从原子模块(程序机构的最底层构件)开始进行构造和测试。
  • 回归测试
    重新执行已经测试过的某些子集,以确保变更没有传播不期望的副作用。
  • 冒烟测试
    将已经转换为代码的软件构件集成到构建中,设计一系列测试以暴露影响构建正确的完成其功能的错误,每天将该构建与其他构建及整个软件产品集成起来进行冒烟测试。

3.确认测试

确认测试始于集成测试的结束,那时已测试完单个构件,软件已组装成完整的软件包,且接口错误已被发现和改正。

  • 确认测试准则
  • 配置评审
  • α测试与β测试

4.系统测试

系统测试是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种集成测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。

  • 恢复测试
  • 安全性测试
  • 压力测试
  • 性能测试
  • 部署测试

(三)测试面向对象软件

1.单元测试

面向对象软件中的单元的概念发生了变化,封装导出了类的定义。
每个类和类的实例(对象)有属性(数据)和处理这些数据的操作(函数或方法)。
封装的类常是单元测试的重点,然而,类中包含的操作是最小的可测试单元。
面向对象软件的类测试是由封装在该类中的操作和类的状态行为驱动的。

2.集成测试

面向对象环境中的集成测试有两种策略:

  • 基于线程的测试,对响应系统的一个输入或事件所需的一组类进行集成,每个线程单独地集成和测试,并应用回归测试以确保没有产生副作用
  • 基于使用的测试,通过测试很少使用服务类的那些类开始系统测试的构建

(四)测试Web应用

1.质量维度

需要检查的项目:

  • 内容
  • 功能
  • 结构
  • 可用性
  • 导航性
  • 性能
  • 兼容性
  • 安全性

2.WebApp测试策略

  • WebApp的内容模型进行评审,已发现错误
  • 对接口模型进行评审,保证适合所有的用例
  • 评审WebApp的设计模型,发现导航错误
  • 测试用户界面,发现表现机制和导航机制中的错误
  • 对功能构件进行单元测试
  • 对贯穿体系结构的导航进行测试
  • 在各种不同的环境配置下实现WebApp,并测试WebApp对于每一种配置的兼容性
  • 进行安全性测试,试图攻击WebApp或其所处环境的弱点
  • 进行性能ces- 通过可控制的最终用户群对WebApp进行测试,对他们与系统的交互结果进行以下方面的评估,包括内容和导航错误、可用性、兼容性及WebApp的安全性、可靠性及性能等方面的评估

(五)测试方法

软件测试方法分为:

  • 静态测试
    • 人工检测
    • 计算机辅助静态分析
  • 动态测试
    • 黑盒测试(功能测试),在不考虑软件内部结构和特性的情况下,测试软件的外部特性。
      • 等价类划分
      • 边界值分析
      • 错误推测
      • 因果图
    • 白盒测试(结构测试),根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检测是否满足设计的需要。
      • 逻辑覆盖
      • 循环覆盖
      • 基本路径测试

(六)调试

调试发生在测试之后,其任务是根据测试时所发现的错误找出原因和具体的位置,进行改正。
主要由程序开发人员进行,谁开发谁调试。

1.调试过程

调试过程通常得到以下两种结果:

  • 发现问题的原因并将其改正
  • 未能找到原因,调试人员可以假设一个原因,设计一个或多个测试用例来帮助验证这个假设,重复此过程直到改正错误。

2.调试方法

  • 试探法
  • 回溯法
  • 对分查找法
  • 归纳法
  • 演绎法

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容