《软件测试——原理、模型、验证与实践》[22M]百度网盘|亲测有效|pdf下载
软件测试——原理、模型、验证与实践
更新日期:2024-07-27 06:10:40
书店:清华大学出版社京东自营官方旗舰店
出版时间:2021-11
浏览量:103
价格:0.0¥

书籍下载
内容介绍

产品特色


内容简介

按证明论和证伪论两种哲学思想原理,把现今存在的软件测试工作进行了梳理,阐述了各种思想原理对软件测试技术的发展的贡献。还提出了一些技术模型和理论模型,用实例表明重视思想原理对于软件测试具体实践的重要性。对于计算机科学《软件测试》课程的学生、研究生和教师,这本书是一本较好参考读物。对于研究软件测试的专家和从事软件测试工作的技术人员,这本书也值得阅读。

作者简介

王蓁蓁 金陵科技学院软件工程学院副教授,江苏省软件测试工程实验室主任。于2009年毕业于东南大学计算机科学与工程学院,获工学博士学位,同年进入南京大学计算机科学与技术系博士后流动站。2012年起在金陵科技学院软件工程学院从事教学和科研工作。主要研究方向是软件测试、程序分析、人工智能、马尔可夫决策过程。已主持并参与多项校级、省级及国j级科研项目,参与完成国家自然科学基金重大研究计划1项。2014年9月至11月在澳大利亚昆士兰科技大学进行短期访问;2015年3月至2016年6月获得江苏省优秀中青年教师和校长境外研究资助,在美国科罗拉多大学波得尔分校计算机科学系进行访学研究。在国内外学术期刊和国际会议上发表论文40余篇。2017年出版专著《认知行为思维模型》。

目录

第1章绪论
1.1软件产品工程: 集成测试与开发
1.2软件测试遵循的思想原理
第1篇软件测试证明论思想原理
第2章软件开发过程中的验证活动
2.1需求分析概述
2.2需求验证概述
2.3系统设计概述
2.4设计验证概述
2.5模块编码概述
2.6单元测试概述
第3章原型和图形
3.1原型
3.1.1概述
3.1.2示例
3.2图形
3.2.1图形在需求分析中的作用
3.2.2图形在形式表示中的应用
3.2.3图形在形式证明中的应用
第4章模型检验简介
4.1标准方法
4.1.1基本概念
4.1.2标准模型检验步骤
4.1.3示例: LTL模型检验基于Büchi自动机的算法
4.1.4符号模型检验
4.1.5CTL符号模型检验
4.1.6其他降低问题复杂性的方法
4.1.7其他标准方法
4.2抽象解释
4.2.1根据存在(或经验)的抽象
4.2.2抽象解释理论框架
4.2.3基本抽象解释理论的模型检验
4.2.4运用抽象解释理论对(抽象模型)标准方法的改良
4.2.5抽象模型检验总结
4.3综合方法
4.3.1谓词抽象
4.3.2模型检验和定理证明
4.3.3其他方面的努力
4.4应用和其他重要方法概览
4.4.1模型检验理论在程序分析中的应用简介
4.4.2其他重要方法
4.5小结
第5章抽象解释的两个理论模型
5.1抽象解释全总域模型
5.1.1构造全总域模型
5.1.2理论性问题
5.2抽象解释部分等价逻辑关系模型
5.2.1具体语义域和语义函数
5.2.2抽象解释
5.2.3理论问题
第6章程序正确性形式演绎证明
6.1公理化
6.1.1霍尔逻辑及其证明规则
6.1.2霍尔逻辑系统的可靠性和完备性
6.2不变式
6.2.1程序流程图
6.2.2不变式概念
6.2.3不变式之间的一致性
6.2.4一个更强的属性
6.2.5流程图程序验证实例
6.2.6不变式方法评论
6.3最弱前置条件
6.3.1最弱前置条件的概念
6.3.2谓词转换函数WP性质
6.3.3程序设计语言控制成分的语义
6.3.4程序正确性证明方法
第7章程序正确性概率演绎证明
7.1概率论数学基础知识
7.1.1概率空间
7.1.2随机变量理论知识
7.1.3马尔可夫过程
7.2概率模型
7.2.1离散时间马尔可夫链
7.2.2连续时间马尔可夫链
7.3概率模型验证
7.3.1系统DTMC模型的检测
7.3.2系统CTML模型的检测
7.4操作概要
7.4.1操作的概念
7.4.2操作概要表示
7.4.3操作概要的用途
第8章集成测试中的验证活动
8.1组合测试引言
8.2关于正交表的基础知识
8.2.1正交表的一般定义
8.2.2二水平正交表
8.2.3正交拉丁方
8.2.4Ltu(tm)型正交表
8.2.5一般正交表Ln(t1×t2×…×tm)
8.3正交试验组合测试方法
8.4其他组合测试方法概览
8.4.1基于覆盖组合的“类型”设计测试用例集
8.4.2可变强度和具有约束的组合测试
8.5组合测试模式分析模型及其理论
8.5.1Walsh函数基础知识
8.5.2Walsh函数模式分析模型及其基础理论
8.5.3模型在组合测试中的应用
第2篇软件测试中的证伪论思想原理
第9章软件开发过程中的“证伪”活动
9.1软件开发过程中的“证伪”活动概述
9.2集成测试
9.2.1概述
9.2.2负面测试
9.2.3遗传算法
9.3系统测试
9.3.1概述
9.3.2系统测试对计算机科学发展的作用
9.3.3系统测试对度量科学的贡献
9.3.4系统测试提供的新测试方法和技术
9.4验收测试
第10章软件测试理论
10.1程序测试经典理论
10.1.1Goodenough和Gerhart理论
10.1.2Weyuker和Ostrand理论
10.1.3Gourlay理论
10.2软件测试理论分析
10.2.1软件存在缺陷的两个理论根源
10.2.2软件测试方法理论分类
10.3类随机测试方法示例
10.3.1随机TBFL算法模型
10.3.2实例分析
10.3.3算法功效进一步说明和小型实验
10.3.4类随机测试方法总结
第11章随机TBFL算法讨论
11.1软件缺陷存在原因再分析
11.2随机模糊综合TBFL
11.2.1算法概述
11.2.2算法框架及其原理分析
11.2.3实例分析
第12章众包软件测试技术
12.1众包技术
12.2众包软件测试技术
12.2.1概述
12.2.2利用历史资料调试程序的众包技术示例
12.2.3利用实时信息调试程序的众包技术示例
12.3软件拓扑空间与测试原理
12.3.1预备知识
12.3.2程序拓扑空间表示及其非标准分析
12.3.3在软件测试领域中的应用
12.3.4总结
参考文献
后记

