《软件测试52讲》
测试新技术篇
43——探索式测试
什么是探索式测试?
首先,探索式测试是一种软件测试风格,而不是一种具体的软件测试技术。
其次,探索式测试强调独立测试工程师的个人自由和责任,其目的是为了持续优化其工作的价值。
最后,探索式测试建议在整个项目过程中,将测试相关学习、测试设计、测试执行和测试结果解读作为相互支持的活动,并行执行。
44——测试驱动开发(Test-Driven Development TDD)
它的核心思想,是在开发人员实现功能代码前,先设计好测试用例的代码,然后再根据测试用例的代码编写产品的功能代码,最终目的是让开发前设计的测试用例代码都能够顺利执行通过。
TDD的优势
1、保证开发的功能一定是符合实际需求的
2、更加灵活的迭代方式
3、保证系统的可扩展性
4、更好的质量保证
5、测试用例即文档
《重构:改善既有代码的设计》
45——精准测试
精准测试
所谓精准测试,就是借助一定的技术手段、通过算法的辅助对传统软件测试过程进行可视化、分析以及优化的过程。
精准测试的核心思想
借助一些高效的算法和工具,收集、可视化并且分析原生的测试数据,从而建立起一套测试分析系统。
特征:
1、精准测试是对传统测试的补充
2、精准测试采用的是黑盒测试与白盒测试相结合的模式
3、精准测试的数据可信度高
4、精准测试过程中,不直接面对产品代码
5、精准测试是与平台无关的、多维度的测试分析算法系统
《星云精准测试白皮书》http://www.threadingtest.com/index.html
46——渗透测试
渗透测试指的是,由专业安全人员模拟黑客,从其可能存在的位置对系统进行攻击测试,在真正的黑客入侵前找到隐藏的安全漏洞,从而达到保护系统安全的目的
渗透测试的常用方法
有针对性的测试
外部测试
内部测试
盲测
双盲测试
执行渗透测试的步骤
1、规划和侦察
包含了定义测试的范围和目标、初步确定要使用的工具和方法、明确需要收集的情报(例如,网络和域名,邮件服务器),以更好地了解目标的工作方式及其潜在的安全漏洞。
2、安全扫描
安全扫描包括静态分析和动态分析两个阶段。
静态分析阶段工具。目前,主流工具有 Fortify SCA 和 Checkmarx Suite。
3、获取访问权限
4、维持访问权限
5、入侵分析
渗透测试的常用工具
Nmap、Aircrack-ng、SQLmap、Wifiphisher、AppScan 这五种常用工具
47——基于模型的测试
基于模型的测试,即 Model-Based-Testing,简称 MBT
MBT,是自动化测试的一个分支。它是将测试用例的设计依托于被测系统的模型,并基于该模型自动生成测试用例的技术。其中,这个被测系统的模型表示了被测系统行为的预期,也可以说是代表了我们对被测系统的预期。
MBT 的基本原理
MBT 的基本原理是通过建立被测系统的设计模型,然后结合不同的算法和策略来遍历该模型,以此生成测试用例的设计。
MBT 工具简介
常见的 MBT 工具,包括:BPM-X、fMBT、GraphWalker。