软件质量保证与测试课后作业

一、还知道哪些由于软件缺陷导致损失的例子?

1.致命的辐射治疗,辐射剂量超标的事故发生在2000年的巴拿马城(巴拿马首都)。从美国Multidata公司引入的治疗规划软件,其(辐射剂量的)预设值有误。有些患者接受了超标剂量的治疗,至少有5人死亡。后续几年中,又有21人死亡,但很难确定这21人中到底有多少人是死于本身的癌症,还是辐射治疗剂量超标引发的不良后果。

2. 消失在太空,在制造其火星气候轨道探测器时,一个NASA的工程小组使用的是英制单位,而不是预定的公制单位。这会造成探测器的推进器无法正常运作。正是因为这个 Bug,1999年探测器从距离火星表面130英尺的高度垂直坠毁。此项工程成本耗费3.27亿美元,这还不包括损失的时间(该探测器从发射到抵达火星将近一年时间。)

3.英特尔奔腾芯片缺陷,如果在计算机的“计算器”中输入以下算式:(419583/3145727)X3145727-4195835结果显示为零。而在1994年,结果可能为其他答案,这就是英特尔(Intel)奔腾(Pentumn)CPU芯片所带来的一个浮点触发缺陷。英特尔为此付出了4亿多美元的代价;

4. 一触即发的第三次世界大战,1980年,北美防空联合司令部曾报告称美国遭受导弹袭击。后来证实,这是反馈系统的电路故障问题,但反馈系统软件没有考虑故障问题引发的误报。1983年,苏联卫星报告有美国导弹入侵,但主管官员的直觉告诉他这是误报。后来事实证明的确是误报。幸亏这些误报没有激活“核按钮”。在上述两个案例中,如果对方真的发起反击,核战争将全面爆发,后果不堪设想。通过以上的例子,可以看出软件发生错误时对人类生活所造成的各种影响,有的甚至会带来灾难性的后果。软件测试可以使这种风险降低,它在一定程度上解放了程序员,使他们能够更专心于解决程序的算法效率。同时它也减轻了售后服务人员的压力,交到他们手里的程序再也不是那些“一触即死机”的定时炸弹,而是经过严格检验的完整产品。同时,软件测试的发展对程序的外形、结构、输入和输出的规约和标准化提供了参考,并推动了软件工程的发展。

5. 2009年2月份Google的Gmail故障2009年2月份Google的Gmail故障,Gmail用户几小时不能访问邮箱,应该算是最近因软件故障而受到广泛关注的事件。据Google后称,那次故障是因数据中心之间的负载均衡软件的Bug引发的。360问题和Gmail故障还仅是导致用户不能正常使用电脑或几个小时内无法访问邮箱,并没有造成伤亡。当然了,对某些用户来讲,是非常不便。

二、通过观看【海尔质量宣传片】结合课堂老师讲的软件质量管理与控制等内容进行分析,说出自己的理解与感想。

海尔在质量管理方面主要采取严格的的科学管理方式,制定了符合实际情况的规章制度,做到有章可依,并严格执行,强化管理,强制提高。为了实现质量管理这一企业的核心职能,海尔建立了全面质量审核体系,各个事业部都设立了具有国际先进水平的质量审核机构——质量分析室,质量管理保障工作不仅是质管处、质检处等职能部门的工作,而且贯穿于整个业务流程中,由各相关部门通力合作。

那么什么是软件质量?软件质量:与软件产品满足明确或隐含需求的能力有关的特征和特征的总和,它反映了三个方面的问题:1、能满足客户需求的特性之全体;2、利用各种质量标准体系,指导软件开发人员开发软件;3、是否满足用户隐含需求。软件质量管理的目的是建立对项目的软件产品质量的定量理解,和实现特定的质量目标;着重于确定软件产品的质量目标、制定达到这些目标的计划,并监控及调整软件计划、软件工作产品、活动及质量目标以满足顾客及最终用户对高质量产品的需要及期望。

