软件测试技术(微课版)课件 第10章 软件测试领域_第1页
软件测试技术(微课版)课件 第10章 软件测试领域_第2页
软件测试技术(微课版)课件 第10章 软件测试领域_第3页
软件测试技术(微课版)课件 第10章 软件测试领域_第4页
软件测试技术(微课版)课件 第10章 软件测试领域_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章软件测试领域主要内容人工智能与测试高质量编程与测试软件质量保证与测试软件测试的评估软件测试环境大数据与测试第一节软件测试环境

软件测试环境概述虚拟化与容器技术1软件测试环境概述

在软件开发的过程中,测试环境起着至关重要的作用。一个好的测试环境需要考虑以下四个方面:1、硬件设备支撑软件测试环境的基础,硬件设备的选择和配置应根据测试需求进行。例如,如果测试对象是高并发的应用程序,需要选择高性能、高并发的服务器。也可以选择云平台进行部署。2、软件环境指测试过程中需要使用的软件和工具。例如,测试人员可能需要使用不同版本的操作系统、数据库、浏览器等。在软件环境的选择上,需要考虑测试需求和应用场景。有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。3、网络环境测试中经常需要考虑的因素,对测试的效果有直接影响。在测试环境的搭建中,需要考虑网络带宽、稳定性、安全性等问题。在测试过程中需要模拟各种网络环境,以验证软件的可靠性和性能。4、数据环境测试环境中不可或缺的一环。测试数据应该具有良好的代表性和完整性,以验证软件的功能、性能、安全等方面。在测试数据的选择上,需要考虑测试需求和测试覆盖度。2虚拟化容器与技术在计算机中,虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。一般所指的虚拟化资源包括计算能力和资料存储。虚拟化技术种类很多,例如软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、桌面虚拟化、服务虚拟化、虚拟机等。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。

Docker的主要用途,目前有三大类:提供一次性的环境。比如,本地测试他人的软件、持续集成时提供单元测试和构建的环境。提供弹性的云服务。因为Docker容器可以随开随关,很适合动态扩容和缩容。组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此可以在本机模拟出微服务架构。使用Docker时,可以创建和使用镜像、容器、网络、插件和其他对象。容器是镜像的可运行实例,可以使用DockerAPI或CLI创建、启动、停止、移动或删除容器。也可以将容器连接到一个或多个网络,将存储器连接到它,甚至可以基于其当前状态创建新镜像。启动容器的示例代码如下:[root@docker01~]#dockerrun-d-p80:80nginxUnabletofindimage'nginx:latest'locallylatest:Pullingfromlibrary/nginxe7bb522d92ff:Pullcomplete6edc05228666:Pullcompletecd866a17e81f:PullcompleteDigest:sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63dStatus:Downloadednewerimagefornginx:latest8d8f81da12b5c10af6ba1a5d07f4abc041cb95b01f3d632c3d638922800b0b4d#容器启动后,在浏览器进行访问测试第二节软件测试的评估

测试评估的目的和方法覆盖率评估质量评估性能评估1测试评估的目的和方法软件测试的评估主要有以下目的:对测试的进展情况进行量化分析,确定测试和缺陷修复工作的当前状态、效率和完成度,判断测试工作可以结束的时间。为最后完成测试报告或软件质量分析报告提供量化分析数据,例如给出测试覆盖率和缺陷清除率等。分析软件研发各阶段的不足之处,找出测试和开发工作中的薄弱环节,为过程监督、质量控制和过程改进提供定量化依据。

测试评估主要包括以下两种方法:覆盖率评估。评估测试的覆盖率,对测试完成程度进行评测。最常见的覆盖率评估分为需求覆盖率评估和代码覆盖率评估。质量评估。测试过程中产生的软件缺陷报告提供了最佳的软件质量评估数据,通过缺陷分析可以对软件的可靠性、稳定性等进行详细分析,对软件的性能进行多方面的评测,获得反映软件质量特征的多种指标数据,在此基础上确定软件质量与需求的相符程度。2覆盖率评估覆盖率是一种常见的反映测试充分性和完成度的定量化指标。对于代码的测试覆盖主要运用于早期测试执行阶段,如单元测试和集成测试;对于需求的覆盖主要运用于后期测试执行阶段,如系统测试和验收测试。1、需求覆盖率对需求的全面覆盖是软件测试的基本要求,需求覆盖率是测试到的功能和非功能需求占整个需求总数的百分比。

