版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件质量保证与测试第10章软件测试组织和管理SoftwareQualityAssuranceandTesting
10.2过程和进度管理软件测试项目过程的生命周期测试需求分析测试计划测试设计测试开发测试执行和记录测试总结和报告
一个软件测试项目,其过程可以划分为6个环节,它们是:测试需求分析、测试计划、测试设计、测试执行与记录、测试总结和报告。测试需求什么是测试需求?所谓的测试需求就是在软件测试项目中,要测试的内容是什么。在测试活动中,首先需要明确测试需求(What),才能决定怎么测(How),才能估算需要多少测试时间(When)、需要多少人(Who),才能确定测试的环境是什么(Where)、测试中需要的技术工具和背景知识、测试中可能遇到的风险等等,可以说测试需求是测试工作的起点和基础。测试需求分析为什么要做测试需求分析?测试需求分析就是要通过分析来明确,在软件测试项目中要测试哪些东西。测试需求越详细精准,表明对所测软件的了解越深,对所要进行的任务内容就越清晰,就更有把握保证测试的质量与进度。测试需求的获取获取测试需求的途径主要有以下几种由软件文档获取例如,我们要对一个软件进行系统测试,那么具体要测试哪些方面、哪些内容呢?这可以从软件的系统规格说明书等文档中来获知。系统规格说明书中明确的软件功能、性能指标等就是测试的需求,需要通过测试来逐一验证软件已经实现这些功能,达到相应的性能指标。测试需求的获取由测试任务发布方提供即发布测试任务的一方会明确要测试哪些内容,达到是么样的测试目标。根据实际软件归纳有时缺乏被测软件的相关文档,事先也没有明确的测试要求,此时可以根据软件的实际情况来归纳测试需求,并完成测试。测试需求的获取基于类似软件获得例如一个评测机构需要测评某银行的APP,正好前面测试过另外一家银行类似的APP,那么可以在前面的测试需求基础上来获得本次的测试需求。应对软件测试需求进行分类、细化和文档化,以作为后续工作的基础,类似于软件开发项目中的软件需求。测试计划测试计划就是对所有要完成的测试工作及相关事项的事先规划和描述,包括被测试项目的背景,测试目标、范围、方式、资源,测试的进度安排和组织,以及与测试有关的风险等方面。测试计划的作用制定软件测试计划的作用体现在以下几个方面:1.使软件测试工作有据可依,资源合理配置、人员明确分工,进度有序安排,测试工作能够按部就班,进行顺利2.使软件测试工作有章可循,更易于管理。例如定期按计划组织检查督促等。测试计划的作用3.促进项目参加人员彼此之间的沟通,分工合作
一些重要的事项需要在测试计划文档中明确下来,作为参加人员彼此之间的沟通的依据,防止出现表达不明确、理解不一致等4.及早发现和改正软件测试工作中的问题和偏差,如测试项目经费是否大于等于所需成本、项目进展是否滞后等。测试计划中的基本要素测试计划中一般应当有测试目标、测试范围、测试策略、测试配置、人员组织、测试进度安排、测试标准、风险分析等内容要点。测试计划中的基本要素序号条目内容1测试概要摘要说明所需测试的软件、名词解释以及所参考的相关文档。2测试目标对测试目标进行简要的描述。3测试范围测试计划所包含的测试软件需测试的范围和优先级,哪些需要重点测试、哪些无需测试或无法测试或推迟测试。4测试策略针对每个范围内的要素和内容,制定测试策略、选择所使用的测试技术和方法。5重点事项列出需要测试的软件的所有的主要功能和测试重点,这部分应该和测试用例设计相对应,并互相检查。6测试配置测试所需要的软硬件、测试工具、必要的技术资源、培训、文档等。7人员组织需要什么样的人进行测试,多少人测试,各自的角色和责任,需要进行哪些学习和培训。8沟通方式测试组内部、测试与开发组之间使用什么样的工具、标识和频度进行沟通和确认。9测试进度将测试计划合理分配到不同的测试人员,并注意先后顺序。对于长期大型的测试计划,可以使用里程碑来表示进度的变化。10测试标准测试开始、完成、延迟以及继续的标准,包括制定测试开始和完成的标准;某些时候,测试计划会因某种原因(过多阻塞性的Bug)而导致延迟,问题解决后测试继续。11发布提交在按照测试计划进行测试发布后需要交付的软件产品、测试用例、测试数据及相关文档。12风险分析需要考虑测试计划中可能的风险和解决方法。测试设计软件测试的方法和技术有很多,针对某一个具体的测试项目或者测试问题,需要合理的选择测试方法、运用测试技术、设计测试用例。测试设计的工作内容就是分析明确应当运用哪些测试方法和技术、设计哪些测试用例来完成测试任务、达到测试目的,并尽可能节约测试成本。测试设计例如,为完成某一测试任务,测试团队A设计了2万个测试数据;团队B设计了1万个测试数据。如果他们设计的测试数据执行后,确实都能完成测试任务、达到测试目的,那么我们可以说,团队B的设计好于A,因为团队B的测试执行成本大约只有A的一半。
在进行测试设计的时候,不仅要考虑软件使用时的一般情况、还要重点考虑可能的情况、特殊的情况和异常的情况;要注意综合考虑多种测试方法和技术,取长补短,合理运用;要提高测试的完备性、针对性和有效性。可以对测试设计进行优化,统计覆盖率,去除冗余,并对测试设计进行评审,通过评审后才进入后续的执行环节,以确保测试设计的质量。测试设计
测试开发主要是为了实现测试过程的自动化执行,要在测试工具平台,或者编程环境下,开发测试脚本或者控制测试过程的程序代码。随着测试复杂度、专业化程度、自动化程度的不断提高,测试开发在软件测试工作中的重要性以及所占的比重都越来越大。
测试开发在单元测试中,可能需要用Junit编写测试脚本。例如,这是一段
Junit测试脚本。测试开发publicclassNextdayTest{Nextdaynextday; @BeforepublicvoidsetUp(){ nextday=newNextday(); }@TestpublicvoidtestYear(){ Yearyear; try{ year=newYear(0); fail("Thereshouldbeanexception"); }
......
......
在黑盒测试中,可能需要开发自动化功能测试脚本。例如,这是一段RationalFuctionTester脚本。测试开发......
......startApp("ClassicsJavaA");tree2().click(atPath("Composers->Bach->Location(PLUS_MINUS)"));tree2().click(atPath("Composers->Bach->ViolinConcertos"));placeOrder().click();rememberPassword().performTest(RememberPassword_textVP());ok().drag();quantityText().click(atPoint(35,15));placeAnOrder().inputKeys("{ExtHome}+{ExtEnd}{ExtDelete}{Num1}{Num0}");cardNumberIncludeTheSpaces().click(atPoint(81,5));......
......
另外,在所需测试数据很多的情况下,也可以开发相应的脚本或者程序,自动化生成一部分测试数据,以减轻测试数据生成的工作负担。例如,要对某管理信息系统进行测试,需要5万条测试数据,可以先开发一个程序,基于原有数据库或者完全自动生成一个测试数据集,在此基础上再来选择所需测试数据。测试开发
测试执行是指搭建好测试环境,借助测试工具等,具体去执行实际的测试过程。搭建良好的测试环境是执行测试的前提。测试环境可分为硬件环境和软件环境。硬件环境包括测试必须的计算机,服务器等;软件环境包括数据库,操作系统,被测试软件,辅助软件等;有时还要考虑网络环境,比如网络带宽,IP地址设置等。搭建的测试环境要和测试执行所要求的环境相一致,否则将严重影响测试执行的结果,甚至导致测试无效,其结果没有意义。测试执行和记录要注意测试用例的前提条件和特殊规程说明。因为有些测试流程是有顺序性的,相应地,测试用例会有一些执行前提或特殊说明。如果忽略这些内容,可能会导致测试用例无法执行。测试用例要按步骤全部执行,每个测试用例至少执行一次,这样才能保证测试的覆盖度。因为每个测试用例都是有其作用的,都可以对应到测试需求所要求的某个测试点。测试执行和记录测试执行时需要记录执行过程,并仔细对比实际输出和测试用例中的预期输出是否一致。当然,有的测试工具可以自动记录执行过程并对比结果,这样可以减轻很多工作量。例如,这是一段自动化测试工具的日志,它记录并对比了测试结果。测试执行和记录+++通过2017年6月8日下午04时56分03秒验证点[确定Enter_standard]通过。 vp_type=object_property name=确定Enter_standard script_name=Script3 line_number=32 script_id=Script3.java baseline=resources\Script3.确定Enter_standard.base.rftvp expected=Script3.0000.确定Enter_standard.exp.rftvp如果结果不一致,要从多个角度多测试几次,尽量详细地记录软件出错的位置、输入的数据和出错的症状。不要放过任何偶然现象。测试时可能会发现某个测试用例执行后软件出错了,但是再次执行时该错误又不再重现。这样的错误才是隐藏最深、最难发现的错误。出现这种情况时,要仔细分析,不要放过任何细节,多测试几次,确认错误是否存在,触发的条件是什么。测试执行中有不明确的地方应与开发人员良好的沟通。最后,应把测试发现的问题详细的写到测试报告中去。测试执行和记录满足以下条件中的一个或者多个,测试可以停止。测试用例全部执行通过;测试需求覆盖率达到100%;已验证系统满足产品需求规格说明书的要求。在测试中发现的缺陷已得到修改,各级缺陷修复率达到规定的标准;缺陷密度(n个/KLOC)符合软件要求的范围。测试执行和记录测试执行完毕后,要对测试结果进行汇总、统计分析,并完成测试报告。测试总结和报告首先要进行缺陷的汇总,明确共发现了哪些缺陷,给出详细的缺陷报告,统计缺陷的分布情况。例如,这是对某小型软件测试后的缺陷分布统计图。其次,要分析测试的覆盖度,以明确测试的完全程度。可以用对测试需求、可执行代码的覆盖率或者对某种测试标准的覆盖率来表示。如:测试需求覆盖率100%,可执行代码覆盖率100%,条件组合覆盖率90%等。第三,要对软件进行质量评测,它是对被测试对象的功能、性能、可靠性、稳定性等的评价。质量评测建立在对测试结果的评估和对测试确定的缺陷及缺陷修复的分析等基础之上,应当是可信和有说服力的。测试总结和报告测试进度管理主要就是按照测试项目生命周期,依据测试计划,在测试实施过程中,不断检查测试工作的进展情况,发现与计划的偏离。例如检查测试设计的完成情况,检查测试用例的执行比例,检查测试的覆盖率等。如果测试工作进展明显滞后于计划,需要分析原因,找到对策,以免影响整个软件项目的交付。测试进度管理软件测试成熟度模型对于软件过程,美国卡内基-梅隆大学软件工程研究所(SEI)研制并推出了软件能力成熟度模型SW-CMM,CMM逐渐成为了评估软件开发过程的管理以及工程能力的标准。但是令人遗憾的是,CMM没有充分的定义软件测试,没有提及测试成熟度的概念,没有对测试过程改进进行充分说明。仅在第三级的软件产品工程(SPE)KPA中提及软件测试职能,但对于如何有效提高机构的测试能力和水平没有提供相应指导。研究机构和测试服务机构从不同角度出发提出有关软件测试方面的能力成熟度模型,作为SEI-CMM的有效补充。美国国防部提出了CMM软件评估和测试KPA建议。Burnstein博士提出了测试成熟度模型(TMM),依据CMM的框架提出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年深圳中考英语核心考点密押试卷(附答案可下载)
- 口试英语题目及答案
- 2026年大学大二(健康促进)社区健康促进方案制定综合测试题及答案
- 2026年深圳中考数学统计与概率专项试卷(附答案可下载)
- 2026年深圳中考生物绿色植物的光合作用试卷(附答案可下载)
- 色彩冷门考题题库及答案
- 静脉曲张术后早期护理
- 2026年深圳中考地理二模仿真模拟试卷(附答案可下载)
- 发展经济学经济发展的质量和方式
- 2026年食品营养与健康中级水平笔试模拟题及答案
- 交通安全志愿者培训课件
- 化工防止静电安全培训课件
- 【高三上】2026届12月八省联考(T8联考)语文试题含答案
- 护理不良事件根本原因分析
- AI药物研发中的伦理风险防控
- 社会心理学考试题及答案
- 医疗器械经营企业质量管理体系文件(2025版)(全套)
- 出铁厂铁沟浇注施工方案
- 2025年中小学教师正高级职称评聘答辩试题(附答案)
- 现代企业管理体系架构及运作模式
- 2025年江苏省泰州市保安员理论考试题库及答案(完整)
评论
0/150
提交评论