软件测试基础知识大全

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

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

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

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

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

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

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

2、软件生命周期模型

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

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

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

3.软件测试概念

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

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

4.软件测试目的

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

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

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

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

5.软件测试原则

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

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

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

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

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

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

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

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

6.软件测试的的重点

ü  测试用例的设计

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

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

ü  测试工作的管理

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

ü  测试环境的建立

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

7.黑盒测试

ü  什么是黑盒测试

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

ü  黑盒测试方法

–  功能划分

–  等价类划分

–  边界值分析

–  因果图

– 
错误推测等

8.什么是白盒测试

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

–  白盒测试的主要方法

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

–  语句覆盖方法

–  分支覆盖方法

– 
逻辑覆盖方法

  1. 9.  
    什么是动态测试

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

10.什么是静态测试

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

11.手工测试和自动测试

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

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

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

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

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

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

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

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

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

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

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

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

ü  测试脚本的维护高

12. 测试流程

ü  单元测试

ü  集成测试

ü  系统测试

ü  用户验收测试

ü  回归测试

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13.单元测试

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

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

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

ü  通常情况下是面向白盒的

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

ü  单元测试的内容

–       
接口测试

–       
内部数据结构

–       
全局数据结构

–       
边界

–       
语句覆盖,错误路径

14.集成测试

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

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

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

集成测试主要内容

ü  API

ü  API/参数组合

15.系统测试

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

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

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

ü  系统测试主要内容

ü  所有功能需求得到满足

ü  所有性能需求得到满足

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

16.用户验收/确认测试

ü  Alpha测试

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

ü  Beta测试

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

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

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

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

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

18. 主流测试工具的测试流程

========winrunner
1 启动时选择要加载的插件
2 进行一些设置(如录制模式等)
3 识别应用程序的GUI,即创建map(就是学习被测试软件的界面)
4 建立测试脚本(录制及编写)
5 对脚本除错及调试(保证能够运行完)
6 插入各种检查点(图片,文字,控件等)
7 在新版应用程序中执行测试脚本
8 分析结果,回报缺陷
 
=========quicktestpro========
1 准备录制
打开你要对其进行测试的应用程序,并检查QuickTest中的各项设置是否适合当前的要求。
2 进行录制
打开QuickTest的录制功能,按测试用例中的描述,操作被测试应用程序。
3 编辑测试脚本
通过加入检测点、参数化测试,以及添加分支、循环等控制语句,来增强测试脚本的功能,使将来的回归测试真正能够自动化。
4 调试脚本
调试脚本,检查脚本是否存在错误。
5 在回归测试中运行测试
在对应用程序的回归测试中,通过QuickTest回放对应用程序的操作,检验软件正确性,实现测试的自动化进行。
6 分析结果,报告问题
查看QuickTest记录的运行结果,记录问题,报告测试结果。

====TestDirect============
安装好后,先进入站点管理
1 创建域及工程
2 添加用户
3 编辑licenses及本服务器
4 编辑数据库
--TD
1 选择新建的工程进行定制(列表,用户,组,版本等)
2 在require中增加需求
3 把需求转化为plan
4 在testlab中由计划新建测试具体用例与执行

5 发现bug,在defect中提交bug
(每一部分都可以相对独立地使用)

======loadrunner
1 制定负载测试计划
(分析应用程序, 确定测试目标,计划怎样执行LoadRunner)
2 开发测试脚本
(录制基本的用户脚本,完善测试脚本)
3 创建运行场景
(选择场景类型为Manual Scenario,选择场景类型,理解各种类型,场景的类型转化)
4 运行测试
5 监视场景
(MEMORY 相关,PROCESSOR相关,网络吞量以及带宽,磁盘相关,WEB应用程序 ,IIS5.0,SQL SERVER,NETWORK DELAY等)
6 分析测试结果
(分析实时监视图表,分析事务的响应时间,分解页面,确定WEBSERVER的问题,其他有用的功能)

 

时间: 2024-10-12 11:43:13

软件测试基础知识大全的相关文章

软件测试基础知识

软件测试基础知识 1.  软件质量与软件测试 软件测试:在规定条件下对程序进行操作,以发现错误,对软件质量进行评估,包括对软件形成过程的文档.数据以及程序进行测试 软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力 2.  软件测试与质量保证 软件测试只是质量保证工作中的一个环节,软件质量保证与软件测试是软件质量工程的两个不同层面的工作: 质量保证:通过预防.检查与改进来保证软件质量,采用全面质量管理和过程改进的原理来开展质量保证工作,主要关注软件质量的检查与测试,主要着眼于软件开发活动

