软件测试价值提升之路pdf下载,软件测试进阶教程
问:局部测试阶段出现在哪个测试阶段?
答:单元测试
按照开发阶段划分
:单元测试、集成测试、系统测试(V模型)、回归测试、冒烟测试、验收测试测试实施机构表示,开发测试人员不会参与测试手机出厂前的最后一次测试。
测试是用户在开发环境下进行的测试,也可以是公司内用户在模拟实际运行环境下进行的测试。alpha测试的目的是评估软件产品的FLURPS(即功能、本地化、可用性、可靠性、性能和支持)。大型通用软件在正式发布前通常需要进行Alpha和Beta测试。Alpha测试不是程序员或者测试人员能做的。局限性:在开发环境中进行时不实用;受制于开发者和测试者beta测试新手机回购,参与测试的都是购买者,使用的场所和环境已经不是厂商的了。
Beta测试是一种验收测试,由软件的最终用户在一个或多个地方进行。
测试与Beta测试的区别:
测试地点不同:Alpha测试是指邀请用户到开发者的地方进行测试,beta测试是指在一个或多个用户的地方进行测试。Alpha的测试环境由开发者掌控,用户数量相对较少,时间相对集中。beta测试环境不受开发者控制,用户数量比较多,时间不集中。阿尔法测试在贝塔测试之前进行。一般的软件产品需要大规模的beta测试,测试周期比较长。第三方测试是介于开发者和用户之间的组织的测试。
根据是否运行,静态测试静态法是指不运行被测程序本身,只通过分析或检查源程序的语法、结构、流程、接口来检查程序的正确性。
对需求说明书、软件设计说明书和源程序进行结构化分析,
流程图分析,符号执行查找故障。
检查项目:代码风格和规则审查;程序设计和结构的审计;业务逻辑审计;检查、审查和技术审查手册。静态质量:测量所依据的标准是ISO9126。在这个标准中,软件的质量通过以下几个方面来衡量:功能性、可靠性、可用性、效率、可维护性和可移植性。
代码静态分析和文档测试都属于静态测试
动态测试动态测试方法是指运行被测程序,检查运行结果与预期结果的差异,分析运行效率、正确性和健壮性等性能的过程。
该方法由三部分组成:构建测试用例、执行程序和分析程序的输出结果。
大多数软件测试工作都属于动态测试
是否用手工来划分手工测试手工测试是指人一个一个的输入用例,然后观察结果,对应的是机器测试。这是一个原始但必要的步骤。
优点和缺点:
优点:自动化不能代替探索性测试和发散性思维结果的测试。缺点:执行效率慢,数量大,容易出错。自动化测试是在预设的条件下运行系统或应用程序,并评估运行结果。预设条件应包括正常条件和异常条件。简单的自动化测试是将人类驱动的测试行为转化为机器执行的过程。自动化,如功能测试自动化、性能测试自动化和安全测试自动化。自动化通常是指功能测试的自动化。自动化测试可以分为测试对象、界面测试、UI测试等。界面测试的ROI高于UI测试。
UI测试适用于回归测试以及兼容性测试
自动化:实施步骤:
1.完成功能测试,版本基本稳定。
2.根据项目的特点,选择适合项目的自动化工具,搭建环境。
3.提取手工测试的测试用例,并转换成自动化测试用例。
4.通过工具和代码实现自动输入,自动检查输出结果是否符合预期。
5.生成自动测试报告。
6.持续改进和脚本优化
通用测试框架:
python:unittest,pytest,Robot framework
java
:TestNG
常用的自动化测试工具:
Selenium,loaderrunner,jmeter,appium,soupui(接口)
根据是否检查代码,黑盒测试也称为功能测试。在测试中,被测软件被当作一个黑盒,不考虑盒子的内部结构,只考虑软件的输入数据和输出数据。
按开发阶段划分,使用了黑盒测试的
:集成测试、系统测试、烟雾测试、验收测试黑盒测试的测试用例设计方法
:场景设计、等价类划分、因果图设计、正交设计、错误猜测、边界值设计。白盒测试白盒测试也称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒是指打开盒子研究源代码和程序结果
接口测试也是白盒测试的是一种
。
白盒测试对象
:代码(逻辑、循环、路径)白盒测试内容
:逻辑覆盖、循环覆盖、路径覆盖按开发阶段划分,使用了白盒测试的
:单元测试、集成测试灰盒测试是介于白盒测试和黑盒测试之间的一种测试。灰盒测试多用于集成测试阶段,既注重输出输入的正确性,又注重程序的内部情况。
软件本地化
按考区:采用语言技术和工程技术,使软件适用于不同的语言。软件国际化
:利用开发技术使软件适用于不同的语言和文化习俗,不需要修改源程序就可以实现软件的本地化。国际测试
本地化和国际化测试的一些要点:
本地化后的软件在外观上与原版是否有较大差异,外观是否整齐不走样。是否所有界面元素都本地化了,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音提示)、日志等。不同屏幕分辨率下界面是否正常显示。是否有不同的字体大小,字体设置是否合适。日期、数字格式、货币等。能适应不同国家的文化习俗。比如中文是年份,英文是年份。排序方法是否考虑到不同语言的特点。比如中文按照第一个字的拼音顺序排序,英文按照第一个字母排序。软件是否能适应和转换不同国家的不同计量单位。软件能否在不同类型的硬件上正常运行,尤其是在本地市场销售的热门硬件上。软件是否能在本地版本的Windows或其他操作系统上正常运行。在线帮助和文档是否已经翻译,翻译后的链接是否正常。翻译是否正确恰当,有无语法错误?本地化测试研究了之前所有的本地化测试。
根据测试对象划分
业务测试
是测试人员将系统的所有模块串联起来运行,模拟真实用户的实际工作流程,满足用户需求定义的功能进行测试的过程。
测试关注需求和用户。
界面测试
界面测试(简称UI测试)
,测试用户界面的功能模块布局是否合理,整体风格是否一致,各控件的放置位置是否符合客户的使用习惯。另外,测试界面操作的便捷性、导航的易懂性、页面元素的可用性、界面中的文字是否正确、名称是否统一、页面是否美观、文字和图片的结合是否完美。
容错性测试
容错测试是检查软件本身在异常情况下是否具有保护性或者某种灾难性恢复的措施。当系统出现问题时,能否在规定的时间间隔内纠正错误并重启系统
容错性测试包括两个方面:
?1.输入异常数据或执行异常操作来检查系统的保护。如果系统容错性好,系统只会给出提示或者内部消化,不会导致系统出错甚至崩溃。
温和容错测试通常会构造一些不合理的输入来引诱软件出错,比如:
(1)输入错误的数据类型,如“猴”年和“马”月。
(2)域外输入一个数值,上海人常说的“13点”也是一种。
一些粗糙的容错测试俗称“大猩猩”测试,除了拳打脚踢和撕咬,什么招数都可以用。
2.灾难恢复测试。通过各种手段,使软件强制失效,然后验证系统保存的用户数据是否丢失,系统和数据能否尽快恢复。
对于自动恢复,需要验证重新初始化、检查点、数据恢复、重启等机制的正确性;对于有人工干预的恢复系统,还需要估计平均修复时间,以确定其是否在可接受的范围内。容错性好的软件可以保证系统不会出现意外事故。
从容错测试的概念可以看出,当软件出现故障时,如何转移故障并恢复有用的数据是非常重要的。
文档测试
《全国计算机软件产品开发文档编制指南》共有14种文档,可分为3类。
开发文档:可行性研究报告、软件需求说明书、数据需求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发文档。用户文档:用户手册、操作手册,用户文档的作用:提高安装的方便性;提高软件的易学易用性;提高软件可靠性;降低技术支持成本。管理文档:项目开发计划、测试计划、测试分析报告、月度开发进度报告、项目开发总结报告。在实际测试中,最常见的就是用户文件的测试,比如手册、说明书等。也会有一些公司对需求文档进行测试,以保证需求文档的质量。
文档测试的关注点:
文件的正确性,文件的完整性,文件的一致性,文件的可用性
兼容性测试
同一网站在不同浏览器中的不同表现
测试WEB APP测试兼容性主要是指软件之间是否能很好的相互配合,是否会产生影响,软硬件是否能高效工作,是否会影响系统崩溃。
测试平台浏览器,测试软件本身是向前兼容还是向后兼容,测试软件是否与其他相关软件兼容,测试数据兼容性
最常见的就是浏览器的兼容性测试,不同浏览器在css,js解析上的不同会导致页面的显示不同。常见的IE8的兼容性
易用性测试
易用性是交互的适应性、功能性和有效性的集中体现。易用性属于人体工程学的范畴,是一门把日常用品设计得简单易用、实用的学科。
在一些大厂,会有专门的部门进行可用性测试,也叫用户体验测试。
安装测试
测试程序的安装和卸载
通常,会安装和卸载应用程序。
安全测试
安全测试是一个相对独立的领域,需要更多的专业知识。比如web安全测试,要求熟悉各种网络协议TCPHTTP,防火墙,CDN,各种操作系统的漏洞,路由器等。从软件角度,熟悉各种攻击方式,如SQL注入、Xss等。
性能测试
检查系统是否满足需求规范中规定的性能
通常表现在以下几个方面:
。资源利用的准确性(如内存、处理器周期等。)日志事件的监控(如中断、报错)响应时间吞吐量(TPS)辅助存储区的处理精度(如缓冲区、工作区大小等。)在执行间隔
内存泄漏测试
期间很多软件系统都存在内存泄漏的问题,尤其是用缺乏自动垃圾收集机制的“非托管”语言编写的程序,如C、ch、Delphi等。从用户的角度来说,内存泄露本身不会造成什么伤害,一般用户可能根本感觉不到内存泄露的存在。但是,内存泄漏会累积。只要执行次数足够多,所有可用内存最终都会被耗尽,使得软件的执行越来越慢,最终停止响应。你可以把这类软件的问题比作
软件的“慢性病”
造成内存泄露的原因有很多,最常见的有以下几种:
。内存分配后,忘记了恢复程序的编写有问题,导致部分API函数使用错误,导致内存泄露,没有及时释放
内存泄漏的检测
:1.对于不同的程序,可以使用不同的方法来检查内存泄漏,也可以使用一些特殊的工具来检查内存问题,比如MemProof。AQTime,Purify,BundsChecker等。一些开发工具有自己的内存问题。
检查机械装置。确保程序员在编写和编译程序时打开这些功能。2.通过静态代码分析工具进行检查。