猜你喜欢
测试设计思想

测试设计思想

书籍作者:周海旭 ISBN:9787302638780
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9100
创建日期:2024-04-11 发布日期:2024-04-11
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

“测试设计思想”是本书的主题。针对测试的两个基本目的和五个基本问题,本书归

纳了八类测试设计思想,即系统的思想、枚举的思想、准则化的思想、多样化的思想、统计

的思想、冗余的思想、推理的思想、控制的思想。围绕每一类思想,本书深入讲解来自不同

领域的测试设计方法、实践及理念,借此剖析如何依据该思想缓解测试的基本问题。

“测试设计思想”来源于工程,又超越工程; 立足于具体领域,又跨越具体领域。了解

这些思想,有助于读者奠定扎实的测试理论基础,适应当代研发生产活动“多学科交叉、多

领域融合”的发展趋势。本书可供软件测试、硬件测试、产品质量检验相关从业者以及测

试相关学术领域研究人员参考,也适合作为理工类高等院校通识教育课程的教材或参

考书。


前言








前言

质量发展是兴国之道、强国之策。2023年2月,中共中央、国务院印发的《质量强国建设纲要》中明确指出,建设质量强国是推动高质量发展、促进我国经济由大向强转变的重要举措,是满足人民美好生活需要的重要途径。同时我们也看到,随着人类改造世界的能力日益增长,质量问题的潜在风险也日趋严重。产品缺陷导致的灾难时有发生,不仅给许多人造成了生命财产的损失,也给人类文明的生存发展蒙上了一层阴影。因此,无论是在国家层面,还是在人类社会层面,加强质量基础能力建设、提高产品质量控制水平,都具有非常重大的现实意义。


在产品研发生产过程中,测试是最重要的质量控制手段,而测试设计又是测试中最富创造性、挑战性的智慧活动。无数测试者于此呕心沥血,留下了大量卓越的研究和实践成果。长期以来,这些成果被视为计算机软件、集成电路、产品质量管理等各个专业领域理论技术体系的下属部分,形成了诸如“软件测试设计”“电路测试设计”“抽样检验设计”等子体系,各个子体系之间鲜见连接与融汇。而实际上,当我们思考测试设计的本质时,会发现不同专业领域的测试活动都有着类似的行为内涵,不同专业领域的测试者也面对着类似的矛盾和问题。为了缓解这些矛盾和问题,各种测试设计方法应运而生。这些方法的具体形式因领域不同而各具特色,但其背后却蕴涵了一些共通的测试设计思想。


多学科交叉、多领域融合已经成为了当代科学技术和工业生产的发展趋势。未来的测试者,势必要面对更加复杂、更加综合的被测对象,单靠某一个专业领域的测试知识,很可能无法较好地完成测试设计任务。


基于此,我们看到了这样一种可能性: 测试设计将成为一种跨领域的综合性工作,测试者将成为一种跨领域的通用型人才。进而,我们也看到了从形而上的角度对测试设计进行讲解的必要性。


这正是本书尝试做的事情。“测试设计思想”是本书的主题。这些思想来源于工程,又超越工程; 立足于具体领域,又跨越具体领域; 依托于方法论,又接近认识论。第1章主要明确“测试”的语义设定,并归纳测试的两个基本目的和五个基本问题; 第2~9章逐一讲解八类测试设计思想,即系统的思想、枚举的思想、准则化的思想、多样化的思想、统计的思想、冗余的思想、推理的思想、控制的思想。围绕每一类思想,会深入讲解来自不同领域的测试设计实践和理念,借此剖析如何依据该思想缓解测试的基本问题。


所有测试设计思想的诞生,都来源于测试者对质量孜孜不倦的追求,对学问精益求精的打磨。更重要的,是守护世界的雄心壮志。借此机会,向那些守护世界的测试者们致敬: Elaine J.Weyuker、Tsong Yueh Chen、Hong Zhu、Phyllis G.Frankl、William E.Howden、Dick Hamlet、Ali Mili、Fairouz Tchier、Ammann Paul、Jeff Offutt、David R.MacIver,以及各章参考文献中提及的所有学者和工程师。向所有奋战在各领域测试一线,奋战在理想与现实之间的测试者们致敬。