软件测试基础知识(摘)

一.软件测试基本概念 1.软件=程序+文档,软件测试=程序测试+测试文档. "软件"是指能够实现某种功能的指令集合,"文档"是指软件在开发.使用和维护过程中产生的图文集合. 2.软件分类 按功能分:系统软件.应用软件 按技术架构分:单机版软件.C/S结构软件.B/S结构软件(B指浏览器) 按使用的用户分:产品软件.项目软件 按规模分:小型.中型.大型 3.BUG的定义 软件的BUG指软件(包括程序和文档)中不符合客户需求的问题.常见三类BUG:完全没有实现的功能:基

JS基础知识大全

JS基础知识 基本语法*switch循环(设置表达式 x(通常是一个变量) 随后表达式的值会与结构中的每个 case 的值做比较.如果存在匹配,则与该 case 关联的代码块会被执行.请使用 break 来阻止代码自动地向下一个 case 运行) 不进行类型转换 var x; switch(x){ case true:console.log("x类型转换") ; default:console.log("x没有发生类型转换"); }//case没有发生类型转换 sw

JS 基础知识大全

1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分document.write("Hello Javascript"); 向文档写入字符串 2.javascript都是放在script标签中的,一旦加载,就会执行 javascript顺序执行,如果有多段script代码,会按照从上到下,顺序执行 javascript有两种注释方式 :单行注释 //多行注释 3. JavaScript  调试办法a.alert进行调试b.

软件测试入门随笔——软件测试基础知识(二)

POINT one:软件测试生命周期--V模型 V模型左边为开发阶段,右边为测试阶段.单元测试和功能测试应检测程序的执行是否满足程序设计的要求:系统测试应检测系统功能.性能的质量特性是否达到系统要求的指标:验收测试确定软件的实现是否满足用户需要或合同的要求. 单位测试:对单元模块的功能.性能进行测试,比如能不能完成登录功能等等.主要由开发人员完成,要求具备一定的读.改代码的能力,有静态测试方法(代码分析)和动态测试方法(白盒.或黑盒) 集成测试:以<软件概要设计说明书>为依据,检验软件单元和已

网络常用基础知识大全

1)如何查看本机所开端口:用netstat -a -n命令查看!netstat结果显示有一些英文,简单说一下这些英文具体都代表什么:LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等待连接中断请求CLOSE-WAIT:等

软件测试基础知识 day 1

软件缺陷   只有符合下列5个规则才能叫做软件缺陷 软件为达到产品说明书标明的功能. 软件出现了产品说明书指明不会出现的错误. 软件功能超出了产品说明书指明范围. 软件未达到产品说明书里未指出但应达到的目标. 软件测试人员认为软件难以理解.不宜使用.运行速度缓慢,或者最终用户任务不好. 软件测试员的目标是发现软件缺陷   黑盒测试和白盒测试 在黑盒测试中,软件测试人员只需要知道软件要做什么即可 —— 而无法看到盒子中是如何运作的.只需要进行一些输入,就能得到某种输出结果,他不知道软件如何运行,为

软件测试入门随笔——软件测试基础知识(四)

about 测试流程 一般公司测试流程 评审需求 分解需求 制定测试计划 设计测试用例 执行测试 提交bug报告 回归测试.验证bug 书写测试报告 经验总结 测试过程模型 瀑布过程模型 以文档驱动,自由度低.实际开发过程中,各部分之间都有某种程度的重叠,造成这种重叠的原因是,任何一个阶段都不可能在下一个阶段开始之前结束. 快速原型过程模型 先做出一个可运行的.功能简单的原型系统,交由客户试用看是否满足客户期望,并根据客户反馈进行修改增补. 优点:关注用户需求,降低由于需求不明确导致项目出错的风

软件测试基础知识1

一.软件测试(Software Testing)的定义 经典定义:在规定的条件下对程序进行操作,以发现错误,也是对软件质量进行评估的一个过程: 二.软件质量的定义 软件满足规定或潜在用户需求的能力,具体说,软件质量是软件符合明确叙述的功能和性能需求,文档中明确描述的开发标准,以及所有专业开发的软件都应该具有的和隐含特征相一致的程度: 三.软件测试与软件质量的区别 质量保证(QA): 主要工作是通过预防,检查与改进来保证软件质量,它所关注的是软件质量的检查与测量,着眼软件开发活动中的过程.步骤及产