前言/序言

前言

一位学者曾经明确提出,计算已经变成如此广泛的概念,它泛指一切可按程序或按逻辑运行的活动和行为,以致计算机的概念也得到更加广泛的推广,它泛指一切可由内部软件驱动的设备。在这个意义上,时至今日,我们在人类社会中各个领域再也找不到一个角落,在那里人们根本不需要使用任何由软件驱动的计算机设备。毫不夸张地说,我们的生活和工作已经由计算机支配,或者说由其内部运行的软件支配,至少受到它们的重大影响。

由于软件是非物质存在的,它看不见、摸不着,它的运行并不严格遵循“物理定律”。随着社会的发展和计算机的广泛应用,软件越来越复杂,导致软件本身原本存在的不可避免的“缺陷”越来越难以被觉察。有缺陷的软件在运行时带有不确定性,会随机地产生出乎人们意料的结果,而其结果往往带来巨大伤害。注意到软件缺陷在人类社会中的潜在危险,软件测试成为人们关注的技术和研究课题。自计算机问世以来,无论从技术方面还是理论方面,软件测试都得到迅猛发展。

目前,国内外都出版了大量高质量的有关软件测试的专著。这些专著大都侧重具体技术层面,软件测试的思想原理并未受到专著作者的重视。鉴于此,我想从思想原理方面对软件测试的理论和实践做一些工作。J.Myers认为: “人们对软件测试的看法决定了其对软件测试的方式,例如可以影响到测试用例的选取工作。”大体上说,对于软件测试,基本上可以分为两种“态度”,一种是竭力证明开发的软件的正确性; 另一种是不相信软件是正确的,并想方设法找出它的毛病。在哲学上,前一种态度称为证明论,后一种态度称为证伪论。实际上,不仅在软件测试领域,在人类所有科学领域,对于研究的课题都是根据证明论和证伪论两种观念发展的。一般来说,在很长的历史阶段,证明论一直是主导观念。反映在计算机科学发展早期,许多大师都在软件正确性证明方向做过努力。完全证明软件的正确性(如果说它不是不可能的话),在技术上是非常困难的,这是因为它通常要求艰深的数学工具。所以,后来软件界放弃了(或者说不再偏重)软件正确性的演绎证明,而是把精力放在现在我们所熟知的软件测试技术上。不过,在软件测试技术的选取和发展上,人们仍然持有不同的观念。我们认为,无论基于什么样观念发展软件测试理论,都会丰富软件测试工作,且对软件测试技术的发展会有极大帮助。因此,本书主要从软件测试思想原理方面着手,即基于证明论和证伪论两种理论取向,对现有的软件测试工作进行梳理。虽然我们试图尽可能清晰地介绍一些软件测试的工作,但重点并不完全是讨论软件测试的技术细节,只关注怎样把软件测试的实践和它所依据的原理统一在一个完整的框架下进行研究,对于此项工作,还从模型和验证两种角度进行了阐述。特别地,在各种理论取向下,提出了一些有代表性的技术模型和理论模型,如使用Walsh函数模型的检验技术、随机模糊软件缺陷定位技术、软件拓扑空间和测试原理之间的关系模型等,借以表示思想原理对于软件测试的研究是有指导意义的。“思想上的突破往往是决定一切的”,现在已经成为人们的共识。如果本书能引起人们对软件测试思想原理的重视,那么我的目的就算达到了。

本书的出版要感谢国家自然科学基金项目(No.617720214)的大力支持和资助。感谢江苏省软件测试工程实验室项目的大力支持和帮助。感谢所有一直关心和帮助我的恩师、学者和同事。感谢清华大学出版社的大力支持和帮助。

王蓁蓁2021年9月于金陵科技学院