本书能够最终得以完成,与作者父母、爱人、孩子的支持密不可分,在此向他们致以深深的谢意。


本书适合作为理工类高等院校通识教育课程、测试专业课程的教材或参考书,也可供各领域测试从业者、研究者参考。


由于作者自身能力的限制,书中内容难免出现错误,由衷期待各位读者的批评指正。




周海旭2023年6月于北京

















目录




目录





第1章基本概念


1.1测试的语义设定


1.2被测对象的质量与缺陷


1.3测试的两个基本目的


1.4测试的五个基本问题


1.4.1正确性判定问题


1.4.2测试完整性问题


1.4.3测试选择问题


1.4.4测试可信性问题


1.4.5测试准绳问题


1.5测试设计思想


1.6本章小结


本章参考文献


第2章系统


2.1被测对象的系统性


2.1.1被测对象与环境的普遍相关性


2.1.2被测对象的边界


2.1.3被测对象的整体涌现性


2.2分层测试


2.2.1硬件分层测试


2.2.2软件分层测试


2.3被测对象期望


2.3.1被测对象期望的相关概念


2.3.2被测对象期望的影响因素


2.3.3被测对象期望的具象化分解


2.3.4被测对象期望树


2.4故障树分析


2.4.1故障树的表示方法


2.4.2故障树的构建过程


2.4.3故障树的割集


2.5本章小结


本章参考文献


第3章枚举


3.1组合测试


3.1.1组合测试的概念


3.1.2组合测试的枚举本质


3.1.3贪心法


3.1.4排除法


3.2分割测试


3.2.1测试输入空间的分割


3.2.2基于缺陷的分割测试


3.2.3等比例采样策略


3.3模型检验


3.3.1形式化模型


3.3.2形式化规约


3.3.3标记算法


3.4本章小结


本章参考文献


第4章准则化


4.1基于结构覆盖的充分准则


4.1.1控制流覆盖准则


4.1.2数据流覆盖准则


4.1.3修改的条件/决策覆盖准则


4.2基于缺陷的充分准则


4.2.1边界缺陷检出准则


4.2.2布尔逻辑缺陷检出准则


4.2.3电路单固定缺陷检出准则


4.2.4变异充分准则


4.3回归测试充分准则


4.3.1基于变更的回归测试充分准则


4.3.2基于优先级排序的回归测试充分准则


4.4准则的选用与定制


4.4.1目标与成本的考量


4.4.2准则之间的包含关系


4.4.3充分准则基本性质


4.4.4绝对充分度


4.5本章小结


本章参考文献


第5章多样化


5.1随机测试


5.1.1基于伪随机数发生器的随机测试


5.1.2随机选取用例的其他方法


5.1.3模糊测试


5.2反随机测试


5.2.1测试输入点之间的距离


5.2.2反随机测试的过程


5.3自适应随机测试


5.3.1自适应随机测试的过程


5.3.2对缺陷检出效率的改善


5.4基于执行档案的测试


5.5基于模型的测试


5.6正交设计


5.6.1试验设计的基本概念


5.6.2正交表


5.6.3在测试中应用正交设计的过程


5.7均匀设计


5.7.1均匀性


5.7.2均匀设计表及均匀设计过程


5.8本章小结


本章参考文献


第6章统计


6.1统计抽样测试


6.1.1数理统计基础


6.1.2统计抽样原理


6.1.3操作特性曲线


6.2假设检验


6.2.1抽样分布


6.2.2假设检验原理


6.2.3批不合格品率的假设检验


6.2.4软件功能测试中的假设检验


6.3事件分布列


6.3.1事件分布列的建立过程


6.3.2基于事件分布列的随机测试


6.4基于统计模型的测试


6.4.1马尔可夫链


6.4.2基于马尔可夫链的测试设计


6.5软件随机性失效


6.5.1随机性失效的常见诱因


6.5.2面向随机性失效的测试


6.6统计结构测试


6.7本章小结


本章参考文献


第7章冗余


7.1差错控制编码


7.1.1基本原理


