1. 软件生命周期(SDLC)的六个阶段

1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

2、需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。

3、软件设计 此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。

4、程序编码 此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

5、软件测试 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

6、运行维护 软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

2、软件生命周期模型

从概念提出的那一刻开始,软件产品就进入了软件生命周期。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。

典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。

瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来。迭代模型比瀑布模型问题暴露的要早;快速原型法比瀑布模型直观。

3.软件测试概念

广义概念:指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认

狭义概念:识别软件缺陷的过程,即实际结果与预期结果的不一致

4.软件测试目的

测试的目的就是发现软件中的各种缺陷

测试只能证明软件存在缺陷,不能证明软件不存在缺陷

测试可以使软件中缺陷降低到一定程度,而不是彻底消灭

以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量

5.软件测试原则

Good-enough: 一种权衡投入/产出比的原则

保证测试的覆盖程度,但穷举测试是不可能的

所有的测试都应追溯到用户需求

越早测试越好,测试过程与开发过程应是相结合的

测试的规模由小而大,从单元测试到系统测试

为了尽可能地发现错误,应该由独立的第三方来测试

不能为了便于测试擅自修改程序

既应该测试软件该做什么也应该测试软件不该做什么

6.软件测试的的重点

ü 测试用例的设计

– 测试用例的设计是整个软件测试工作的核心

– 测试用例反映对被测对象的质量要求,决定对测试对象的质量评估

测试工作的管理

– 尤其是对包含多个子系统的大型软件系统,其测试工作涉及大量人力和物力,有效的测试工作管理是保证有效测试工作的必要前提

测试环境的建立

– 测试环境应该与实际测试环境一

7.黑盒测试

ü什么是黑盒测试

– 又称功能测试或数据驱动测试,是针对软件的功能需求/实现进行测试,通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构

黑盒测试方法

– 功能划分

– 等价类划分

– 边界值分析

– 因果图

– 错误推测等

8.什么是白盒测试

– 白盒测试也称结构测试或逻辑驱动测试,必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、设计正常运行

– 白盒测试的主要方法

– 对应于程序的一些主要结构:语句、分支、逻辑路径、变量;白盒测试的主要方法是:

– 语句覆盖方法

– 分支覆盖方法

– 逻辑覆盖方法

9. 什么是动态测试

动态测试需要在开发/测试环境或实际运行环境中运行软件,并使用测试用例去查找软件缺陷;动态测试包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等

10.什么是静态测试

静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估.静态测试包括代码检查、程序结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行

11.手工测试和自动测试

a.手工测试缺点在于测试工作量大,重复多,回归测试难以实现

b.自动测试利用软件测试工具自动实现全部或部分测试工作:管理、设计、执行和报告;节省大量的测试开销,并能够完成一些手工测试无法实现的测试

手工完成测试的全部过程无法保证测试的科学性与严密性:

– 修改的缺陷越多,回归测试越困难

– 没有人能向决策层提供精确的数据以度量当前的工作进度及工作效率

– 反复测试带来的倦怠情绪及其他人为因素使得测试标准前后不一

– 测试花费的时间越长,测试的严格性也就越低

自动测试将测试人员从反复、烦杂的测试执行中解放出来,用更多的时间进行测试设计和结果分析

软件测试不可能完全自动化

不能完成所有手工测试任务

无创造性且灵活性差,不能改进测试的有效性

过程中可能会遇到许多意想不到的问题,特别是当软件不稳定时

测试脚本的维护高

12. 测试流程

单元测试

集成测试

系统测试

用户验收测试

回归测试

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

13.单元测试

完成对最小的软件设计单元—模块的验证工作

目标是确保模块被正确地编码

使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误

通常情况下是面向白盒的

对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试,及早地发现和解决不易显现的错误

单元测试的内容

– 接口测试

– 内部数据结构

– 全局数据结构

– 边界

– 语句覆盖,错误路径

14.集成测试

通过测试发现与模块接口有关的问题

目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构

应当避免一次性的集成(除非软件规模很小),而采用增量集成

集成测试主要内容

API

API/参数组合

15.系统测试

根据软件需求规范的要求进行系统测试,确认系统满足需求的要求

系统测试人员相当于用户代言人

在需求分析阶段要确定软件的可测性,保证有效完成系统测试工作

系统测试主要内容

所有功能需求得到满足

所有性能需求得到满足

其他需求(例如安全性、容错性、兼容性等)得到满足

16.用户验收/确认测试

Alpha测试

– 是由用户在开发者的场所来进行的,Alpha测试是在一个受控的环境中进行的

Beta测试

– 由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场,用户记录测试中遇到的问题并报告给开发者

17.压力测试VS性能测试 性能测试的目的不是去找bugs,而是排除系统的瓶颈,以及为以后的回归测试建立一个基准。而性能测试的操作,实际上就是一个非常小心受控的测量分析过程。在理想的情况下,被测软件在这个时候已经是足够稳定了

性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。 概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况;

压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的叶面3秒钟内响应;概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。

举例说明:针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。

个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,如果下面这些资料你用得到的话可以直接拿走:

① 自学必备的完整项目 (包括源码和环境,可以自己安装在本地使用)

② 测试计划模板,测试用例设计模块,功能测试报告模块等(涵盖了测试工作中所有模块)

③ 软件测试经典面试题(笔者根据自己10多年测试经验整理)

④ selenium+Python(Java)自动化测试实战.pdf,(包括了Python以及Java自动化的所有知识点)

⑤ 软件测试(自动化测试)学习路线图(从此自学有了方向不在迷茫)