人类在同时面临更多更复杂的东西的时候,往往就会显得更加吃力,也更容易犯错误。一开始部门老大给我们设定函数圈复杂度标准的时候,我也是有些不解,特别是修改别人圈复杂度很高的函数,有时候甚至是一种负担,但后来越发体会到,合理的复杂度确实能要我们少犯些错误,而且定位问题和走读代码也会更加清晰。代码大全的作者甚至认为软件的首要技术使命就是管理复杂度。应注重软件质量管理与控制。

三、根据自身软件编程经验和学习的知识点,阐述软件能力成熟度模型(CMM)的特点与其重要性。

软件能力成熟度模型(Capability Maturity Model,CMM)是一种用于评估组织在软件开发方面的能力和成熟度的框架。它最初由美国国防部在20世纪80年代初开发,用于评估其合同伙伴在软件开发方面的能力。CMM主要是以评估组织软件开发过程中的能力,以及建立一个成熟度级别的标准来指导组织如何改进其软件开发过程。

(1)CMM的特点包括:

1.成熟度级别:CMM将软件开发组织的成熟度划分为五个级别,从初始级别到优化级别,每个级别都有一组指标和实践,组织可以根据这些指标和实践来改进其软件开发过程。

2.连续改进:CMM是一个连续改进的模型,组织可以根据自己的需求和目标选择适当的级别,并通过实施相应的实践逐步提高其软件开发过程的能力和成熟度。

3.标准化:CMM为软件开发过程提供了一种标准化的方法,使得组织能够评估其软件开发能力,并确定其软件开发过程的弱点和改进方向。

4.实践导向:CMM注重实践,每个级别都有一组实践,组织需要实施这些实践来达到相应的级别。

(2)CMM的重要性在于:

1.提高软件开发过程的效率和质量:CMM可以帮助组织识别其软件开发过程中的问题和风险,指导组织改进其软件开发过程,从而提高软件开发过程的效率和质量。

2.降低软件开发成本:CMM可以帮助组织优化其软件开发过程,减少重复工作和错误,从而降低软件开发成本。

3.提高客户满意度:CMM可以帮助组织提高软件开发过程的可预测性和可重复性,从而提高客户满意度。

4.帮助组织在市场竞争中占据优势:CMM可以帮助组织提高其软件开发过程的能力和成熟度,从而在市场竞争中占据优势。

四、阐述软件全面质量管理的思想体系,并举例说明一下6σ在软件设计和编程中的一些具体实践。

软件全面质量管理(Software Total Quality Management,STQM)是一种系统性的、全面的软件质量管理思想,旨在实现对软件生命周期的全面管理,从而提高软件的质量和客户满意度。其思想体系包括以下几个方面:

1.过程管理:通过对软件生命周期中的各个过程进行管理,确保每个过程都能够高质量地完成,并不断地改进和优化过程,以提高软件质量。

2.风险管理:通过对软件开发和维护过程中的各种风险进行识别、评估和控制,以降低风险对软件质量的影响。

3.绩效管理:通过对软件开发团队和个人的绩效进行评估和激励,促进他们的工作质量和效率,提高软件质量。

4.客户满意度管理:通过了解客户的需求和反馈,持续改进和优化软件产品和服务,提高客户满意度。

6σ(Six Sigma)是一种以减少缺陷为目标的质量管理方法,其核心思想是通过系统地分析和改进过程,将缺陷率控制在每百万次操作中不超过3.4次,从而实现产品和服务的高质量。在软件设计和编程中,6σ可以采用以下一些具体实践:

1.缺陷管理:采用6σ的缺陷管理方法,将缺陷率控制在每百万次操作中不超过3.4次,通过持续的缺陷分析和改进,提高软件质量。

2.测试管理:采用6σ的测试管理方法,将测试过程系统化、标准化、自动化,提高测试覆盖率和准确性,降低缺陷率。

3.过程改进:采用6σ的过程改进方法,对软件生命周期中的各个过程进行分析和改进,优化软件开发流程和工具,提高软件质量和开发效率。

4.数据分析:采用6σ的数据分析方法,通过统计和分析软件开发过程中的各种数据,发现和解决问题,提高软件质量和开发效率。

5.设计思维:采用6σ的设计思维方法,通过用户需求分析、创新思考和迭代设计,开发出更符合用户需求和期望的软件产品和服务。

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神度♬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值