软件测试基础篇(3)

news2024/11/24 2:22:33

测试用例:围绕着软件需求文档来进行设计测试用例

测试用例:本质上是一种集合,是为了实施测试而向被测试系统发出的一组集合,实施测试集合,这个集合的操作者设计者就是测试人员,这组集合的内容包括:测试环境,操作步骤,测试数据,预期结果等要素

1)包括测试产品(小红书)

2)所属模块(登录模块)

3)用例模型(功能测试)

4)测试环境:(测试的系统所在的设备环境以及版本,WEB系统到底在哪一个浏览器,这个系统到底是在windows系统(多少位)上面打开的还是在mac系统上面打开的)

5)测试平台(系统所在的设备),测试步骤(对这个性能做了哪些操作,都点击了那些按钮)

6)测试数据,测试点(电话号码格式验证,验证码文本框验证)

7)还有预期结果(根据需求的出来的,根据iPhone来得出测试结果,根据android来得出测试结果)

8)标题,重要性,功能模块,优先级,是否手工,执行方式等,附件,测试用例写得好,就可以更好的保证软件的质量,用excel xmind 来写测试用例;

这里面的测试环境包括:硬件+版本,软件+版本

网易邮箱测试用例

1)标题:邮箱注册输入项测试

2)测试环境:Chrome 版本:90.0.4430.212 Windows11 64位 小米电脑

3)测试数据:邮箱地址,密码,手机号,验证码

6-18个字符,ljw-123456@139.com(工作的时候测试数据是给定好的)

4)测试步骤:

1)打开谷歌浏览器,输入链接,输入网易注册网址,进入到网易邮箱注册页面,输入网址,http://......

2)输入邮箱地址,输入符合需求密码和手机号码,获取验证码并输入密码

3)勾选用户协议,点击勾选同意,点击注册

5)预期结果:注册成功或者注册失败的最终页面,如果注册成功,我们使用账号可以进行正常的登陆

6)执行方式:手工

考验测试思路的整理,功能的测试点

1)同一个web页面在浏览器上面的不同版本展现的效果是不一样的)

2)64位和32位是不一样的,Java的可移植性是很好的,在64位机器上和32位机器上跑是没有什么区别的,但是C++语言64位机器和32为机器上面跑的结果可能是不一样的,因为C++的数据类型在不同系统上面的字节数可能是不同的

3)还要描述清楚版本

1.关于手机号码的测试格式验证:

1)输入11位数字且以1开头:输入成功

2)输入11位数字况且不以1进行开头

3)输入12位数字,10位数字或者是其他

4)输入以1开头的数字+其他字符(重点进行测试#和*)

5)输入其他无效字符

除了第一条之外,其他的点应该都是"请输入正确的电话号码";

2.关于验证码文本框进行验证:

1)输入正确的验证码:输入成功

2)等待五分钟之后输入正确的验证码:验证码超时

3)输入验证码+字符组合:请输入有效的验证码

4)输入空格+验证码:输入成功

5)输入验证码+空格:输入成功

6)输入验证码中间加入空格:输入成功

为什么要进行设计测试用例?

1)复用性:避免用后即弃,在进行回归测试的时候不需要进行重新编写,解决重复测试

2)存在大量冗余测试影响测试效率,不知道哪一个测试了,哪一个没有测试,记录下来比较清晰

3)衡量测试需求的覆盖率,看看我们的测试用例是否覆盖了我们所有的需求

4)自动化测试的依据(手工测试转化成自动化测试)

5)方便其他人借鉴

开发模型: 

一:瀑布模型:瀑布模型的突出缺点是不适应用户需求的变化

start-需求分析-计划-设计-编码-测试-运行维护-end

特点:是线性的顺序的开发模式模型是所有其他模型的基础框架,适用于需求固定的小项目,提供了一个很好的项目思维,上一步的结果才能作为下一步的理由,上一步完成下一步才可以开始

缺点:

1)风险往往要迟至后期的测试阶段才会暴露,因此失去了今早纠正的机会,甚至可能遗留给线上用户

2)测试被后置,不能够应对需求的变化(需求改变了还需要向前进行调整,从头再来一遍)

3)必须要预留给足够的时间给测试活动,否则会导致测试不充分,从而把缺陷直接遗留给用户

4)可以进行运行的产品很迟才可以上线

补充:瀑布模型:适用于需求比较稳定的项目,因为他的每一个阶段都是独立的,一个阶段完成之后在下一个阶段才可以进行,一旦前面的需求发生错误,那么后面做的都是无效功或者说一旦需求发生变化,只能再下一次迭代中进行修改,不能适应需求的变化

1)软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间
2)瀑布模型在软件工程中带有重要地位,是所有模型的基础框架,瀑布模型的每一个阶段都只执行一次,因此是按照线性顺序进行的软件开发测试,对我们的前期需求分析看的比较重要