2、代码覆盖率代码覆盖率是指所测试的源代码数量占代码总数的百分比。代码覆盖率反映了测试用例对被测软件代码的覆盖程度,也是衡量测试工作进展情况的重要定量化指标。与手工分析需求覆盖率不同,一般需要借助相应的工具来统计代码覆盖率。代码覆盖率工具与具体的编程语言有关。一些常用编程语言的代码覆盖率分析工具:C/C++:CUnit、CppUnit、GoogleGTest、gcc+gcov+lcov等。Java:Clover、EMMA、JaCoCo、Jtest、MavenCobertura插件等。JavaScript:JSCoverage。Python:PyUnit+Coverage.py。PHP:PHPUnit+XDebug。Ruby:RCov。代码覆盖率在实际应用中存在着一些误区:片面追求高代码覆盖率。满足具体软件项目所规定的代码覆盖率是对测试工作的基本要求,但是保证已经测试过的代码的质量更为重要。认为100%的代码覆盖率就能够保证软件质量。实际上,即使测试所有的软件代码,也仍然不能保证软件完全满足用户需求和软件设计要求,也不能代表测试覆盖率很高。代码覆盖率的实际意义:度量测试工作的完成度,为确定何时可以结束测试提供依据确定没有被测试覆盖到的代码,从而检验前期测试设计是否充分,是否存在测试盲点。检测出程序中的错误和无用代码,促使程序设计和开发人员理清代码逻辑关系,提升代码质量。作为检验软件质量的辅助指标。3质量评估

软件是否满足用户需求最终决定了软件的质量,软件缺陷反映了软件与需求的偏差,因此测试工作中一般通过分析软件缺陷来评估软件的质量。软件缺陷分析和评估有很多种方法,从简单的缺陷数量统计到复杂的基于数学模型的分析。1、缺陷趋势分析缺陷趋势分析是根据缺陷数量随时间变化的情况,分析和监控开发与测试的进展状况与质量,预测未来软件研发工作情况。

