0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

软件的生命周期计划阶段--需求分析

发表时间:2023-10-21 09:00:42

文章来源:炫佑科技

浏览次数:193

菏泽炫佑科技

软件的生命周期计划阶段--需求分析

目录

1. 软件生命周期

规划阶段()->需求分析()->设计阶段()->编码()->测试()->运维()

2. 软件生命周期及其模型

软件生命周期也称为软件生命周期、生存期。 是指从开发软件的概念形成,到开发出来的软件被使用后,直至失去使用价值而消亡的整个过程。 一般来说,整个生命周期包括六个阶段:问题定义和规划、需求分析/评审、软件设计、软件编码、测试阶段、运维。 每个时期又分为几个阶段。 每个阶段都有明确的任务。

循环型号:

(1)快速原型模型:快速原型模型允许在需求分析阶段对软件需求进行初步但不完整的分析和定义,快速设计和开发出软件系统的原型,该原型显示出要开发的全部或部分软件。开发给用户。 功能和性能; 用户对原型进行测试和评估,并提供具体的改进建议,丰富和细化软件需求; 开发人员对软件进行相应的修改和改进,直到用户满意并认可为止,然后完成软件的实施、测试和维护。

(2)迭代模型:迭代包括产生产品版本(稳定的、可执行的产品版本)的所有开发活动以及使用该版本所需的所有其他外围元素。 在某种程度上,开发迭代是经历所有工作流程的完整过程:需求分析、设计、实现和测试工作流程。 本质上,它类似于一个小型瀑布项目。 RUP 相信所有阶段都可以分解为迭代。 每次迭代都会产生一个可交付的产品,它是*终产品的子集。

生命周期阶段:

(1)软件规划及可行性分析

(2)需求分析

(3)软件设计

(4) 编码

(5)软件测试

(六)运行维护

3.什么是软件测试? 软件测试的目的和原则是什么?

定义:

在规定的条件下运行程序,以发现程序错误、衡量软件质量、评价是否能够满足设计要求的过程。

目的:

(1)测试是程序的执行过程,目的是发现错误。

(2)软件测试是为了发现程序中的代码或业务逻辑错误。

自动化软件开发_自动软件开发模式_软件自动开发环境

(3)软件测试是检查产品是否满足用户需求。

(4)软件测试是为了改善用户体验。

原则:

(1)测试应尽早开始并干预(需求分析阶段)。

(2)所有测试应追溯到用户要求。

(3) 测试证明软件存在缺陷。

(4)无法进行详尽测试、无法进行完整测试、需要终止测试的。

(5) 80/20原则:测试中发现的错误80%可能源自20%的模块(缺陷存在于集群中)。

(6)错误结果需要有确认过程(详细的测试数据、截图、前提条件等)。

(7)制定严格的测试计划。

(8)妥善保存测试过程中的所有文件。

(9) 程序员尽量避免检查自己的程序。

(10)设计测试用例时,应考虑合法输入和非法输入。

4.什么是软件质量?

简而言之,软件质量是“软件符合显式和隐式定义的需求的程度”。

具体来说,软件质量是指符合明确规定的功能和性能要求、文档中明确描述的开发标准以及所有专业开发的软件。 软件应具有的隐含功能的程度。

影响软件质量的主要因素,这些因素是从管理角度衡量软件质量的指标。 它可以分为三组,反映了用户使用软件产品时的三种视角。

(1)正确性、稳健性、效率、完整性、可用性、风险(产品运行);

(2)可理解性、可维护性、灵活性、可测试性(产品修改);

(3) 可移植性、可重用性和互操作性(产品转移)。

5、软件产品的质量特点是什么?

软件自动开发环境_自动软件开发模式_自动化软件开发

功能:适应性、准确性、互操作性、合规性、安全性。

可靠性:成熟、容错、易于恢复。

易用性:易懂、易学、易操作。

效率:时间特征、资源特征。

可维护性:易分析、易更改、稳定、易测试。

便携性:适应性、易于安装、合规性和易于更换。

6、目前主要的测试用例设计方法有哪些?

白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖

黑盒测试:等价类划分、边界值分析法、误差猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法

7. 软件测试的策略是什么?

在一定的软件测试标准和测试规范指导下,根据测试项目的具体环境约束规定的软件测试原则、方法和方法的集合。

8、软件测试分为几个阶段。 每个阶段的测试策略和要求是什么?

测试过程将经历四个主要阶段:单元测试、集成测试、系统测试和验收测试。

(1)单元测试:单元测试是检查软件设计的*小单元——程序模块甚至代码段的正确性的测试工作,通常由开发人员进行。