瀑布模型的过程:需求分析-计划-设计-编码-测试
3)优点:强调开发的阶段性,强调早期计划及需求调查(只能进行一次),
强调产品测试(在编码之后才会进行),是串行的一个过程,况且测试是最后一个过程,如果说测试出现了问题,那么问题会直接暴露给用户;

缺点:依赖于早期的进行的唯一一次需求调查,是不能适应需求的变化的,它的每一个阶段比较独立,是单一流程,开发中的经验教训是不可以反馈应用于本产品的过程,编码后期才开始进行测试,需求分析,编码方式都没有进行测试,适用于需求稳定的项目,不适用于善于变化的项目,前期的风险往往迟致编码后期的测试阶段才暴露,往往会失去较早纠正的机会

分成计划,需求分析,概要设计,详细设计,编码,单元测试,运行维护在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。        

 二:螺旋模型:

特点:

1)我们的螺旋模型引入全流程的风险分析,每一次分析完成之后都会生成一个新的原型

需求分析------>计划------>设计-------->编码--------->测试--------->end在每一步都进行了风险评估

2)使用场景:适用于规模庞大,复杂度高,风险比较大的项目

3)缺点:做项目的时间拉长,况且风险分析能力和产品遗留的风险成反比,如果说想要找到风险能力比较强的人,那么时间会拉长,况且人力成本和资金成本都比较高

补充:

2)螺旋模型:进行多次迭代,多次风险分析, 螺旋模型支持用户需求的动态变化。

适用于项目比较庞大,项目不是很明确,复杂度高,采用渐进式的开发方式,并且有一定风险的项目,进行风险分析;耗资很大,如果风险比较大(后续用户比较少或者投资超出预期),可以较快的叫停这个项目

1.优点:他不允许有一段独立的测试时间和阶段,测试不许反复迭代而迭代,回归测试在这里面非常重要,他强调严格的全过程风险管理,强调个开发阶段的质量,提供机会讨论该项目是否有价值继续延续下去(咱们的每一次迭代都有风险分析)
2.缺点:

2.1螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模型往往适应于内部的大规模软件开发。
2.2如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规模软件项目。
2.3软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险 。
2.4引入非常严格的风险识别,风险分析和风险控制,这就对风险管理的技能水平提出了很高的要求,这就需要大量的人员,资金和时间的投入

(1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;

(3) 实施工程:实施软件开发和验证;

(4) 客户评估:评价开发工作,提出修正建议,制定下一步计划。

三:增量和迭代模型: 

增量模型:

需求分析---->设计

1)增量1--->编码1---->测试2---->增量1发布

2)增量2---->编码2----->测试2---->增量2发布

3)增量3--->编码3----->测试3----->增量3发布

假设此时用户有一个需求,功能包含A,B,C---->A+B+C,咱们的螺旋模型和瀑布模型都是等到A,B,C三个功能开发完毕之后才会进行上线操作

但是我们此时的增量模型是:

开发完A我就直接上线供用户去使用

开发完C我就直接上线供用户去使用

开发完B我就直接上线供用户去使用

迭代模型:

先进行开发一个基础版本(包含功能A,B,C),但是A,B,C功能是很简陋的,接下来会继续对ABC功能进行优化

比如说要进行画画操作:

增量模型:先进行画头,在进行画身体,在进行画四肢

迭代模型:先画一个轮廓,在进行细化,再进行补色

增量与迭代模型

增量模型适用于需求比较明确,架构比较稳定的软件开发,每次增量不影响已有的架构,在已有的架构下增加新的功能。迭代模型适用于需求不甚明确、难度比较大的软件开发

项目需求:完成ABCD四个功能模块

下面:抗风险的能力较高

1)增量模型:第一周完成AB模块,第二周完成CD模块

2)迭代模型:第一周完成ABCD四个模块的基础功能,第二周完成ABCD模块的升级功能和细化

四:敏捷模型:

上面开发模型的每一个流程都是十分繁重的,每一步都是必不可少的

轻流程:想的是怎么能够激发大家的一个工作热情,强调人与人之间一个面对面高效的沟通,而不是每一个步骤都是按照固定的模型去走,只看最终的一个结果

1)开发方式(工作方式)不会做具体要求,非常适用于轻文档(时间很短,没有时间写各种各样的文档),轻流程,重目标,重产出周期短1-4周,团队人员少,注重人与人之间的交流(客户与研发团队的交流,产品经理和开发人员测试人员),一定要在规定时间内交出高质量,可用性强的软件,拥抱需求变化

2)咱们的以前的开发模型--->需求分析有描述需求的文档,计划有计划文档,设计有设计文档,编码也是以文档形式来进行的,测试也是最后要进行编写测试报告,上面开发的每一步都有文档