⑥ 简历模板

整理了我这10几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,也会可以帮忙解答

软件测试的工作内容主要是干什么?相关推荐

  1. 优测云服务平台告诉你软件测试的工作内容主要有哪些?

    优测云服务平台告诉你软件测试的工作内容主要有哪些? 测试人员的首要职责在我们平常人看来就是找Bug,他们需要使用各种测试技术和工具来测试和发现软件中存在的缺陷,从而让开发者更好的优化产品,让用户更加安 ...

  2. 软件测试的工作内容?以及软件测试是干什么的?学习规划和职业规划

    前言: [文章末尾给大家留下了大量的福利哦] 一.软件测试起源 二.测试行业现状 三.测试行业前景 软件测试职业特点 软件测试基本内容 软件测试岗位 Findyou: 四.测试职业规划 五.我的核心竞 ...

  3. 软件测试工程师工作内容有哪些?

    软件测试作为近年来十分热门的IT行业之一,有越来越多的人想要从事.那么软件测试工程师的工作内容都有哪些呢?小编今天就带大家来了解一下. 软件测试工程师的工作内容当然主要就是进行软件(微信.淘宝.百度. ...

  4. 软件测试是什么?具体的工作内容是什么?有前途吗?

    目录 一.软件测试概念 二.软件测试目的 三.软件测试基本原则 四.软件测试主要工作内容 五.软件测试方法 六.测试工程师的职责 七.为什么要软件测试这个岗位 一.软件测试概念 软件测试:为了发现软件 ...

  5. 软件测试的测试内容有那些

    软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念: 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件 ...

  6. 女孩子适合软件测试这个行业吗?【工作内容、薪资、加班、怎么转行、职业规划】全面解析女生适不适合软件测试。

    小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...

  7. NLP工程师是干什么的?工作内容是什么?

    NLP自然语言作为人工智能的核心技术之一,近几年由于AI技术的深入发展已经获得了极大的突破.因此,我们可以看到NLP自然语言在各个领域的广泛应用,NLP工程师也渐渐走到了大众的面前.相信许多人对于这个 ...

  8. 软件测试工作内容和职责有哪些

    目前,在IT行业中测试的职位数量仅次于开发,可以说是第二大技术就业岗位.然而许多人对测试师工作的理解还停留在,只需要像用户一样使用产品,然后发现有问题提交报告就行了.其实这是极其不准确的,软件测试师在 ...

  9. 一名软件测试工程师的一天24小时,主要工作内容详细流程...

    看一个行业好不好,与其去看日常工作,还不如看行业大势.可以确信的是,当前择业测试绝对不会错. 软件测试工程师的一天是怎么度过的呢?其实可以按照时间轴进行分为三个阶段 去上班的阶段 工作中的阶段 下班后 ...

  10. 自动化软件测试工作内容,软件测试工程师的主要工作内容

    原标题:软件测试工程师的主要工作内容 大部分的人都认为,软件测试工程师的工作就只是找BUG.其实不然,找BUG只是软件测试工程师众多工作中的一部分.今天,软件测试培训的小编就来给大家说一说,软件测试工 ...

最新文章

  1. ISE MAP报错: Unsupported programming for BSCAN block and JTAG_CHAIN attribute value 1的解决方法
  2. P1334 瑞瑞的木板
  3. android unix时间,android: 日期转Unix时间戳,Unix时间戳转日期,带时区
  4. python如何执行代码漏洞_命令执行与代码执行漏洞原理
  5. java里的初始化块_[转载] Java 语言中的实例初始化块 ( IIB) 详解
  6. 编写android驱动程序,Android 驱动编写LED-NDK程序
  7. WebSocket 实现原理
  8. 有哪些闷声发大财的行业?
  9. 滴滴自动驾驶首轮融资超5亿美元 加大研发投入 助力“新基建”
  10. Dell optiplex 3060 黑苹果 (8500+uhd630),alc255/alc256声卡爆音解决方案。
  11. 40个增长和管理你的WordPress网站的有用博客工具
  12. Ngnix 搭建视频直播服务器
  13. Hive之数据类型、查询操作
  14. 一个php+ajax的在线匿名聊天室,PHP任意环境都可用,无需复杂配置,移动端电脑端互通流畅,随时随地聊个痛快~
  15. android高仿今日头条,高仿今日头条App
  16. RDS2016 Multipoint Role
  17. Maven导入依赖时显示Duplicated tag: ‘dependencies‘ (position: START_TAG seen ...</properties>\r\n\r\n <depen
  18. 联通云的七大“场景云”,能让用户实现云计算自由吗?
  19. 共发行50套清华大学吴光科团队京峰教育内供版
  20. 第二十七篇 网页数据解析三种方法: 正则表达--BeautifulSoup--xpath 满满的干货

热门文章

  1. 苹果电脑上好用的几款数据备份工具
  2. python画彩色城墙_只需 45 秒,Python 给故宫画一组手绘图!
  3. 永久禁止ctfmon.exe和conime.exe进程启动
  4. resin服务器搭建
  5. w7计算机 里工具栏没有了,win7电脑任务栏不见了怎么办
  6. 一块硬盘做服务器,服务器4块硬盘做raid几
  7. 一个废物大学生对于视频爬取的小小的总结
  8. java 命令行工具_分享java自带命令行工具jmap、jhat与jinfo的方法详解
  9. 网络工程师知识-盘点网工调试工具常用console线汇总
  10. DOS命令是如何操作目录和文件夹的?