版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式软件测试第一部分测试测试策略与策略与成果成果测试策略与成果提要 认识嵌入式软件测试 测试成果及其管理 软件测试策略认识软件测试的定义由人工或自动方法来执行或评价系统或由人工或自动方法来执行或评价系统或系统部件的过程,以验证它是否满足规系统部件的过程,以验证它是否满足规定的需求;定的需求;或或识别出期望的结果和实际结果之间有无识别出期望的结果和实际结果之间有无差别。差别。认识测试的发展历程时间区间时间区间标志性活动标志性活动 1956面向调试的阶段面向调试的阶段1957 1978面向证实的阶段面向证实的阶段1979 1982面向缺陷的阶段面向缺陷的阶段1983 1987面向评价的阶段面向评
2、价的阶段1988 认识测试与调试的区别测试不是调试,调试也不是测试,实际测试不是调试,调试也不是测试,实际工作中人们却常将测试与调试混为一谈工作中人们却常将测试与调试混为一谈主要区别:主要区别:v测试是一种检验,调试是推理过程测试是一种检验,调试是推理过程v测试从已知条件开始,使用预先定义测试从已知条件开始,使用预先定义的规程并且有可预知的结果;调试的的规程并且有可预知的结果;调试的开始条件可能不可知,结果不可预见开始条件可能不可知,结果不可预见v测试经常由非程序设计人员完成,调测试经常由非程序设计人员完成,调试必须由程序设计者完成试必须由程序设计者完成认识测试的目的验证软件是否满足其规格说明
3、的规定验证软件是否满足其规格说明的规定和要求和要求发现软件中隐藏的缺陷或其征兆发现软件中隐藏的缺陷或其征兆为软件产品质量的评价提供依据为软件产品质量的评价提供依据为软件开发过程的改进提供支持为软件开发过程的改进提供支持认识测试的局限性局限局限1v不可能对程序进行完全的测试不可能对程序进行完全的测试原因原因v所需测试的数量巨大所需测试的数量巨大v无法保证测试环境无法保证测试环境100%满足测试满足测试要求要求v没有足够的资源彻底完成软件测试没有足够的资源彻底完成软件测试认识测试的局限性局限局限2v测试无法说明软件没有缺陷测试无法说明软件没有缺陷原因原因v无法通过测试确信规格说明无法通过测试确信规
4、格说明100%正确正确v在资源制约和技术限制的条件下,在资源制约和技术限制的条件下,无法保证找到软件中所有的缺陷无法保证找到软件中所有的缺陷v无法确信测试人员完全理解了软件无法确信测试人员完全理解了软件v无法确信测试系统无法确信测试系统(或环境或环境)的正确性的正确性认识测试的局限性局限局限3v发现问题越多地方发现问题越多地方, 潜在的问题也更潜在的问题也更多多原因原因v缺陷存在聚集效应缺陷存在聚集效应v缺陷率水平与开发能力、复杂性等缺陷率水平与开发能力、复杂性等存在关联存在关联vPareto法则适用于软件测试法则适用于软件测试(8:2)认识测试的地位软件测试是软件验证与确认的重要组软件测试是
5、软件验证与确认的重要组成部分成部分有效有效的测试对于开发可靠、安全和成的测试对于开发可靠、安全和成功的软件是必须的功的软件是必须的测试不是测试不是“银弹银弹(silver bullet)”,它它具有有效范围,它具有有效范围,它不能替代其它软件不能替代其它软件工程工程方法方法的作用的作用认识验证与确认验证验证(Verification)与确认与确认(Validation)是广泛认可的质量保证方法和手段是广泛认可的质量保证方法和手段验证是指对开发过程中某项规定活动进验证是指对开发过程中某项规定活动进行检查的过程,以确保该活动实现了规行检查的过程,以确保该活动实现了规定能力定能力确认是指审查已建立的
6、软件产品是否符确认是指审查已建立的软件产品是否符合客户需要的过程合客户需要的过程V&VVerification: Are we building the product right?Validation: Are we building the right product?认识验证与确认认识与其他活动的关系软件质量软件工软件工程方法程方法标准与标准与过程过程正式技正式技术评审术评审测试测试SCM与与SQA度量与度量与控制控制认识测试的对象软件被广泛应用,承担许多关键与核心软件被广泛应用,承担许多关键与核心任务任务软件是被开发或设计的,包括维护阶段软件是被开发或设计的,包括维护阶段软件是逻辑产品
7、,可视性低软件是逻辑产品,可视性低软件是复杂的,输入空间无限大,可执软件是复杂的,输入空间无限大,可执行路径特别多行路径特别多大多数软件是定制的,可选标准构件少大多数软件是定制的,可选标准构件少既可能运行在芯片上,也可能运行于大既可能运行在芯片上,也可能运行于大型系统中型系统中认识嵌入式系统过程/设备系统输入系统输入系统输出系统输出动作器传感器被控制的变量被控制的变量被监控的变量被监控的变量嵌入式系统HMI输出输出输入输入操作员认识嵌入式系统的特点执行数据采集、控制等任务,逻辑复杂执行数据采集、控制等任务,逻辑复杂软件运行在资源受限的专用硬件上软件运行在资源受限的专用硬件上部署后不受人的控制部
8、署后不受人的控制软件修补困难软件修补困难多为实时系统多为实时系统多为关键系统多为关键系统系统构成多样化系统构成多样化提供多种通信接口和协议提供多种通信接口和协议库函数、驱动程序常定制开发库函数、驱动程序常定制开发HWCItestingfabricationdetaileddesignpreliminarydesignCSCItestingCSCintegrationand testingcoding andCSU testingdetaileddesignsystemrequirementsanalysissystemdesignSRRpreliminarydesignSDRsoftwarer
9、equirementsanalysishardwarerequirementsanalysisSSRPDRCDRPDRCDRTRRsystemintegrationand testingFCAPCAFCAPCAFQRfunctionalbaselineallocatedbaselineproductbaselinedevelopment configurationsystem requirements reviewsystem design reviewsoftware specification reviewpreliminary design reviewcritical design r
10、eviewtest readiness reviewfunctional configuration auditphysical configuration auditformal qualification reviewSRRSDRSSRPDRCDRTRRFCAPCAFQRAbbreviations嵌入式系统开发模型认识嵌入式软件测试对测试环境的要求高对测试环境的要求高对专业测试的依赖程度高对专业测试的依赖程度高测试输入和结果获得需要专门的手段测试输入和结果获得需要专门的手段测试约束大测试约束大性能、可靠性、安全性、接口、健壮性、性能、可靠性、安全性、接口、健壮性、算法测试要求高算法测试要求
11、高认识发展动态国外的情况国外的情况v测试是开发过程的常规活动测试是开发过程的常规活动v测试技术的利用趋于科学测试技术的利用趋于科学国内的情况国内的情况v专业机构的情况专业机构的情况v开发机构的情况开发机构的情况评价技术的使用还较局限评价技术的使用还较局限测试成果及其管理软件缺陷软件缺陷软件缺陷的征兆软件缺陷的征兆v故障故障v失效失效注:相关定义来自注:相关定义来自IEEE Std 1633-2008 IEEE Recommended Practice on Software Reliability成果缺陷缺陷缺陷(Defect)v存在于软件中的、不期望的或不可存在于软件中的、不期望的或不可接受
12、的偏差。在特定的状态下,导接受的偏差。在特定的状态下,导致软件不能完成所需的任务致软件不能完成所需的任务典型的软件缺陷典型的软件缺陷v数组越界使用数组越界使用v计算表达式错误计算表达式错误v算法实现错误算法实现错误成果软件的缺陷属性无法提供无缺陷的软件,缺陷已成为无法提供无缺陷的软件,缺陷已成为软件的固有属性和特征软件的固有属性和特征v各种研究报告表明,每写各种研究报告表明,每写1000行行代码会产生代码会产生 30到到85个缺陷个缺陷v大多数缺陷可通过测试捕获大多数缺陷可通过测试捕获v在大量的已完成测试的软件中,每在大量的已完成测试的软件中,每1000行代码仍存在行代码仍存在0.53缺陷缺陷
13、软件缺陷有可能会给系统质量尤其是软件缺陷有可能会给系统质量尤其是可靠性带来重大影响可靠性带来重大影响成果缺陷的例子(求和)# include int sum(i1, i2, i3) int i1; int i2; int i3; return (i1+i2+i3);int main() printf(“Sum is %dn”, sum(1,2,3); return(0)成果缺陷的例子(排序)#include int main() int a,b,c; a = 7; b = 5; c = 3; if(abc) std:cout“a,b,c are in ordern”; else std:cou
14、t100000210000100000310001000041000成果失效分级举例3失效类别失效类别对操作的影响对操作的影响1用户不能进行一项或多项关键操作用户不能进行一项或多项关键操作2用户不能进行一项或多项重要操作用户不能进行一项或多项重要操作3用户不能进行一项或多项操作,但用户不能进行一项或多项操作,但是有补救办法是有补救办法4一项或多项操作中的小缺陷一项或多项操作中的小缺陷软件测试策略确定测试的独立性和组织结构确定测试的独立性和组织结构确定测试级别确定测试级别确定测试技术和类型确定测试技术和类型确定测试用例设计方法确定测试用例设计方法确定测试完成准则确定测试完成准则确定回归测试策略确
15、定回归测试策略策略独立性和组织结构独立性级别独立性级别v开发人员的测试开发人员的测试v专职测试人员的测试专职测试人员的测试v专职测试团队的测试专职测试团队的测试v用户的测试用户的测试v独立机构的测试独立机构的测试组织结构与独立性级别匹配组织结构与独立性级别匹配策略测试级别 与软件开发过程相适应与软件开发过程相适应 为了说明软件系统内单元为了说明软件系统内单元/组件组件/配置项配置项的互操作性需要进行三种基本的测试的互操作性需要进行三种基本的测试v测试单独的单元测试单独的单元v测试单元间互操作测试单元间互操作v测试单元结合成的软件测试单元结合成的软件SystemsDesignSystemsAna
16、lysisSoftwarePDSoftwareDDSoftwareImplementation(Coding)SoftwareRequirementAnalysisLow LevelRBTIntegrationTestingHigh Level RBTSystems IntegrationTestingSystems LevelTestSystemsEngineeringSoftware EngineeringSoftwareSystemsEngineeringKNOWLEDGEBASESoftwareUnit TestPD : preliminary designDD : detailed
17、designRBT : Requirements-based testing策略测试级别的不同考虑基于过程划分基于过程划分基于对象规模划分基于对象规模划分单元测试单元测试单元测试单元测试集成测试集成测试部件测试部件测试确认测试确认测试配置项测试配置项测试系统测试系统测试系统测试系统测试策略测试方法的重要性 测试是一项富有挑战性的工作测试是一项富有挑战性的工作 用户与测试人员的区别用户与测试人员的区别 测试方法来自于测试经验测试方法来自于测试经验 测试不能靠运气测试不能靠运气 测试的多样性需求测试的多样性需求策略测试方法分类静态测试静态测试v不动态执行程序代码,而寻找程序代不动态执行程序代码,而
18、寻找程序代码中可能存在的缺陷或评估程序代码码中可能存在的缺陷或评估程序代码的过程的过程动态测试动态测试v实际运行被测试程序,取得程序运行实际运行被测试程序,取得程序运行的真实情况和动态情况,进行分析的真实情况和动态情况,进行分析策略静态测试特征 可以由人工进行,充分发挥人的逻辑可以由人工进行,充分发挥人的逻辑思维优势思维优势 可以借助软件工具自动完成部分工作,可以借助软件工具自动完成部分工作,提高测试的一致性和效率提高测试的一致性和效率 对测试环境的要求较低对测试环境的要求较低 测试成果取决于测试人员的能力和态测试成果取决于测试人员的能力和态度度策略静态测试类型 代码审查代码审查 代码走查代码
19、走查 静态分析静态分析 设计评审设计评审策略动态测试特征 测试的质量依赖于使用的测试数据测试的质量依赖于使用的测试数据 生成测试数据和分析测试结果需要时生成测试数据和分析测试结果需要时间与经费投入间与经费投入 动态测试涉及人员、设备和数据等多动态测试涉及人员、设备和数据等多个方面,要求有较好的管理和工作规个方面,要求有较好的管理和工作规程程策略动态测试方法方法方法策略策略白盒方法白盒方法黑盒方法黑盒方法策略白盒测试特征 已知产品内部工作流程,通过测试来已知产品内部工作流程,通过测试来检测产品的内部动作是否按照详细设检测产品的内部动作是否按照详细设计规格说明的规定正常进行,而不管计规格说明的规定
20、正常进行,而不管它的功能它的功能 目标是对所有逻辑路径进行测试,穷目标是对所有逻辑路径进行测试,穷举路径举路径 依据详细设计规范依据详细设计规范 白盒测试白盒测试(White-Box Testing)也称也称为结构测试或逻辑驱动测试为结构测试或逻辑驱动测试策略白盒测试图示结果输出结果输出内部行为内部行为预期输出预期输出软件设计软件设计选择输入选择输入策略逻辑路径的数量程序的执行序列程序的执行序列(逻辑路径逻辑路径)的数目的数目是庞大的,简单的重复就有可能使执行是庞大的,简单的重复就有可能使执行序列的数目增大到天文数字。序列的数目增大到天文数字。例子:例子:For (int i =0;in;+i
21、)if (a.get(i)=b.get(i)xi=xi+100;elsexi=xi/2; 解:解:可能的执行序列可能的执行序列/路径数是路径数是2n1当当n=20时,执行序列时,执行序列/路径路径数是数是1,048,577策略白盒测试的优势对重点区域进行重点测试对重点区域进行重点测试根据覆盖的指示增加测试根据覆盖的指示增加测试可以根据需要观察控制流可以根据需要观察控制流可方便地监控数据完整性可方便地监控数据完整性能看到内部边界能看到内部边界可模拟内部异常,方便测试异常处理可模拟内部异常,方便测试异常处理策略白盒测试的局限即使测试了所有路径也不能保证没有缺即使测试了所有路径也不能保证没有缺陷,例
22、如:陷,例如:1)遗漏的代码遗漏的代码2)边界值处理不正确边界值处理不正确3)时序问题、中断相关的缺陷时序问题、中断相关的缺陷4)未进行判断保护的除零未进行判断保护的除零(x/y)问题问题5)指针越界指针越界/内存泄漏或栈破坏等最终导致内存泄漏或栈破坏等最终导致栈溢出,但滞后暴露问题栈溢出,但滞后暴露问题6)配置相关缺陷,硬件和软件兼容性问题配置相关缺陷,硬件和软件兼容性问题7)易用性等用户需求相关的缺陷易用性等用户需求相关的缺陷策略白盒测试类型基于控制流测试基于控制流测试基于数据流测试基于数据流测试策略白盒测试的充分性策略黑盒测试特征 已知软件产品应该具有的功能,通过已知软件产品应该具有的功
23、能,通过测试来检测每个功能是否都能正常使测试来检测每个功能是否都能正常使用用 黑盒法着眼于程序外部结构,不考虑黑盒法着眼于程序外部结构,不考虑内部逻辑结构内部逻辑结构 穷举输入穷举输入/状态测试,测试情况有无穷状态测试,测试情况有无穷多个多个 依据需求规范依据需求规范 黑盒测试黑盒测试(Black-Box Testing)也称为也称为功能测试或数据驱动测试功能测试或数据驱动测试策略黑盒测试图示结果输出结果输出预期输出预期输出选择输入选择输入策略输入/状态空间一些很普通的程序所包含的输入一些很普通的程序所包含的输入/输出输出组合,即使只考虑合法情况,其数目都是组合,即使只考虑合法情况,其数目都是
24、非常惊人的,有些更是天文数字。非常惊人的,有些更是天文数字。 例:读入三个数值,表示三角形的三条边,程序输出例:读入三个数值,表示三角形的三条边,程序输出一条信息,说明该三角形是等边三角形、等腰三一条信息,说明该三角形是等边三角形、等腰三角形、不等边三角形。角形、不等边三角形。 解:在限制坐标点取值为解:在限制坐标点取值为110的整数的情况下,的整数的情况下,3条直条直线有线有1041041041012种可能的输入,每秒测试种可能的输入,每秒测试1000条直线,需要条直线,需要1012103109s,每年按,每年按3.1536107s计算,需要计算,需要109(3.1536107)=31.7年
25、。年。 注:考虑输入域之外注:考虑输入域之外/实数实数/更大范围更大范围策略黑盒测试局限性 不可能测试所有的输入不可能测试所有的输入1)有效的输入有效的输入2)无效的输入无效的输入3)输入的编辑特性输入的编辑特性4)输入时间的考虑输入时间的考虑 不可能测试多个输入的所有组合不可能测试多个输入的所有组合策略黑盒测试类型 基于规格说明的测试基于规格说明的测试 基于质量特性的测试基于质量特性的测试 基于故障的测试基于故障的测试 基于经验的测试基于经验的测试策略黑盒测试的充分性策略测试方法的选择从原理上讲,黑盒测试能检测出所从原理上讲,黑盒测试能检测出所有错误,但要花费无限的时间。白盒测试有错误,但要
26、花费无限的时间。白盒测试基本上是有限的,但即使是全部执行也不基本上是有限的,但即使是全部执行也不能测试出全部的错误。某种程度上讲,测能测试出全部的错误。某种程度上讲,测试的技巧就是在白盒测试与黑盒测试之间试的技巧就是在白盒测试与黑盒测试之间如何进行选择。如何进行选择。 - Beizer策略测试方法的作用S SSSSSSSSSSSSSDDDDDDDDDDSSDDDDDDDDDDDDDDDDDDDSSSSS许多动态许多动态测试难以发现的测试难以发现的缺陷缺陷可以通过早期的静态测试发现可以通过早期的静态测试发现动态测试时动态测试时发现的缺陷发现的缺陷静态测试时静态测试时发现的缺陷发现的缺陷策略测试方
27、法的应用(Fujitsu)年份年份缺陷检测方法缺陷检测方法(%)千行需千行需维护代维护代码缺陷码缺陷动态测试动态测试 设计评审设计评审 代码审查代码审查197785-150.191978805150.1319797010200.0619806015250.05策略好的测试用例 具有合理的捕获缺陷的概率具有合理的捕获缺陷的概率 执行了重要的区域执行了重要的区域 做了应引起注意的事情做了应引起注意的事情 不做多余的事情不做多余的事情 既不太简单也不太复杂既不太简单也不太复杂 不与其它测试用例冗余不与其它测试用例冗余 使得缺陷显而易见使得缺陷显而易见 考虑缺陷的隔离和识别考虑缺陷的隔离和识别策略测试用例设计方法边界值分析边界值分析等价类划分等价类划分因果图因果图正交设计正交设计状态转换状态转换敏感度分析敏感度分析随机测试随机测试错误列表错误列表策略测试完成准则当时间用光时当时间用光时当继续测试没有触发新的失效时当继续测试没有触发新的失效时当继续测试没有发现新的缺陷时当继续测试没有发现新的缺陷时当无法考虑新的测试用例时当无法考虑新的测试用例时当测试的回报很小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏省机关事业单位工勤技能岗位技术等级考试(公路养护·中级)历年参考题库含答案详解
- 2026江苏住院医师规范化培训考试(口腔科Ⅱ阶段)题库历年参考题库含答案详解
- 2026正高卫生职称-医学口腔类-口腔正畸学(正高)代码:025历年参考题库含答案详解
- 2026教师职称-辽宁-辽宁教师职称(基础知识、综合素质、初中音乐)历年参考题库含答案详解3套试卷
- 本班课程设计随笔
- 图书借还系统开发课程设计
- 茶叶知识课程设计
- 基于SPI的Flash读写控制器在设计方法课程设计
- 炒菜基础原理课程设计
- 图嵌入安全课程设计课程设计
- 船舶防台风知识课件
- 用药错误应急预案及处理流程
- 新能源汽车电气系统检修-配套课件
- 2025年弘扬传统节日端午节演讲稿(2篇)
- 急性肝衰竭护理及治疗
- 渠道开发与维护课件
- 教科版科学三年级下册第一单元《 物体的运动》测试卷附答案(黄金题型)
- 2024年中级会计职称考试《中级会计实务》真题
- 大学生就业指导(高职就业指导课程 )全套教学课件
- 《工程伦理》课程教学大纲
- 汽车售后服务管理PPT完整全套教学课件
评论
0/150
提交评论