3、缺陷注入-发现矩阵分析软件缺陷有“注入阶段”和“发现阶段”两个阶段。注入阶段即缺陷的来源(Source)阶段,是指在软件开发的哪个具体阶段造成这个软件缺陷;而发现阶段是缺陷的起源(Origin)阶段,是指在开发和测试过程中第一次发现该缺陷的阶段。4性能评估动态监测。在测试过程中实时获取和显示被测软件的性能表现、状态、用例执行进度等信息,一般以曲线图或柱状图的形式表达,用来监视和评估性能测试的执行情况。响应时间或吞吐量。用曲线图等显示响应时间或吞吐量随系统负载变化的情况,评估被测软件对象在不同条件下的性能表现。除了显示软件的实际性能之外,还可以统计分析数据的平均值和标准差,对性能指标的稳定性做出评估。百分比报告。百分比报告用于计算和显示各种百分比值,例如特定条件下软件对CUP、内存、网络带宽的占用百分比。比较报告。一种最常用的评估软件性能的形式。通过比较不同性能测试的运行结果,评估性能改进措施是否有效以及性能提升的程度,分析不同性能测试结果数据集之间的差异或趋势。追踪和配置文件报告。追踪和配置文件报告能够显示软件运行时软件单元之间的消息、控制流、数据流、时序等关键的系统底层运行信息,通过这些信息可以更为准确地定位性能瓶颈或性能异常等情况下的缺陷位置,分析和总结缺陷产生的具体原因。第三节软件质量保证与测试软件质量保证(SoftwareQualityAssurance,SQA)是建立一套有计划和系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。SQA和测试的主要联系和区别如下:测试只是质量保证工作中的一个环节。SQA所关注的是软件质量的检查与测量,质量保证人员的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求。软件测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析,测试人员执行测试用例,运行软件,以找出问题,报告质量。能力成熟度集成模型主要规程:制定质量保证计划测试。质量保证计划的主要内容是“过程与产品质量检查计划”、“参与技术评审计划”和“参与测试计划”。质量保证员根据本项目的特征,确定需要检查的主要过程域和主要工作成果,并估计检查时间和人员。过程与产品质量检查。质量保证员客观地检查项目成员的“工作过程”和“工作成果”是否符合既定的规范,并与项目成员协商改进措施。质量保证员记录本次检查的结果和经验教训,并及时通报给所有相关人员。问题跟踪与质量改进。质量保证员设法先在项目内部解决质量问题,如果在项目内部难以解决,则提交给上级领导处理。质量保证小组分析机构内共性的质量问题,给出质量改进措施。第四节高质量编程与测试高质量的代码是项目开发的基石,关乎软件的可靠性、可维护性、可扩展性、安全性和可用性等质量特性。高质量的编程会产出高质量的软件产品,软件测试的工作量就会减少,因此,高质量编程和测试是相辅相成的关系。高质量编程可以从以下几个方面进行提升:高质量代码的起点是扎实的编程基础知识。编程习惯对于代码质量有着至关重要的影响。注重代码的可读性和可维护性。持续学习和自我提升。注重代码的性能和安全性。实践敏捷开发和持续集成。站在客户角度上编写程序。重视代码审查和测试。C语言安全编程:变量声明应该赋予初值谨慎使用全局变量禁用功能复杂、易用错的函数禁用易用错的编译器/操作系统的机制小心处理资源访问过程不要改变操作系统的运行环境(创建临时文件、修改环境变量、创建进程等)严格的错误处理合理使用调试断言(ASSERT)第五节人工智能与测试

人工智能领域内测试技术人工智能辅助软件测试1人工智能领域内测试技术近年来,人工智能已被成功应用于业务数据挖掘和分析,人工智能究其本质是一种通过模拟人类的学习过程来训练计算机更好地管理数据的技术。人工智能领域内的测试技术包括:算法测试集数据准备。测试集的准备对于整体算法测试而言非常重要,一般测试集准备过程中需考虑测试集的覆盖度、独立性、准确性、覆盖度。测试集的准确性。数据集的准确性一般指的是数据标注的准确性。测试集一般也包含数据清洗操作,数据清洗是为保障后续模型评估指标结果,降低垃圾数据、干扰数据的影响。算法功能测试。算法需要进行功能性测试,例如微服务接口进行功能性验证,结合应用场景从功能性、可靠性、可维护性角度对必填、非必填、参数组合验证等进行正向、异向的测试覆盖。算法性能测试。算法微服务同样需要进行性能测试,如基准测试、性能测试、长短稳定性能测试,都是算法微服务每个版本中需要测试的内容,同时产出版本间的性能横向对比,感知性能变化。2人工智能辅助软件测试

常用人工智能算法有连接、遗传、统计和概率、案例等,而数据挖掘和分析的算法更多会用到分类、关联、优化、聚类、预测、发现趋势等。对于软件测试而言,最大的挑战莫过于如何在有限的时间内按需求和规范设计并执行准确而高效的测试用例。第六节大数据与测试大数据测试,在当前的测试领域是一个相对比较新的领域,而且难度也非常大。大数据测试从某种意义来说和人工智能测试类似,测试数据的量比较大,而testoracle又不像传统测试那样容易定义。另外大数据测试人员还必须懂得大数据的专业工具比如hadoop、HDFS、HiveQL、Pig等,同时最好也需要懂python等语言,对测试人员的综合要求非常高。大数据测试的流程,可以分成这几个步骤:环境搭建。对于大数据系统来讲,环境搭建是一个相对比较复杂的工作,因为大数据里面会用到各种各样的框架。另一方面,数据的准备工作是非常繁琐的,因为数据容量是非常大的。需要对整个平台应用的运行环境进行搭建,同时要接入各种数据源,有可能还要接入各种数据采集的设备。测试分析。包括大数据应用的分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论