(2)集成测试:集成测试是将模块按照设计要求组装起来进行测试。 主要目的是发现与接口相关的问题。 由于产品开发团队在将产品提交给测试部门之前必须进行联调,因此大多数公司的集成测试都是由开发人员完成。

(3)系统测试:集成测试通过后进行系统测试。 目的是对系统进行全面运行,验证各子系统是否能够正常工作,完成设计要求。 主要由检测部门进行。 它是检测部门规模*大、*重要的测试,对产品的质量有重大影响。

(4)验收测试:验收测试以需求阶段的《需求说明书》作为验收标准,测试时要求模拟实际用户的运行环境。 对于实际项目,可以与客户一起进行。 对于产品来说,这是*后一次系统测试。 测试内容是对功能模块的综合测试,特别是文档测试。

每个阶段的测试策略:

(1)单元测试测试策略:

1)自上而下的单元测试策略:它比孤立的单元测试昂贵得多,对于单元测试来说不是一个好的选择。

2)自下而上的单元测试策略:较为合理的单元测试策略,但测试周期较长。

自动软件开发模式_自动化软件开发_软件自动开发环境

3)隔离单元测试策略:*好的单元测试策略。

(2)集成测试的测试策略:

1)Big Bang :适合维护项目或被测系统较小。

2)自上而下的集成:适合产品控制结构比较清晰、稳定的; 高层接口变化不大; 低级接口未定义或可能经常被修改; 产品控制部件技术风险较大,需要尽快验证; 希望能够尽早看到产品的系统功能行为。

3)自下而上的集成:适应下层接口比较稳定; 高层接口变化更加频繁; 较低级别的组件较​​早完成。

4) 基于进度的整合:

优点:并行度高; 可以有效缩短项目的开发进度。

缺点:存根和驱动工作量较大; 部分接口测试不充分; 有些测试是重复的并且是浪费的。

(3)系统测试的测试策略:

数据和数据库完整性测试; 功能测试; 用户界面测试; 绩效衡量; 负载测试; 强度测试; 容量测试; 安全和访问控制测试; 故障转移和恢复测试; 配置测试; 安装测试; 加密测试; 可用性测试; 版本验证测试; 文档测试。

9、软件测试的各个阶段通常要做哪些工作? 每个阶段的结果文件是什么? 包括什么?

(1)单元测试阶段:每个独立的单元模块与系统的其他部分隔离进行测试。 单元测试对每个程序模块进行正确性检查,检查每个程序模块是否正确实现了指定的功能。 。 生成单元测试报告并提交缺陷报告。

(2)集成测试阶段:集成测试是在单元测试的基础上,在按照大纲的要求将所有软件单元组装成模块、子系统或系统的过程中,测试各部分的工作是否达到或达到相应的要求。设计指标。 技术规范和所需的活动。 在此阶段,生成集成测试报告并提交缺陷报告。

(3)系统测试阶段:通过确认测试的软件将以整个计算机系统为一个要素,结合计算机硬件、外设、某些支撑软件、数据和人员等其他系统要素,在系统中执行。实际运行环境,全面覆盖计算机系统的功能。 此阶段需要提交测试摘要和缺陷报告。

10、黑盒测试中常见的测试用例设计方法有哪些?

(1)等价类划分:

等价类是输入域的子集。 在这个子集中,每个输入数据在揭示程序中的错误方面都是等效的。 并且可以合理地假设测试等价类的代表值等同于测试该类的其他值。 因此,可以将所有输入数据合理划分为若干等价类,并以每个等价类中的一个数据作为测试的输入条件,从而可以利用少量有代表性的测试数据来获得较好的测试结果。

等价类划分可以有两种不同的情况:有效等价类和无效等价类。

(2)边值分析法:

它是对等价类划分方法的补充。

测试工作经验告诉我,大量的错误发生在输入或输出范围的边界处,而不是输入和输出范围内。 因此,为各种边缘情况设计测试用例可以检测到更多错误。 使用边界值分析方法设计测试用例时,首先应确定边界条件。 通常输入和输出等价类的边界是应该重点测试的边界条件。

软件自动开发环境_自动化软件开发_自动软件开发模式

应选择恰好等于、刚好大于或刚好小于边界的值作为测试数据,而不是选择典型值或等价类中的任意值作为测试数据。

(3)错误的猜测方法:

一种根据经验和直觉有针对性地设计测试用例以推测程序中所有可能的错误的方法。

错误推测方法的基本思想是列出程序中所有可能的错误以及容易发生错误的特殊情况,并据此选择测试用例。 比如在单元测试时列出了很多模块中常见的错误,在之前的产品测试中发现的错误等等,这些都是经验的总结。 另外,当输入数据和输出数据均为0、输入表格为空或输入表格只有一行时,这些都是容易出错的情况。 可以选择这些情况的示例作为测试用例。