3)敏捷开发拥抱需求变化

scrum流程:三个角色,五个会议

角色:

1)PO:客户的代表方,整理收集客户需求,编写需求文档,形成user story会形成product backlog,并对userStory进行排序,选出这一次迭代需要做的需求;

2)SM:项目经理,管理整个开发流程,保证敏捷开发流程的顺利实施,维护开发过程的一个运行,负责召开各种会议,协调项目,为研发人员来进行服务

3)ST:研发团队,由各种技术人员组成,开发测试人员,目标就是交付一个高质量可用软件

会议:

前置工作:产品经理和PO把一个个的用户需求整理好,整理user story形成product backlog(需求代办列表);

一:产品发布会议:产品经理从需求池中选取几个需求,开展发布计划会议,进行讲解userstory,并进行估算和评估,发布计划会议的产出就是制作出这一期迭代要完成的story列表

二:迭代计划会议:项目经历确定任务的完成时间,细化需求,对需求进行拆解,划分成一个个小的任务,并进行讲解user story,确定任务多长时间完成,进行排序,分配开发人员,分配测试人员

三:开发过程中的每日站会:让开发人员开会每一天做了哪些事情,遇到了什么困难,测试开发人员对一天天工作总结以及新一天的计划,及时了解项目进度

四:产品演示会议:产品给boss进行演示,boss在此过程中会提各种各样的需求,还需要添加那些元素,客户会根据演示的结果提出一些修改意见;

然后项目经理会把这些意见添加到下一次要进行的产品的需求userstory,方便下次进行迭代,放到池子里面

五:回顾会议:回顾本次迭代产生的一些问题,总结,哪些地方做得好,哪些地方做得不好,以便会使以后的敏捷会议变得更加顺利;

举个例子:

前置工作:产品经理整理用户需求,把用户的需求放到需求池里面

1)现在在需求池里面,有三个需求:

A:我要五颜六色的黑

B:我想要永动机

C:我想要逛一下黑洞

1)产品发布会议:产品经理拿出一些需求,开始进行举行产品发布会议;

产品经理说:我现在有一些需求来需要大家来进行协助,拿出来的需求是A,B,C,产品经理来进行介绍需求内容是什么,要有哪些具体的功能来进行实现

2)迭代计划会议:产品经理来进行分工,就是A,B,C三个需求都分配给那些人来进行实现,进行划分负责人初步定位工时

唐三说我实现A只需要两天

桃夭说我实现B只需要两天

比比东说我实现C这个需求只需要1天

3)每日站会:

唐三说:我完成了红黑蓝,今天打算完成黑

桃夭说:我昨天只是造了个轮子,今天打算造车身

比比东说:我打算在黑洞里玩两天

最终做成了集成与五颜六色的黑,永动机,黑洞的为一体的神器

4)产品演示会议: 因为这个神器只有项目组的人会使用,对于用户来说并不会使用这个神器,有负责人来进行产品的演示,及时拿到用户需求

菊花关进行演示这个软件有什么功能,该怎么进行使用?

这个时候鲁班七号说你这个五颜六色的黑少了一个颜色,是灰色呀(用户需求)--->这个需求被放到需求池子里面

5)回顾会议:项目组的人都要进行参加

唐三说我的开发阶段过程中设计没有做好

桃夭说我的开发时间没有考虑好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript】用echarts绘制饼图

🙋‍ 哈喽大家好,本次是JavaScript专栏echarts板块第一期 ⭐本期内容:用echarts绘制饼图 🏆系列专栏:JavaScript 👍一起学习,一起加油! 文章目录前言效果图思路准备一个dom基于准备好…

网络安全对避免勒索软件侵害的5个原因

近几年来,勒索病毒已成为全球最热门的关键字之一,已造成了及其严重的经济损失。许多企业意识到这种情况,并试图集中精力保护自己免受这类威胁。在这里本人结合案例分享出5个原因,以让更多企业避免勒索软件的侵害。 原因1.勒索软…

【C++】模拟实现STL容器:list

目录 一、list的介绍 二、list的排序 三、迭代器 1、list的迭代器失效问题 2、迭代器的功能分类 3、list迭代器的模拟实现 3.1普通迭代器 3.2const迭代器 4、迭代器价值 5、迭代器operator->的重载 四、模拟实现时遇到的困惑及注意点 1、调用拷贝构造时&#xf…

Spring Cloud Gateway核心过滤器之请求限流详解

环境:SpringBoot2.4.13 Spring Cloud Gateway3.0.1 概述 RequestRateLimiter GatewayFilter工厂使用一个RateLimiter实现来确定当前请求是否允许继续。如果不是,返回HTTP 429 - Too Many Requests(默认情况下)的状态。 该过滤器接受一个可选的keyReso…

