什么是软件?

1)软件(software)是计算机与硬件(hardware)相结合的一部分,包括程序(program)和文档(document)。
程序:实现功能指令的集合。
文档:软件开发,使用,维护过程中产生的图文集合。如:《系统规格说明书》。

软件的概念:软件=程序+文档 +数据 软件测试

1.软件项目团队构成

项目经理:负责分配资源,确定优先级,协调与客户和用户之间的交往。

需求分析员(产品经理):业务分析员通过概括和界定作为建模对象的组织来领导和协调业务用例建模。

UI设计师:Web 界面的原型设计和正式设计。

软件开发工程师:(前端开发,后端开发(java,c++,php,python)),服务端开发,数据库管理)软件工程师负责完成设计师的设计意图, 根据设计文档编写代码; 根据设计文档编写单元测试代码,根据测试报告 BUG 记录修订 BUG ,完成包或子系统的开发。

测试工程师:测试工程师负责执行测试,其中包括设置和执行测试,评估测试执行过程并修改错

误,以及评估测试结果并记录所发现的缺陷。

实施工程师:负责软件产品安装调试和部署,完成项目相关系统工程工作,负责客户技术支持,负

责编写系统部署方案和使用手册、维护手册,负责系统实施计划和规划。

运维工程师:无论做什么运维,运维工程师最基本的职责都是负责服务的稳定性,确保服务可以

7*24H不间断地为用户提供服务。

2.什么是软件测试

使用人工操作或软件自动运行的方式来检验它是否满足规定的需求弄清预期结果与实际结果之间差别的过程

3.软件测试的目的

把尽可能多的问题在产品交给用户之前发现并改正

确保最终交给用户的产品功能符合用户的需求

确保产品完成了所承诺或公布的功能

确保产品满足性能和效率的要求

确保产品健壮和适应用户环境

建立软件质量的信心,度量和提高被测软件的质量

4.软件测试的原则

1,测试能显示缺陷的存在

2,穷尽测试是不可能的

3,测试尽早介入

4,缺陷的集群性

5,杀虫剂悖论

6,测试活动依赖于测试内容

7,没有失效不代表系统是可用的

8,测试的标准是用户需求

9,测试贯穿软件整个生命周期

10,独立的测试团队

5.B/S C/S架构架构

(Browser/Server,浏览器/服务器模式 Custumer/Server架构全称为客户端/服务器体系结构)

BS优点:分布性强、业务扩展简单方便,通过增加网页即可增加服务器功能、维护简单方便,只需要改变网页,即可实现所有用户的同步更新、开发简单,共享性强

BS缺点:个性化特点明显降低,无法实现具有个性化的功能要求、在跨浏览器上,BS架构不尽如人意、响应速度明显降低无法实现分页显示,给数据库访问造成较大的压力、在速度和安全性上需要花费巨大的设计成本、功能弱化,难以实现传统模式下的特殊功能要求。

CS优点:客户端响应速度快、可以充分满足客户自身的个性化要求、C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程、面向相对固定的用户群、对信息安全的控制能力很强。

CS缺点:需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置、兼容性差、开发、维护成本较高、用户群固定通常用于局域网中。

B/S与 C/S对比

1、客户端要求

C/S客户端的计算机电脑配置要求较高。

B/S客户端的计算机电脑配置要求较低。

2、软件安装

C/S每一个客户端都必须安装和配置专用的软件。

B/S最大的优点就是不用安装任何专门的软件,只要有一个浏览器就可以。

3、软件升级和维护

C/S每一个客户端都要进行升级和维护。

B/S客户端不必安装及维护。

4、安全性

C/S一般面向相对固定的用户群,它可以对权限进行多层次校验,提供了更安全

的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统应采用C/S结

构。

6.软件测试分类

单元测试:单元测试是对软件中的最小可验证单元进行检查和验证

集成测试:也称联合测试(联调)、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。

系统测试:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。

验收测试:验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始需求。

白盒测试:也称为结构测试。它根据程序的控制结构设计测试用例,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。

黑盒测试:也可叫功能测试,是一种从用户角度出发的测试。把被测程序当作一个黑盒子,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。主要的测试方法有等价划分类,错误推测法等。

灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑。

动态测试:动态测试指的是,实际运行被测软件或程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

静态测试:静态测试指的是,不实际运行被测试软件或程序,而只是静态的检查程序代码、界面或者文档中可能存在的错误的过程

手工测试:测试用例在不使用任何自动化工具的情况下手动执行。测试人员根据最终用户的观点手动执行的所有测试用例。它确保应用程序是否正常工作,测试用例报告也是手动生成的。

自动化测试:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率。

回归测试:是指对旧的代码修改后(换句话说就是“发布新的版本时”),重新进行的测试,进而验证缺陷得到了正确的修复,同时对系统的变更,是否影响以前的功能。

冒烟测试:冒烟测试(Smoke Testing)是指针对每个版本或每次需求变更之后,在正式测试之前,对产品或系统的一次简单的验证性测试,验证产品或系统的“基本功能”流程是否正常。(我们可以将冒烟测试理解为是在执行正式测试之前的“预测试”,)

