软件测试1.0

146 阅读5分钟

就业形势岌岌可危,突然觉得好难受 image.png 想不到有一天就业已经软件测试饱和有点东西了(广州)

软件测试开始

软件测试的开始 软件测试的历史

软件测试的发展和职业规划

技术层-测开 业务层-产品 管理层-项目

独孤九剑

软件测试首先需要明白软件是什么?

首先需要理解产品是什么?

产品用来干什么的?理解产品才能进行更好的测试。

软件的分类

系统软件

系统软件是一种让计算机硬件和应用软件之间进行协调的软件,它是计算机系统的核心组成部分。这些软件在计算机启动时就会加载,它们提供了必要的操作系统功能,例如管理内存、处理输入输出、文件管理等。常见的系统软件包括操作系统、驱动程序、编译器、解释器、数据库管理系统等。操作系统是一种管理计算机硬件和软件资源的系统软件,例如Windows、macOS、Linux等。驱动程序是为设备提供管理、控制和通信的软件,编译器和解释器可以把代码转换成计算机能够理解的形式,数据库管理系统则负责管理组织和存储数据等。

应用软件

应用软件是一种设计用来完成特定任务或功能的计算机程序,它们通常运行在操作系统之上。应用软件可以帮助用户完成各种各样的任务,如文档处理、制作演示文稿、图像和视频编辑、互联网浏览、游戏等等。应用软件是根据用户需求开发的,它们可以满足不同领域和不同场景下的使用需求,例如企业运营、教育、医疗、金融、电子商务等。常见的应用软件包括办公软件(如Word、Excel、PowerPoint等)、媒体播放器(如QuickTime、Windows Media Player、VLC等)、设计软件(如Photoshop、Illustrator、AutoCAD等)、防病毒软件(如Kaspersky、McAfee、Norton等)、游戏软件(如魔兽世界、英雄联盟、王者荣耀等),以及各种网络应用程序和手机应用程序(如微信、支付宝、淘宝等)。

软件生命周期

image.png

软件的开始到结尾

一个软件从开发到退役的整个过程可以被认为是软件的一生。一生中的不同阶段会有不同的特征和活动:

1. 产品规划:在这一阶段,团队确定产品的市场需求,制定产品规划和设计,并制订项目计划。

2. 需求分析:这个过程中,团队会通过用户需求和客户反馈来明确产品的详细功能和业务流程。

3. 设计和架构:团队将在需求分析基础上开展软件设计和架构。包括软件架构,系统结构,数据结构和模块设计等。

4. 编码和编译:这个过程中团队将开发功能模块和实现软件功能的代码,编程语言可以是C/C++,Python,Java等,不同编程语言的代码需要不同的编译器进行编译。

5. 测试和调试:在编码完成后,应该进行单元测试和集成测试,以验证软件是否稳定运行。

6. 发布和部署:一旦开发和测试完成,团队将软件实现部署到生产环境中。

7. 维护和更新:一旦软件投入使用,就会有意外问题的出现,维护和更新会持续整个软件生命周期,以确保软件能够持续稳定的运行和符合新的市场需求。

8. 退役:随着时间的推移,软件的功能和特性会变得过时,无法再满足客户需求,在用户量下降后,软件将被取代或者淘汰,这就是软件的退役。

软件开发模型

软件开发模型是指在软件开发过程中所采用的一种组织方式,用来指导和规范软件的开发过程,以使得开发的产品质量更高,开发成本更低,开发进度更快。目前,常见的软件开发模型包括:

1. 瀑布模型:将软件开发划分成需求分析,设计,编码,测试和实现等独立的阶段,每个阶段完成后再进入下一个阶段,具有严格的顺序性。这种模型适合稳定性较高,需求比较明确的项目。

2. 增量模型:将软件开发过程分为多个小周期,每个周期完成一个部分的功能,然后将这些部分进行逐步完善和增强,最终达到实现所有功能的目的。这种模型适合需求不断变化,用户评价意见较强烈的项目。

3. 螺旋模型:在软件开发的每一时期,都充分考虑风险分析和管理,在风险分析和管理的基础上,制定出相应的策略和计划,并参考用户的反馈,逐步完善和调整软件的开发。这种模型适用于大型复杂项目,开发周期较长,需求比较复杂的项目。

4. 敏捷模型:以用户满意度为准则,强调快速开发,迭代开发和用户参与。开发团队将软件开发过程分为若干小周期,每个周期都着重于解决用户反馈中的问题。这种模型适用于小型,灵活性高,用户需求不断变化的项目。

除上述模型之外,由于开发人员在实践中的经验和不断的创新,还有其他的新型开发模型被提出,如DevOps模型,微服务模型,分布式模型等。

文档

image.png

需要去进行阅读,然后进行理解的