测试理论----软件开发模型

简介: 测试理论----软件开发模型

【原文链接】

1、瀑布模型

(1)瀑布模型如下

在这里插入图片描述

(2)瀑布模型的缺点:

在瀑布模型中,测试是在编码结束后才介入,对软件开发流程前期质量是没有保障的

(3)采用瀑布模型的场景:

对于容易理解、需求稳定的项目,采用瀑布模型是比较适合的

2、敏捷开发简介

(1)敏捷开发的核心是迭代开发和增量开发
(2)敏捷开发的好处:

1)早起交付
2)降低风险

(3)敏捷开发每个迭代都需要依次完成以下步骤:

1)需求分析
2)设计
3)编码
4)测试
5)部署和评估

3、敏捷开发的核心要点

(1)三大核心角色:Product Owner,Scrum Master,Scrum Team

1)Product Owner:主要负责确定产品的功能和达到的要求的标准,指定软件的发布日期和交付内容
2)Scrum Master:主要负责整个流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,是的客户可以直接驱动开发
3)Scrum Team:主要负责流程下开发工作,人数控制在5-10人左右,每个成员可负责不同的技术方面,但要求每个成员必须要有很强的自我管理能力,同时具有一定的表达能力,成员可以采用任何工作方式,只要能达到Sprint的目标即可

(2)三个工件:

1)产品代办事项(Product Backlog)
2)迭代待办事项(Sprint Backlog)
3)可交付产品增量(Increment)

(3)五大会:

1)需求澄清会
由PO澄清需求,测试和开发参与理解,并反串讲,从而达到测试和开发与PO的需求理解达成一致
2)迭代计划启动会
制定本迭代的计划,SM拆解任务,团队成员领取迭代任务
3)每日站会
每天早晨站会,一般10-15分钟,每个人总结一下昨天的进展、难点、求助,以及今天的计划等,对齐进展,由SM组织
4)迭代验收会
对迭代开发的需求进行验收,有PO和测试进行验收
5)迭代回顾会
总结迭代中做的好的和不好的,对于好的继续保持,对于不好的在后续迭代需要进行改进

(4)12原则:

1)我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
2)欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
3)要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
4)项目过程中,业务人员与开发人员必须在一起工作。
5)要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
6)无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
7)可用的软件是衡量进度的主要指标。
8)敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
9)对技术的精益求精以及对设计的不断完善将提升敏捷性。
10)要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
11)最佳的架构、需求和设计出自于自组织的团队。
12)团队要定期反省如何能够做到更有效,并相应地调整团队的行为。

(5)敏捷开发工作流程

1)PO按照优先顺序排序确认一个产品需求列表
2)开发团队根据产品需求列表,做工作量评估和安排
3)迭代启动会从产品需求列表中挑选出本迭代需要完成的Story,迭代周期一般1-4周,然后将Story进行细化,形成本迭代的任务列表
4)敏捷开发团队根据迭代任务继续细分为更小的任务,每个任务的工作量在2天以内,并将所有的小任务用小纸片贴在敏捷开发看板上
在这里插入图片描述

5)每日站会上每个成员要汇报昨天完成的任务,今天将要完成的任务,同时更新敏捷看板上的任务纸片状态,同时如果遇到困难也可以在团队内求助,团队是一个整体,在迭代结束时需要将左侧计划中的任务列表全部完成
6)每日集成,做到每天都有一个可以成功编译演示的版本
7)当迭代结束时,在迭代验收会上,每个成员需要演示自己负责的功能以及测试过程,由PO和测试人员验收
8)迭代回顾会上,每个人可以发言,讨论本迭代做的好的和不好的地方,对做的不好的地方,整理出改进措施,并放入下个迭代的任务列表中,对于做的好的地方,如果由其中一位或几位成员主导,可以对其进行表扬等

目录
相关文章
|
11天前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
30 1
|
28天前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
5月前
|
测试技术 开发者 UED
自动化测试在软件开发中的重要性
在当今快速发展的软件行业中,软件质量成为了决定产品成功与否的关键因素之一。而自动化测试作为提高软件质量和加速软件开发过程的重要手段,正受到越来越多软件开发者的青睐。本文将从自动化测试的定义、优势以及实施过程中的注意事项等方面进行探讨,旨在帮助读者更好地理解和应用自动化测试在软件开发中的重要性。
|
9天前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
2月前
|
运维 测试技术
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
测试与开发问题之测试开发工程师与软件开发工程师和测试工程师如何区别
|
2月前
|
机器学习/深度学习 人工智能
高于临床测试3倍准确率!剑桥大学开发AI模型,提前6年预测阿尔茨海默症
【8月更文挑战第9天】剑桥大学研发的人工智能模型在预测阿尔茨海默症方面取得突破,准确率比传统临床测试高三倍,能提前六年预测疾病发生。该模型基于深度学习,利用大量临床及神经影像数据识别生物标志物,预测准确性达80%。这一成果有望促进早期干预,改善患者预后,但仍需更大规模研究验证,并解决隐私与公平性等问题。论文已发表于《The Lancet》子刊。
39 6
|
3月前
|
机器学习/深度学习 存储 数据可视化
谷歌的时间序列预测的基础模型TimesFM详解和对比测试
在本文中,我们将介绍模型架构、训练,并进行实际预测案例研究。将对TimesFM的预测能力进行分析,并将该模型与统计和机器学习模型进行对比。
129 2
|
2月前
|
大数据 测试技术
自动化测试在软件开发中的重要性
【8月更文挑战第6天】自动化测试作为软件开发过程中不可或缺的一环,能够显著提高软件质量,缩短交付周期,降低整体成本。随着技术的不断发展,自动化测试在各类软件项目中的应用也必将越来越广泛和深入。合理规划和实施自动化测试,将成为软件开发团队提升竞争力的关键所在。
|
2月前
|
机器学习/深度学习 数据采集 测试技术
利用Python实现简单的机器学习模型软件测试的艺术与科学:探索自动化测试框架的奥秘
【8月更文挑战第27天】在本文中,我们将一起探索如何通过Python编程语言创建一个简单的机器学习模型。我们将使用scikit-learn库中的线性回归模型作为示例,并通过一个实际的数据集来训练我们的模型。文章将详细解释每一步的过程,包括数据预处理、模型训练和预测结果的评估。最后,我们会用代码块展示整个过程,确保读者能够跟随步骤实践并理解每个阶段的重要性。
|
3月前
|
测试技术 持续交付 开发者
探索自动化测试在持续集成中的应用及其对软件开发生命周期的影响
本文将深入探讨自动化测试在现代软件开发中的核心地位,特别是其如何与持续集成(CI)流程紧密结合,以提升软件交付的速度和质量。文章首先概述了自动化测试的基本概念和类型,随后分析了自动化测试在持续集成环境中的关键作用,包括提高测试效率、确保代码质量、促进团队协作等方面。最后,通过具体案例分析,展示了自动化测试实施的策略和挑战,以及它如何优化软件开发生命周期。本文旨在为软件测试工程师和开发团队提供实践指南,帮助他们更好地理解和应用自动化测试技术。
46 10
下一篇
无影云桌面