α测试:Alpha测试是指把用户请到开发方的场所来测试,俗称(内侧),Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中 Alpha

β测试:Beta测试是指在一个或多个用户的场所进行的测试。beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。

7.软件测试流程

8.测试小组的运行

9.软件生命周期模型

1,瀑布模型

瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段 顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反 馈。

2,快速原型模型
一般在需求提出初期,用户迫切需要体验产品,开发人员根据核心功能需求快速实现
的一款可以用来演示的产品,形成demo,可快速挖掘是否是用户真正想要的产品。
3,螺旋开发模型
螺旋模 型它将瀑布模型和快速原型模型结合起来,并且加入了两种模型忽略的风险分
析,弥补了两者的不足,特别适合于大型复杂的系统。每一周期都包括制定计划、风险分析、实施工程和评审4个阶段。刚开始规模很小,开发过程每迭代一次,螺旋线就增加一周,软件开发又进一个层次,系统又生成一个新        的版本。

4,软件开发增量模型
是强调软件在发布不同的版本时,每次都多发布一点点,是软件功能数量渐增地发布

的过程

5,V模型

V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、 软件编码、单元测试、集成测试、系统测试、验收测试。V模型是软件开发瀑布模型的变种, 主要反映测试活动与分析和设计的关系

6,W模型

在V模型的基础上, 增加了开发阶段的同步测试, 形成W模型; 测试和开发同步进行, 有利于尽早发现问题

7,H模型

在H模型中, 软件测试过程完全独立, 贯穿整个项目的周期, 与其他流程并发地进行, 某个测试点准备就绪时, 就可以从测试准备阶段进行到测试执行阶段; 软件测试可以进行尽早进行; 软件测试可以根据被测物的不同而分层次进行

8,敏捷开发模型

软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。

面试题及答案

1,测试分为哪几个阶段?

测试一般分为4个阶段单元测试、集成测试、系统测试、验收测试。

2,单元测试的测试对象、目的、测试依据、测试方法?

测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。

3,完全测试程序是可能的吗?

软件测试初学者可能认为拿到软件后需要进行完全测试,找到全部的软件缺陷,使软件“零缺陷”发布。实际上完全测试是不可能的。主要有以下一个原因:
  -完全测试比较耗时,时间上不允许;
  -完全测试通常意味着较多资源投入,这在现实中往往是行不通的;
  -输入量太大,不能一一进行测试;
  -输出结果太多,只能分类进行验证;
  -软件实现途径太多;
  -软件产品说明书没有客观标准,从不同的角度看,软件缺陷的标准不同;
  因此测试的程度要根据实际情况确定。

1.需求分析

Software Requirements Specification,简称SRS。在特定环境下要完成一定功能的软件产品、程序或一组程序的说明 描述需求规格

2.需求分类

原始需求--产品需求--软件需求--测试需求

测试需求概念:可直接形成测试大纲

测试需求的重要性:是开发测试用例的依据、测试覆盖率的重要指标、有助于保证测试质量和进度

测试需求的特征要求:可核实的、满足需求的正常的前置条件,不满求需求时的出错条件

3.测试需求分析

4.需求挖掘

1,需求挖掘的过程

是将软件需求中的那些具有可测试性的需求或特性提取出来,形成原始测试需求

2,需求挖掘的方法

通过列表的形式对软件需求进行梳理,形成原始测试需求列表

3,功能需求==》》输入方面

输入来源是什么?

输入数据数量是几个?

如果有错误输入,响应是什么?

什么是非法输入?什么是无效输入?

非法就是程序能做,但做了就非法,这种情况也需要报错

无效输入是指输入了有效输入以外的值

4,功能需求==》》处理方面

输入数据的有效性检测的流程是什么?

操作的确切次序,包含各时间的时序是什么

按照特定时间变化的不同情况的测试

对异常情况的回应是什么?例如:溢出、通讯失败、错误处理

5,功能需求==》》结果输出方面

输出到何处(如浏览器,打印机,文件)?

输出的数量是多少?

输出的时序是什么样的?

按照特定时间变化的不同情况的测试结果

对非法值得处理是什么样的?

6,功能需求==》》性能需求方面

静态量化可能包含:支持的终端数目、支持的并发用户数、处理的文件和记录的数目,表和文件的大小

动态量化可能包含:在正常或峰值工作情况下一个特定时间段处理事务或任务的数目及数据量、正常或峰值工作量情况下处理某个事务或任务所占用系统资源的数量

7.功能需求==》》用户接口方面

系统用户显示时要求的屏幕格式

页面规划及报告或菜单的内容

页面规划及报告或菜单的内容

一些组合功能键的用法

5.软件开发文档评审

什么是评审?

测试文档评审

内部评审:部门评审(测试部门:部门有相关项目经验的测试优秀人员)

现场评审:项目组评审(开发人员,测试人员,架构设计人员,产品经理,项目经理和客户 方的业务人员)

