软件测试与质量保证课程结业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试与质量保证课程结业论文
1、依据如下提供的程序流程图,将其转化为N-S图,计算实现逻辑覆盖所需要的最少测试
用例数量。并设计一套完整的测试用例。其中X,Y均为整数。
N-S图转换如下:
测试用例:
1)C语言源代码:
#include
void main()
{ if(X>8 && Y>5)
if(X>16 || Y>10) 引用语句3;
else { if(X>0 || Y>0) 引用语句2;
else 引用语句1;
}
}
2)控制流图:
3)圈复杂度:边-结点+2=12-10+2=4
4)导出测试用例,可得出四个独立路径:
① 4-5-6-11-12
② 4-7-8-9-11-12
③ 4-7-8-10-11-12
④ 4-5-11-12
浅谈:软件测试与项目管理
随着信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其它的责任风险,造成公司信誉下降。在一些关键应用中使用质量有问题的软件,还可能造成灾难性的后果。因而软件的质量愈来愈受到广泛的重视。
软件测试是分析者用来发现软件缺陷的有组织的过程。你可能会问,什么是缺陷?缺陷是代码中导致软件应用中断的问题。没有任何软件是完全无缺陷的,测试者的目标是减少在
项目中找到的缺陷,并且将质量灌输到软件应用中。软件测试包括检验软件不能满足用户需求规格说明中描述的需求及不能满足用户所需的过程。软件测试者通过分析软件来获知软件是否符合用户的期望。软件测试是一种设计来适当保障软件符合用户所需质量的活动。
软件需求规范一旦被产出,测试人员就“测试”文档确认需求是否完整、正确、一致,和可被测试。在一个敏捷的环境中,软件需求一旦编写出来就会被测试。在瀑布式的软件开发生命周期中,软件需求规范先被编写出来,然后测试它的完整性、正确性、一致性和可测试性。完整性通过需求是否能告诉你在哪里测试、如何测试及要测试什么来衡量。正确性意味着你知道要测试的应用的一些方方面面。你必须对你要测试的软件有些了解,才能知道需求是否正确。一致性是指需求中不存在逻辑缺陷。可测试的需求是指一份你可以为它编写测试案例的需求。
软件测试在软件生命周期中占有非常重要的地位,是保证软件质量的重要手段。根据Boehm的统计,软件开发总成本中,用在测试上的开销要占40%~50%。现代软件测试不仅仅是在软件开发完成以后来做测试工作,而是将测试渗入到软件开发的各个阶段,全程控制软件质量。因而,为保证软件项目按时、保质在预算范围内完成,加强对测试工作的组织和科学的管理就显得尤为重要。
项目管理就是以项目为对象的系统管理方法。通过一个临时性的、专门的柔性组织,对项目进行高效率的计划、组织、指导和控制,以实现项目全过程的动态管理和项目目标的综合协调与优化。项目管理从其本质上讲是一个不断整合和平衡的过程,因而非常适合软件测试这种不定因素很多的项目。
软件测试项目常常不能令客户或开发方满意,其症结体现在多个方面,而解决这些问题需要运用项目管理的方法和理论指导。从知识领域来说,项目管理包含整体管理、范围管理、质量管理、时间管理、沟通管理、成本管理、人力资源管理、风险管理、采购管理9大知识体系。软件测试涉及客户、开发人员、测试人员三方的沟通交流不够、交流上有误解或者根本不进行交流。测试人员通常对软件测试复杂性估计不足,图形用户界面、分布式应用、数据通信、超大型关系型数据库以及庞大的系统规模等众多因素导致软件及系统的复杂性呈指数增长,从而对应的测试工作也需要分层次、分阶段进行。而软件项目的日程表也很难做到准确,很多时候需要预计和猜测,当最终期限迫近和关键时刻到来之际,主管人员首先考虑的是压缩测试项目时间。测试过程中,需求通常会发生变化使得是测试人员的日程需要重新安排,对其它项目产生影响。随着软件复杂程度的加深,软件体系越来越庞大,软件测试工具在某些测试中是不可或缺的,那么采购管理也是必需的。另外,软件项目计划阶段低估测试子项目的费用,测试人员专业水平不如开发人员,脚本的重用性差、缺陷跟踪,需要软件测试强调成本管理、人力资源管理、质量管理与风险管理。
采用项目管理技术,软件测试工作有更好的工作能见度,对不同的工作任务可改进协调和控制,能够缩短产品开发时间,能够减少总计划费用,提高利润率,可保证项目成员有较高的工作热情和较明确的任务方向,广泛的项目职责能够加速管理人员的成长,实现较好的项目安全控制。
项目管理标准化测试流程
从概念上讲,软件测试的项目管理是指为了使软件测试项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。它关注的是子系统中人员、过程、产品三要素的互动与变化,子系统内部各过程的相互关联、相互作用以及测试管理子系统与开发管理子系统的相互关联、相互作用。
软件测试中的项目管理,特别强调工作分解结构的合理性、项目测试文档的规范、良好的沟通机制与项目成员沟通能力、项目管理工具和测试工具的作用。工作分解结构(WBS),是进行范围规划时所使用的重要工具和技术之一,是面向可交付成果的对项目元素的分组,它组织并定义了整个项目范围,未列入工作分解结构的工作将排除在项目范围之外。它是项目团队在项目期间要完成或生产出的最终细目的等级树,所有这些细目的完成或产出构成了整个项目的工作范围。进行工作分解是非常重要的工作,它在很大程度上决定项目能否成功。
通常,每个测试过程有5个基本测试文档:测试计划指明测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档;测试方案指明为完成软件或软件集成特性的测试而进行的设计测试方法的细节文档;测试用例指明为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;测试规程指明执行测试时测试活动序列的文档;测试报告指明执行测试结果的文档。
测试项目计划的整体目标是为了确定测试的任务、所需的各种资源和投入、预见可能出现的问题和风险,以指导测试的执行,最终实现测试的目标,保证软件产品的质量。制定测试计划,要达到的目标有:
1)制定一个现实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果;
2)为项目实施建立一个组织模型,并定义每个角色的责任和任务;
3)开发有效的测试模型,能正确地验证正在开发的软件系统;
4)确定测试所需要的时间和资源,以保证其可获得性、有效性;
5)确立每个测试阶段测试完成以及测试成功的标准、要实现的目标;
6)识别出测试活动中各种风险,并消除可能存在的风险,降低那些不可能消除的风险所带来的损失。
在软件测试项目中,许多专家都认为:对于成功,最大的威胁就是沟通的失败。软件测试项目成功的三个主要因素是用户的积极参与、与开发项目组的协调配合和管理层的大力支持。三要素全部依赖于良好的沟通技巧。沟通管理的目标是及时并适当地创建、收集、发送、储存和处理项目的信息。有效的沟通管理能够创建一个良好的风气,让项目成员对准确地报告项目的状态感到安全,让项目在准确的、基于数据的事实基础上运行,而不会因为害怕报告坏消息而形成盲目乐观的氛围。
现代项目管理工具提供了项目管理理念和方法,可以使我们方便的完成项目管理的过程控制,进度、费用跟踪。软件测试工具在适合的项目中,可以大大减小工作量,并保证测试结果的准确性。
软件测试项目管理是一项系统工程,合同签订后,项目经理应拥有一定权利,并能及时调动企业资源,为项目的按时完成提供必要条件,即在项目成员、客户、开发经理、主管人员、服务商等之间定义明确的责权利关系。
我国在经过了软件产品无序竞争阶段,已经进入理性化竞争,各个企业都在强调软件质量,以保证质量作为企业生命线。在这样的大环境中,强调软件测试,突出软件测试管理,大胆地对软件项目分出软件测试子项目,并进行项目管理,将会得到企业领导的大力支持,并且,如果项目管理工作做到位,将产生事半功倍的效果。