7.1.2分组码


7.1.3卷积码


7.2被测对象期望的冗余分解


7.2.1用关系来描述期望


7.2.2冗余分解


7.2.3钝化


7.3基于属性的测试


7.4蜕变测试


7.4.1蜕变关系


7.4.2测试集的测试准绳


7.4.3在线蜕变测试


7.4.4缺陷检出能力


7.5差分测试


7.5.1冗余实现


7.5.2产品演化过程中的差分测试


7.6测试准绳的一般性讨论


7.6.1测试准绳的有效性和完整性


7.6.2测试准绳的相对强度


7.6.3测试准绳与测试充分准则


7.6.4互相制约的关系


7.7模糊冗余信息


7.7.1模糊数学基础


7.7.2测试结论的模糊性


7.8本章小结


本章参考文献


第8章推理


8.1被测对象的正确性


8.1.1正确性的概念


8.1.2正确性度量


8.2演绎


8.2.1演绎推理基础


8.2.2正确性演绎推理


8.3归纳


8.3.1归纳推理基础


8.3.2基于模型的正确性归纳推理


8.3.3基于蜕变关系的正确性归纳推理


8.4等价性证明


8.4.1标准形式


8.4.2等价性反例


8.5基于缺陷的测试


8.6测试设计中的假设


8.6.1测试充分准则中的假设


8.6.2测试准绳中的假设


8.7本章小结


本章参考文献


第9章控制


9.1自适应测试


9.1.1反馈控制基础


9.1.2自适应测试中的反馈控制


9.1.3测试用例自适应排序


9.1.4符号随机测试


9.2可测性


9.2.1能控性与能观性


9.2.2路径敏化法


9.2.3面向能观性的测试充分准则


9.2.4可测性度量


9.3稳定性


9.4本章小结


本章参考文献


短评

测试设计思想 在软件开发过程中,测试是至关重要的环节。一个优秀的测试设计思想能够确保软件质量、提高开发效率,并减少后期维护成本。本文将介绍一些重要的测试设计思想,帮助您构建更可靠、稳定的软件产品。 1. 划分测试用例:将测试用例按照不同的功能模块或场景进行划分,可以更有针对性地进行测试,保证各个功能模块的覆盖全面,从而降低潜在缺陷的风险。 2. 自动化测试:自动化测试是一种高效的测试方式,能够节省大量时间和人力。适合将一些重复性、繁琐的测试任务交由自动化脚本执行,以确保测试的一致性和可重复性。 3. 边界条件测试:对于输入数据的边界条件进行测试,例如最大值、最小值、临界值等,是一种有效的测试设计思想。通过边界条件测试,可以发现一些通常被忽视的潜在问题。 4. 异常场景测试:除了正常功能的测试,还需要针对异常情况进行测试。例如,输入无效数据、网络连接中断等情况,这样可以检验软件在异常场景下的容错性和稳定性。 5. 性能测试:在测试设计中,不仅要关注功能是否正常,还要关注软件的性能。性能测试可以评估系统的响应时间、负载能力和资源消耗情况,保证软件在大量用户同时使用时也能稳定运行。 6. 用户体验测试:用户体验是衡量软件质量的重要标准之一。在测试设计中,需要关注用户界面是否友好、操作是否流畅,以及是否满足用户的期望。 7. 冒烟测试:冒烟测试是一种快速的初步测试,用于验证软件是否可用于进一步测试。通过冒烟测试,可以在早期发现一些明显的问题,及时修复并提高测试效率。 8. 针对不同平台的测试:如果软件需要在多个平台上运行,比如Windows、iOS、Android等,需要进行针对性的测试,以保证在不同平台下都能正常工作。 综上所述,测试设计思想在软件开发中具有重要的地位。通过合理划分测试用例、自动化测试、边界条件测试、异常场景测试、性能测试、用户体验测试、冒烟测试以及多平台测试,可以构建出更加可靠、稳定、高效的软件产品,满足用户的需求,提升用户体验。在软件开发过程中,注重测试设计思想将为项目的成功交付和运维维护带来巨大的价值。

2023-08-08 10:10:57

产品特色