一般测试计划和方案,测试用例,测试报告都需要经过评审定版,然后执行。 项目组和客户比较关注测试计划的时间安排,测试策略和测试用例业务逻辑的覆盖

第一章软件测试概述,需求分析相关推荐

  1. 第一章 软件测试概述

    目录 一.软件测试概念 2.软件测试的特点 3.软件测试和软件开发的区别? 4.软件测试与软件调试的区别 5.软件测试中的不同岗位 6.作为一个软件测试工程师需要具备的能力 7.测试人员需要掌握的能力 ...

  2. 「武汉理工大学 软件工程复习」第一章 | 软件工程概述

    目录 第一章 | 软件工程概述 [软件的特性] [软件危机] [软件工程] [软件开发基本策略(要素)] [软件工程基本原理] [单元测试题] 选择题 判断题 第一章 | 软件工程概述 [软件的特性] ...

  3. 第一章 MongoDb概述

    版本修改历史 版本 修改内容 修改人 日期 1.0 创建文档 李乐 2010-6-30 第一章 MongoDb概述 集文档数据库,键值对存储和关系型数据库的优点于一身. MongoDB (名称来自&q ...

  4. IT项目管理总结:第一章 项目管理概述

    第一章 项目管理概述 使用项目管理的好处 –更好地控制财力.物力和人力资源 –改进客户关系 –缩短开发时间 –降低成本和提高生产率 –提高质量和可靠性 –更大的边际利润空间 –更好的内部协调 –积极影 ...

  5. 计算机网络(谢希仁第八版)第一章:概述

    1.计算机网络在信息时代的作用 三网:电信网络,有线电视网络,计算机网络. 三网融合:由于涉及多方面的利益和行政管辖权的问题,目前没有实现. Internet(译名:因特网,目前使用最广泛的译名为:互 ...

  6. 【JUC】第一章 JUC概述、Lock 接口

    第一章 JUC 概述.Lock 接口 文章目录 第一章 JUC 概述.Lock 接口 一.JUC 概述 1.什么是 JUC 2.线程和进程概念 3.线程的状态 4.并发与并行 5.管程 6.用户线程和 ...

  7. 软件测试之第一章 软件测试和测试环境

    第一章 软件测试和测试环境 一. 软件的含义和分类 1 软件的含义 软件是程序.数据和文档的集合. 程序:编程语言:C.C++.Java.php 等. 数据:使用文件或数据库来存储数据. 文档:安装说 ...

  8. Java极速入门系列:第一章Java概述、Java环境、IDEA开发工具

    Java极速入门-第一章Java概述.Java环境.IDEA开发工具 一.什么是Java 1.好的编程语言的特性 2.Java的特点 3.Java的运行机制 4.Java的三大体系 5.Java环境 ...

  9. 第一章 分布式计算概述

    第一章 分布式计算概述 一.分布式计算的概念 分布式计算是计算机科学的重要研究内容,主要研究对象是分布式系统.简单地说,一个分布式系统是由若干通过网络互连的计算机组成的软硬件系统,且这些计算机互相配合 ...

最新文章

  1. python 用lambda表达式代替简单的函数, 匿名函数
  2. c语言多线程多个传入参数,关于ssl多线程参数的传递
  3. iOS开发ARC内存管理技术要点
  4. Machine Learning Lecture Notes
  5. C#中读取文本文件导入SQL数据库解决方法
  6. IOS开发之支付功能概述
  7. Zircon DDK入门指南
  8. 华为鸿蒙主题设计,3W品牌报:2020 华为全球主题设计大赛获奖作品公布;华为鸿蒙 OS 正式上线...
  9. Java的常用集合框架
  10. JDK1.8下载安装(Windows版)
  11. 苹果怎么修改wifi代理服务器,苹果手机怎么修改wifi名称?
  12. 语音计算机怎么切换音乐模式,如何把微信里收藏的语音音乐转换成mp3格式?
  13. 苹果手机解绑微信支付教程
  14. 计算机开机按f1f2,按f1-电脑开机后要按F1或F2才能进入系统,是怎么回事? 爱问知识人...
  15. mysql模糊查询语句怎么不区分大小写
  16. 转载 GIS地图知识
  17. Flask_从入门到放弃?不!!!从入门到入土!!
  18. python大气校正_全自动多源遥感影像大气校正方法
  19. Ping不通的原因分析
  20. win11系统恢复Win10右键菜单的方法

热门文章

  1. ZYNQ开发中SDK输出串口选择以及打印函数print、printf、xil_printf的差别
  2. 行为驱动python
  3. 草根程序员的光荣之路--参加移动应用的海选
  4. Java面向对象 - 封装、继承和多态
  5. spring 计划会议
  6. V-Suite CORE 2021 - Macro API Documentation 中文
  7. prerender ajax,Vue Prerender.io 预渲染seo优化
  8. 王通:当下的SEO从业者该如何升级
  9. 微信小程序bindinput输入值的值获取不到
  10. svg 实现地震波效果