基于51单片机的贪吃蛇游戏设计

1绪 论 1.1本课题研究的背景及意义 随着当今社会的发展,人们的生活节奏变得越来越快,人们开始逐渐的融入全球化的世界。人们已经不再局限于一小块天地,加班,出差已经占据了现代人生活的绝大部分。这个时候,一款简单易携…

ChatGPT 体验和思考

一、体验 1、辅助写代码 2、检查代码(遗憾的是,不一定是对的) 3、分析代码 4、帮你了解/入门一项陌生的技术 小结: AI 会慢慢成为程序员的得力帮手,但目前来看,似乎还是不够成熟。 当然,大多…

《软件工程》2013年期末试卷

北京信息科技大学《软件工程》2013年期末试卷

青岛山水新城二期景观设计 全套设计

目录 1前言 2 1.1 青岛市地理位置与自然概况 2 1.2 山水新城小区概况 3 1.3设计的目的和意义 4 1.4小区园林景观设计现状和发展趋势 5 2本论 6 2.1设计依据 6 2.1.1 平面规划图 6 2.1.2 国家及地方有关规定及标准 6 2.2 设计指导思想 6 2.2.1 “以人为本”的设计理念 6 2.2.2 “…

PHP毕业设计毕设辅导课(1):PHP 基础语法

PHP 基础语法 PHP 脚本在服务器上执行&#xff0c;然后将纯 HTML 结果发送回浏览器。 PHP 基本的语法和输出 PHP 脚本可以放在文档中的任何位置。 <?php // PHP 代码 ?>PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束&#xff0c;代码示例如下&#xff1a; …

[附源码]Python计算机毕业设计Django天狗电子商城系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

用Prophet在Python中进行时间序列预测

预测通常被认为是报告的发展。报告可以帮助我们回答&#xff0c;发生了什么事&#xff1f;预测有助于回答下一个逻辑问题&#xff0c;将会发生什么&#xff1f; 最近我们被客户要求撰写关于时间序列预测的研究报告&#xff0c;包括一些图形和统计输出。 Prophet的目的是“使专…

[附源码]Python计算机毕业设计Django酒店客房管理信息系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;我…

问题解决:记录一次Linux服务器根目录突然爆满

一、出问题了 过了个双休来到公司&#xff0c;同时发现Linux终端的服务器状态中根目录空间直接爆满100%&#xff0c;周五走之前根目录仅仅使用了59%&#xff0c;同时项目服务的后台不停的有日志打印&#xff0c;而且测试的小伙伴说系统登录不上去了。下面记录一下个人排查并解…

CORTEX-A7芯片中断系统基本原理与控制方法

大家好&#xff0c;今天主要和大家聊一聊&#xff0c;如何使用高端芯片的中断系统的方法。 目录 第一&#xff1a;中断的基本简介 ​第二&#xff1a;GIC控制器介绍 第一&#xff1a;中断的基本简介 中断系统是一个处理器重要的组成部分&#xff0c;中断系统极大的提高了CPU的…

Webpack5 快速入门

1. webpack 介绍 2. webpack 基本使用 3. webpack 5大核心概念 4. webpack 配置文件 5. webpack 运行脚本 6. webpack 处理样式资源 一、处理 css 资源 二、处理 less 资源 三、处理 scss 资源 四、处理 stylus 资源 7. webpack 处理图片资源 8. webpack 文件输出目录…

[附源码]计算机毕业设计基于Springboot校园租赁系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【STM32学习(4)】STM32简述定时器

一、什么是定时器 有计时和定时功能的仪器组件——对于芯片来说&#xff0c;定时器含有计时和定时功能&#xff0c;片内模块——TIM 二、STM32F4xx系列定时器分类 片内外设定时器&#xff08;14个&#xff09; 高级定时器&#xff1a;TIM1、TIM8通用定时器&#xff1a;TIM2…

SASE和零信任--傻傻分不清楚

零信任和SASE&#xff0c;分别来自于两家世界级咨询公司Forrester与Gartner。 首先&#xff0c;Forrester提出零信任&#xff0c;成为近十年来最重要的安全创新理念。然后&#xff0c;Gartner提出SASE&#xff08;安全访问服务边缘&#xff09;&#xff0c;在零信任的基础上面…

[附源码]计算机毕业设计天狗电子商城系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【浅学Java】SpringBoot 配置文件

SpringBoot 配置文件1. 配置文件的作用2. 配置文件的格式.properties配置文件的格式.properties配置文件的缺点.yml配置文件的格式.yml配置文件的优点3. 配置文件的分类3.1 两种类型配置文件3.2 用户自定义配置项4. 配置信息读取4.1 自定义配置信息读取4.2 系统配置信息读取4.3…