您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 软件测试&硬件测试-chss
知微传感三维视觉硬科技软件测试&硬件测试三维视觉硬科技1测试是什么样的角色?思考:三维视觉硬科技2•早期软件开发中,测试=调试(debug)•1957年,软件测试开始与调试区别开来,作为一种发现软件缺陷的活动•1972年,软件测试领域的先驱BillHetzel博士(代表论著《TheCompleteGuidetoSoftwareTesting》),在美国的北卡罗来纳大学组织了历史上第一次正式的关于软件测试的会议软件测试的前世今生(1)三维视觉硬科技3•1973年,BillHetzel首先给软件测试一个这样的定义:“就是建立一种信心,认为程序能够按预期的设想运行。Establishconfidencethataprogramdoeswhatitissupposedtodo.”•1975年,测试数据选择原理(TowardaTheoryofTestDataSelection),软件测试被确定为一种研究方向•1979年,Myers提出了他对软件测试的定义:“测试是为发现错误而执行的一个程序或者系统的过程。Theprocessofexecutingaprogramorsystemwiththeintentoffindingerrors.”软件测试的前世今生(2)三维视觉硬科技4•20世纪80年代,质量意识,IEEE,ANSI,ISO•1983年,BillHetzel又将定义修订为:“评价一个程序和系统的特性或能力,并确定它是否达到预期的结果。软件测试就是以此为目的的任何行为。Anyactivitiesaimedatevaluatinganattributeorcapabilityofaprogramorsystem.”软件测试的前世今生(3)三维视觉硬科技5•20世纪90年代,测试工具兴起•1996年,测试能力成熟度等各模型•2002,《系统的软件测试》(SystematicSoftwareTesting):测试是为了度量和提高倍测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。软件测试的前世今生(4)三维视觉硬科技61.测试理论软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness)、完全度(completeness)和质量(quality)的软件过程;是SQA(softwarequalityassurance)的重要子域。软件测试三维视觉硬科技72.软件测试目的•软件公司期望在预计的时间、合理的预算下、提交一个可以交付的产品。测试的目的是把软件错误控制在一个可以进行产品交付/发布的程度上。可以交付/发布的产品并不是没有错误的产品,软件测试不可能无休止的进行下去,而是把错误控制在一个合理的范围内,因为测试也是要花费巨大成本的。•以最少的人力、物力、时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后潜在的软件缺陷和错误造成的隐患带来的商业风险。软件测试三维视觉硬科技83.软件测试的目标•为了发现程序中的错误而执行程序的过程;•好的测试方案是极有可能发现迄今尚未发现的尽可能多的错误的测试方案;•成功的测试是发现了迄今尚未发现的错误的测试。测试是为了发现错误,不能证明程序正确。一般来说,单元测试可由程序员自己完成,而综合测试通常由测试小组来完成。预防错误:几乎不可实现发现错误:软件测试目的软件测试三维视觉硬科技94.软件测试的对象软件测试不等于程序测试;软件包括程序,数据和文档;软件测试应贯穿于软件定义与开发的整个期间;据美国一家公司统计,查出的软件错误中,属于需求分析和软件设计的错误约占64%,属于程序编写的错误仅占36%。程序编写的许多错误是“先天的”。软件测试三维视觉硬科技105.软件错误分类功能错误(需求分析错误)软件结构错误数据错误编码错误软件集成错误测试定义与测试执行错误软件测试三维视觉硬科技116.测试原则(1)“尽早测试,不断测试”作为测试人员的座右铭-坚持软件开发各阶段复审,尽早发现错误-贯穿到软件开发的各个阶段所有的软件测试都应该追溯到用户需求-测试的目的是为了满足用户需求软件测试三维视觉硬科技126.测试原则(2)完全测试是不可能的,测试需要中止-输入量太大-输出结果太多-路径组合太多测试无法显示软件潜在的错误-只能证明软件存在错误而不能证明没有错误软件测试三维视觉硬科技136.测试原则(3)充分注意测试中的群集现象-发现的错误多,则残存的错误也多-IBMOS/370,47%的错误与4%的模块有关-20/80原则程序员应避免检查自己的程序尽量避免测试的随意性-有组织,有计划,有步骤软件测试三维视觉硬科技147.软件测试信息流(1)测试过程需要三类输入:软件配置:需求规格说明书软件设计说明书被测源程序代码测试配置:测试计划测试用例(测试数据)测试驱动程序测试工具软件测试三维视觉硬科技157.软件测试信息流(2)软件测试软件配置测试配置测试测试工具结果分析排错可靠性分析测试结果预期结果改正的软件预测的可靠性三维视觉硬科技168.软件测试分类(1)阶段细分•单元测试-在软件编码阶段进行,确认模块作为单元能够正常运行•集成测试-经过测试的单元按一定顺序组装成为系统,进行测试,又称接口测试•确认测试•系统测试•验收测试软件测试三维视觉硬科技178.软件测试分类(2)角度细分从是否关心软件内部结构和具体实现的角度划分•白盒测试•黑盒测试•灰盒测试从是否执行程序的角度•静态测试•动态测试软件测试三维视觉硬科技189.软件测试的步骤测试步骤及策略所有测试过程都应采用综合测试策略;即先作静态分析,再作动态测试。并事先制订测试计划。测试过程通常可分4步进行:软件测试单元测试单元测试单元测试被测模块被测模块集成测试设计信息已测试的模块确认测试已集成的模块软件需求系统测试已确认的软件可交付的软件系统其他元素三维视觉硬科技1910.测试类型:模块测试(单元测试)测试内容软件测试模块模块接口测试局部数据结构测试重要路径测试错误处理测试边界条件测试I/O参数值的个数、类型、次序、格式是否正确,I/O文件属性、操作是否正确等。数据说明是否正确、一致,变量及其初值定义是否正确等。检查“错误处理程序”本身的错误。边界条件常包括循环边界,最大最小值、控制流中等于、大于、小于的比较值等。重要路径通常是指完成模块功能的主要路径,一般是控制结构。三维视觉硬科技2010.测试类型:组装测试(联合测试/集成测试)重点测试模块的接口部分,需设计测试过程使用的驱动模块或桩模块。组装测试的任务①确定模块组装方案,将经过测试的模块组装为一个完整的系统。组装方案分为渐增式及非渐增式。②测试方法以黑盒法为主,按照组装方案进行测试。软件测试三维视觉硬科技2110.测试类型:组装测试(联合测试/集成测试)渐增式和非渐增式的比较非渐增式:先分别测试A、B、C、D、E、F,然后将六个模块连接起来再测试。渐增式(自底向上):先并行测试E、C、F,然后测试B、D,最后测试A。软件测试ABCEDF三维视觉硬科技2210.测试类型:组装测试(联合测试/集成测试)渐增式和非渐增式的比较•非渐增式需要较多的人工编写桩模块和驱动模块,渐增式较少•渐增式可以较早地发现模块界面之间的错误•渐增式有利于排错•渐增式比较彻底•渐增式需要较多的机器时间•渐增式的测试工作无法并行结论:总的来说,渐增式比较优越软件测试三维视觉硬科技2310.测试类型:组装测试(联合测试/集成测试)渐增式和非渐增式的比较•非渐增式需要较多的人工编写桩模块和驱动模块,渐增式较少•渐增式可以较早地发现模块界面之间的错误•渐增式有利于排错•渐增式比较彻底•渐增式需要较多的机器时间•渐增式的测试工作无法并行结论:总的来说,渐增式比较优越软件测试三维视觉硬科技2410.测试类型:组装测试(联合测试/集成测试)集成过程的原则•尽早测试关键模块•尽早测试包含I/O的模块软件测试三维视觉硬科技2510.测试类型:确认测试(有效性测试/功能测试)任务其任务是验证系统的功能、性能等特性是否符合需求规格说明。软件测试选择测试人员选择测试用例实际运行测试软件计划用户文档开发文档源程序文本支持环境有效性测试软件配置审查管理机构裁决专家鉴定会交付用户运行维护三维视觉硬科技2610.测试类型:确认测试(有效性测试/功能测试)目的确认测试的目的是向用户表明软件系统的有效性,确认测试技术以黑盒法为主,以验证软件是否满足SRS规定的需求。SRS(SoftwareRequirementSpecification):软件需求说明书软件测试三维视觉硬科技2710.测试类型:确认测试(有效性测试/功能测试)确认测试常用测试类型:•功能测试•容量测试大数据量•紧张度测试峰值•使用性测试用户界面是否合理?风格是否统一?操作是否方便?出错信息是否简明易用?•安全性测试•可靠性测试•恢复测试•文档测试确保用户文档的精确性和清晰性,确保叙述正确无误•工序测试与人工工序的配合情况软件测试三维视觉硬科技2810.测试类型:确认测试(有效性测试/功能测试)确认测试测试步骤:•有效性测试制定测试计划,运用黑盒法,验证软件特性是否与需求符合。•软件配置复查软件配置是指软件工程过程中所产生的所有信息项文档、报告、程序、表格、数据。随着软件工程过程的进展软件配置项(SCIsoftwareConfigurationItem)快速增加和变化。应复查SCI是否齐全。软件测试三维视觉硬科技2910.测试类型:确认测试(有效性测试/功能测试)确认测试测试步骤:•测试和测试测试:是在开发机构的监督下,由个别用户在确认测试阶段后期对软件进行测试,目的是评价软件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持),注重界面和特色。测试:由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性。FunctionTesting功能测试LocalAreaTesting局域化测试UsabilityTesting可使用性测试RegressionTesting回归测试PerformanceTesting性能测试SupportabilityTesting可支持性测试软件测试三维视觉硬科技3010.测试类型:系统测试将经过确认测试的软件,与计算机硬件、外设、支持软件等一起,在实际运行环境下测试。软件测试三维视觉硬科技3110.测试类型:验收测试验收测试是以用户为主的测试。软件测试三维视觉硬科技3211.测试的基本方法白盒法黑盒法软件测试三维视觉硬科技3311.测试的基本方法一、概念黑盒测试(又称功能测试,数据驱动测试,基于规格说明书的测试)将被测试程序对象看作黑盒子,不考虑其内部程序结构与处理过程,仅仅对于程序接口进行测试。即检查适当的输入是否能够产生适当的输出。白盒测试(又称结构测试,玻璃盒测试,基于覆盖的测试)分析程序结构与过程执行路径,按照程序内部的逻辑结构设计测试用例,检验程序的每条通路是否按预期正常进行,力求提高测试覆盖率。软件测试三维视觉硬科技3411.测试的基本方法二、比较1.黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。2.白盒测试是根据程序内部逻辑结构进行测试。软件测试三维视觉硬科技3511.测试的基本方法三、结论不论黑盒还是白盒测试都不能进行穷尽测试,所以软件测试不可能发现程序中存在的所有错误,因此需精心设计测试方案,力争尽可能少的次数,测出尽可能多的错误。软件测试三维视觉硬科技3611.测试的基本方法:白盒法•基于白盒法的测试思想:-分析被测程序的逻辑结构,选择逻辑执行路径子集设计测试方案。•选择路径子集的覆盖标准:-逻辑覆盖法:1.语句覆盖(点覆盖)2.判定覆盖3.条件覆盖4.判定/条件覆盖5.条件组合覆盖-路径测试法:1
本文标题:软件测试&硬件测试-chss
链接地址:https://www.777doc.com/doc-4004799 .html