(4)因果图法:

前面介绍的等价类划分方法和边界值分析方法侧重于考虑输入条件,而没有考虑输入条件之间的联系和相互组合。 考虑到输入条件的组合,可能会出现一些新的情况,但检查输入条件的组合并不容易。 即使所有输入条件都分为等价类,它们之间的组合也是等价的。 有很多,所以需要考虑以适合描述多个条件的组合并相应地生成多个动作的形式来设计测试用例,这需要使用因果图(逻辑模型)。

因果图方法生成的*终产品是决策表,适合检查程序输入条件的各种组合。

(5)正交表分析法:由于大量参数的组合,测试用例的数量可能会增加。 同时,这些测试用例之间没有明显的优先级差距,测试人员无法完成如此大量的测试。 对于测试来说,可以通过正交表来减少一些用例,从而达到用尽可能少的用例覆盖尽可能大的范围的可能性。

(6)场景分析法:是指根据用户场景模拟用户的操作步骤。 这类似于因果图,但可能具有更好的执行深度和可行性。

(7)状态图法:通过输入条件和系统需求描述得到被测系统的所有状态,通过输入条件和状态得到输出条件; 通过输入条件、输出条件和状态获取被测系统的测试用例。

(8)大纲法:大纲法是一种以需求为中心的方法。 为了列出各种测试条件,将要求转换成大纲形式。

轮廓表示为树结构,在根和每个叶节点之间具有唯一的路径。 大纲中的每个路径定义了一组特定的输入条件,用于定义测试用例。 树中的叶子数量或大纲中的路径数量给出了测试所有功能所需的测试用例的大致数量。

11、黑盒测试和白盒测试是软件测试的两种基本方法。 请解释一下它们各自的优点和缺点。

黑盒测试的优点是:

(1)比较简单,不需要了解程序内部的代码和实现。

(2)与软件内部实现无关。

(3)从用户的角度,很容易知道用户会使用哪些功能,会遇到什么问题。

(4)根据软件开发文档,还可以了解软件实现了文档中的哪些功能; 在进行自动化软件测试时更加方便。

黑盒测试的缺点是:

(1)不可能覆盖所有代码自动化软件开发,覆盖率较低,大概只能达到总代码量的30%。

(2)自动化测试的复用性低。

自动软件开发模式_自动化软件开发_软件自动开发环境

白盒测试的优点是:

帮助软件测试人员增加代码覆盖率,提高代码质量软件的生命周期计划阶段--需求分析,发现代码中隐藏的问题。

白盒测试的缺点是:

(1)程序运行会有很多不同的路径,不可能测试所有的运行路径。

(2) 测试基于代码。 它只能测试开发者做的是否正确,而无法知道设计是否正确。 一些功能需求可能会被遗漏。

(3)当系统规模很大时,测试开销会非常大。

12.软件开发过程中测试人员的任务是什么?

(1)尽早发现系统的Bug

(2)避免软件开发过程中缺陷的发生

(3)衡量软件质量,保证系统质量

(4)关注用户需求,确保系统满足用户需求

总体目标是:保证软件质量

13.什么是测试用例,什么是测试脚本,两者之间的关系是什么?

用例:一组特定的测试输入、执行条件、各种环境设置、预期结果以及在不实施测试的情况下编译的预期结果。

脚本:测试脚本是为自动化测试而编写的脚本。

测试脚本的编写必须对应相应的测试用例。

14. 什么是静态测试、动态测试、黑盒测试、白盒测试、alpha 测试和 beta 测试?

静态测试:是在不运行程序本身的情况下查找程序代码中可能存在的错误或评估程序代码的过程。

动态测试:实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判断执行结果是否满足要求,从而测试程序的正确性、可靠性和有效性;并分析系统运行效率和鲁棒性。

黑盒测试:一般用于确认软件功能的正确性和可操作性。 目的是检测软件的各项功能是否能够实现。 正在测试的程序被视为黑匣子,无论其内部结构如何。 对于程序的输入和输出或程序功能之间的关系,依赖软件规范来识别测试用例并推断测试结果的正确性。

白盒测试:基于对软件内部逻辑结构分析的测试。 这是一个基于代码的测试。 测试人员通过阅读程序代码或使用开发工具中的单步调试来判断软件的质量。

Alpha测试:是用户在开发环境中进行的测试,也可以是公司内部用户在模拟实际运行环境中进行的受控测试。 Alpha 测试无法由程序员或测试人员完成。

Beta测试:由一名或多名软件用户在实际使用环境中进行的测试。 开发人员通常不在测试现场。 Beta 测试无法由程序员或测试人员完成。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多