软件测试理论学习

测试活动的开展

测试计划

测试活动的目的和被测目标

测试的范围

测试的方法

测试所用到的资源

测试的进度安排

测试的策略

测试用例的产生

何时开始编写测试用例

选定测试方法

测试用例的内容

测试用例的粒度

测试用例的组织方式

测试用例的审查

测试用例的有效性检验

开始执行测试

报告测试缺陷

V模型

软件需求分析——用户验收测试

系统概要设计——系统测试

详细设计——集成测试

编码——单元测试

1、什么是黑盒测试?

测试人员把软件产品看成是一个黑盒子,测试过程中对这个软件黑盒的操作只关注会得到什么结果,而不必关心盒子内部的逻辑结构

对这个软件黑盒的操作可以是字符串的输入、图片的输入、视频的流入、事件的输入

简单点说就是只关注input和output

2、为什么要做黑盒测试?

验证软件是否符合需求文档的设计

证实软件是否符合终端用户的需求

3、在软件生命周期的哪些测试阶段用到了黑盒测试?

4、黑盒测试的方法?

输入值域和输出值域;等价类划分;边界值界定;状态转换;因果图分析;语法测试

5、什么叫打桩?什么叫驱动?

6、什么是白盒测试?

白盒测试又称结构测试或逻辑驱动测试,它通过分析被测组件内部的工作原理,通过测试来检测被测组件内部的运行是否符合产品规格说明书的规定

相对于黑盒测试需要测试人员检查细节,这些细节包括数据流和控制流

数据流方面:

控制流方面:

7、白盒测试和黑盒测试的区别?

黑盒测试:适用于各个阶段;完全不考虑程序内部的结构;黑盒测试是穷取输入测试,输入所有可能的情况

白盒测试:一般用于单元测试阶段;需要全面了解程序内部逻辑、对所有逻辑路径进行测试;白盒测试时穷举路径测试,

8、白盒测试的方法?

语句测试;分支/判定测试;条件测试(条件分支测试、条件组合测试、修正条件判定测试);数据流测试(变量的定义点——变量的值会随着这些语句的执行发生变化、变量的使用点——谓词使用(执行语句后程序出口>=2)和计算使用(执行语句后程序出口<=1))——为了覆盖被测组件中所有变量从被定义点到被使用点的路径。数据流测试(全定义覆盖、全谓词使用覆盖、全计算使用覆盖、全使用覆盖、全定义使用对路径覆盖);基本路径测试(圈复杂度V(G));线性代码序列与跳转测试

9、单元测试

对软件的最基本组成单元进行测试,是最低级的测试

软件的被测单元将在与其他组件隔离的情况下进行测试

被测单元在C语言这种面向过程中指函数或过程

在C++这种面向对象中可以是类也可以是成员函数

10、为什么要对程序进行单元测试?

保证被测代码有正确的行为,可以验证代码是否与详细设计一致

窥探软件内部的实现机制,可以发现其他阶段难以发现的软件缺陷(因为这个阶段大多是白盒测试)

充分的单元测试可以降低软件开发的成本

11、由谁来做单元测试?什么时候开始做单元测试?

开发人员              软件的编码阶段

12、怎么做单元测试?

我们知道在编码阶段,由开发人员先设计各单元之间的接口,再依次实现个单元内部代码,最后对各个单元进行测试

因此对于每个被测单元应该知道其对外接口(全局变量、类的公有成员、函数的形参、返回值、函数名)

测试单元被测时,由于单元的独立性,需编写驱动程序或桩函数来模拟被测单元的调用和被调用

单元测试的策略:自顶向下、自底向上、独立测试

13、单元测试的入口条件和出口条件

14、集成测试

对软件已测完成的单元或组件之间的接口进行测试,又称组装测试或子系统测试

当两个已经完单元测试的单元要组成一个组件时,就必须对这个组件进行集合测试,测试通过后将跟多的组件聚合进行更大范围的集成测试,从而得到更大的组件,进而组成模块、子系统和系统

集成测试一般按一下层次进行:

组件内部各单元之间的集成;

模块内部的集成;

子系统中各模块之间的集成;

系统中各个子系统之间的集成。

集成测试需要窥探程序内部的接口,但有大量使用的是黑盒测试的方法,所以它是结合了黑盒和白盒的特点,常被成为灰盒测试

15、为什么要对程序进行集成测试?

可以发现在单元测试难以发现的缺陷,有时候基本单元的功能虽然实现了,但给出的接口并不正确,这样的缺陷很容易在集成测试阶段发现;

结合白盒测试和黑盒测试的特点进行测试;

逐步对软件进行集合测试可以有效的定位集成新的组件后所引入的缺陷;

逐步的对软件进行集合测试可以有效的评估被集成的新模块对原系统的影响,只有对软件进行逐步集成测试才能形成稳定的、已完成集成的模块或系统;

充分的集成测试可以降低软件测试的成本。

16、集成测试是为了完成哪一个文档?

在软件开发过程中,开发人员通常将需求分析转换为软件的概要设计文档(指明各个模块之间的接口)

17、什么时候开始做集成测试?

应该在被测组件的编码完成之后,因为这个时候被测组件已经通过了单元测试,但并未集合成一个稳定的组件

18、怎么做集成测试?

19、集成测试的入口条件和出口条件?

20、系统测试

系统测试就是在所有模块或子系统都完成了集成测试之后,测试人员对整个软件系统按照软件产品需求规格说明书进行的功能验证测试

软件测试直到这个阶段所做的工作还是一直对一系列需求文档进行验证

在单元测试阶段,主要是对软件详细设计文档的验证

在集成测试阶段,主要是对软件接口说明文档进行验证

在系统测试阶段,主要是对产品需求规格说明书进行验收

21、为什么要对软件进行系统测试?

系统测试与前面的阶段测试的目的不同。单元测试是为了保证代码有正确的行为,以及验证代码是否与详细设计一致,集成测试是对软件已完成测试的单元或组件之间的接口进行测试,这些接口属于内部接口,而系统测试中的功能测试通常是测试软件的用户接口;

系统测试的范围通常更广泛。系统测试包括一些专项测试,如性能、易用性、压力、健壮性测试;

系统测试是在模拟真实环境下的测试。相比之前的测试,系统测试所使用的系统配置、软硬件环境都必须按照产品需求规格说明书中的要求严格配置,因此,系统测试出来的结果更具有现实意义;

某些特殊的常量数据只能在系统测试阶段来验证,例如关于用户界面的友好程度、UI的美观程度、字体的大小及字体的类型

22、系统测试时为了验证哪一个文档?

软件的产品需求规格说明书

23、什么时候开始做系统测试?

在所有的模块都集成之后进行

24、怎么做系统测试?

功能测试:测试产品的各项功能的正确性。如果发现功能实现的与产品需求规格说明书描述的一致但是并不正确,那么测试人员应当与开发人员代表、项目管理人员和需求管理人员沟通以确定产品需求规格说明书中对被测功能的描述是否是一个缺陷

性能测试:测试产品的各项性能是否达标

压力测试:测试以获得产品的某些关键性能指标的极限

健壮性测试:指产品正常运行时在遇到某些突发异常事件的系统保持与恢复的能力

兼容性测试:指产品的新旧版本之间的兼容性以及软件产品与软件和硬件环境间的兼容

用户易用性测试:指产品是否为用户提供了友好的界面及易操作的接口

安装测试:软件产品安装是指测试软件在各种软硬件环境组合下是否能正常地进行安装、卸载,还包括取消安装时的回滚操作是否彻底、是否清楚了文件系统和注册表中的内容以及在安装过程中出现异常(断电、系统崩溃等),带到系统重启之后软件产品是否可以重新安装等。

25、系统测试的入口和出口条件?

26、用户验收测试

故名思意就是交付给用户,让用户执行产品验收测试阶段

27、为什么要对软件进行用户验收测试?

可以实现在用户环境中对产品规格说明进行验收;

可以实现在用户环境中对产品的用户文档进行验收;

可以降低产品中的缺陷数量;

可以获取 用户关于产品功能、性能的反馈

28、如何开展用户验收测试?

用户是企业内部人员的软件项目

用户是其他企业或团体的软件项目

用户是大众,如手机、免费邮箱,其用户体验测试就扩展成为Alpha测试和Beta测试

Alpha测试:指产品上市之前在公司内部进行的用户体验测试

Beta测试:指产品上市之前让用户或企业的合作伙伴进行用户体验测试的行为

29、用户验收测试验证的是那个文档?

在用户环境中队产品过个说明书进行验证

30、如何开展用户体验测试?

31、用户验收测试的出口条件和入口条件是什么?

32、回归测试

当开发人员对软件产品的极限版本做出任何改变是,测试人员针对这些改变进行的有针对性的测试活动

33、什么是软件的基线版本?

是软件在开发过程中某一时刻的快照,在这一时刻的软件产品的版本一定是一个稳定的版本,一定可以作为继续再其上做开发的依据

34、为什么要做回归测试?

验证开发人员所承若修复的软件缺陷是否已被正确修复;

验证新的软件修改是否影响了原有的稳定模块的正确性;

验证新的软件修改是否引入了新的缺陷;

验证新的软件版本是否稳定,从而成为新的极限版本,以备后续开发使用

35、什么时候开始做回归测试?

36、怎么做回归测试?

37、冒烟测试

38、α、β、γ测试

39、性能测试    性能指标   负载测试

从本质上来说都是体现在对时间的利用和对资源的占用上

40、常用的性能指标

软件的事务处理效率;IO性能;数据库性能;内存利用率;CPU利用率;时间与资源的使用效率

41、什么是软件的事务处理时间?

指软件在处理某一项事务时,从开始处理到完成所花费的所有时间

42、什么是软件产品的IO性能?

通常包括物理硬盘的IO性能、网络的IO性能和其他硬件的IO性能

在需要大量进行读写硬盘操作的软件产品中物理硬盘的IO性能很容易成为其瓶颈,例如多任务多线程的下载大量文件等

衡量IO性能的指标是单位时间内读写数据的数量

43、什么是数据库性能?

指软件在进行数据库的查找、添加、删除、更新数据记录时要同时对多张表进行操作

提高对数据库性能的方式通常有:减少对数据库操作的次数,把一些常用的数据长期存储内存中;较少表与表之间的依赖性

44、什么是资源利用率?

指软件产品实际使用资源数量与所申请的资源总量之间的比例

内存空间利用率:即实际使用的内存空间和软件所申请的资源总量之间的比例

CPU的利用率:即应用程序使用CPU时间与应用程序总的运行时间的比例

45、负载测试

通过对被测软件产品进行各种方式的加载负荷以获得被测产品在各种加载情况下的性能参数等信息

46、负载测试的目的是什么?

47、何时进行负载测试?

48、负载测试需要做那些环境配置?

49、负载测试的加载策略有哪些?

安全测试

兼容性测试

易用性测试

时间: 2024-08-26 20:26:40

软件测试理论学习的相关文章

软件测试-7 在实际测试时的一些想法

前言 学习软件测试已经有几周了.理论学习了很多,但是实际上自己动手去做的测试也就是两次非常简单的实验.虽然只是两次简单的实验,但是呢,两个实验给我的收获是非常大的,让我对软件测试有了很多自己的想法. 一.非常大的工作量 软件测试耗费的工作量与我想象中相比,差距真的很大.我之前一直非常轻视软件测试这一环节,觉得这个环节可有可无.事实上,在我完成了一个程序,或者完成了一个项目之后,我并不会花费很多时间去系统地测试它.我觉得自己在写代码时就已经经过自测了,完成的程序应该并不会出现什么严重的BUG.即使

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

软件测试——Peer Review

一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排的进度. 二.背景 这周三老师在课上安排了peer review,每5-6个人一个小组,自己进行分工,并对样例软件进行peer review. 三.peer review的图解及分工 Moderator (主持人) 主持人的主要职责,在评审会前负责正规技术评审计划和会前准备的检查:在评审会中负责调

软件测试不再黑盒— threadingtest带来第二代白盒覆盖率技术

软件测试不再黑盒- threadingtest带来第二代白盒覆盖率技术 穿线测试对于测试界的一个重大创新在于,在白盒测试理论出现数十年以后,上海零一拼装信息技术有限公司结合在测试理论方面十余年的潜心研究,率先提出了第二代覆盖率技术,这绝对不是一个口号,而是ZOA真正对于白盒测试的理解以及对于标准第三方测试服务的深度理解经过数年的基础研究以及2年有余的研发而推出的达到商用标准的技术.现在先让我们温习下经典的测试理论: 1.测试方法论 黑盒功能测试法 黑盒功能测试法, 是把要测试的软件看成一个 "黑

[ 测试思维 ] 探索式软件测试

非常不错的关于探索式软件测试的学习资料 1.探索式测试简析 作者:微软 史亮 http://pan.baidu.com/s/1c2D4tAo 2.探索式测试白皮书 作者:淘宝 季哥 http://pan.baidu.com/s/1qYFNG3y

软件测试的方法-------基于直觉和经验的方法

定义:基于直觉和经验的测试方法,不是严格意义上的科学测试方法,带有一定的随机性,测试结果不够可靠,甚至可以看作是没有办法的办法.但是,软件测试是具有社会性,呈现一定的不确定性.这时,采用直觉和经验往往能够发挥更好的作用.   1.Ad-hoc测试方法和ALAC测试 1.1.自由测试(Ad-hoc Testing)强调测试人员根据自己的经验,不受测试用例的束缚,放开思路.灵活地进行各种测试. 1.2.ALAC,是Act-like-a-customer(像客户那样做)的简写,是一种基于客户使用产品的

软件测试

一个团队在做一个软件的时候,必定离不开软件的测试,首先就是找出代码的Bug,也就是软件的错误.缺陷.Bug也可以分解为症状.程序错误.和根本原因.症状即是从用户的角度看,软件出了什么问题.程序错误乃是从代码的角度看,代码的什么错误导致了软件的问题.根本原因,错误的根源,即导致代码错误的根本原因.另外,我们测试设计游两类方法:黑箱和白箱,所谓黑箱/白箱就是指软件测试设计的方法,不是软件测试的方法.黑箱指的是在设计测试的过程中,把软件系统当作一个"黑箱",无法了解或使用系统的内部结构及知识

软件测试笔记(一)理论篇

有句话是这么说的:能动手就别哔哔,尤其是在工作节奏堪比跑马的今天,大家都推崇实干精神,能解决问题就好,去他的理论.但是无可否认的是,良好的理论素养无论是解决工作中遇到的问题,还是未来的职业发展,都帮助甚大.本文整理汇总了软件测试行业中常见的一些测试理论,供大家参考. 1.软件测试按照测试分类有:黑盒测试和白盒测试. 黑盒测试 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用.在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,

软件测试本学期授课内容大致安排

总课时16次课,一次课2课时,实验课7次. 课程内容: 概述(2次课) 白盒测试技术(2次课) 黑盒测试技术(3次课) 软件测试流程.策略与管理(2次课) Web网站测试(2次课) 软件自动化测试(3次课) 性能测试(2次课) 实验内容: 实验1:测试的实例程序的设计 实验2:结构性测试 实验3:功能性测试 实验4:综合性测试 实验5:性能测试 其中实验1~3.5均要求在实验室完成,下课时由学委统一整理拷贝,提交给老师. 实验4由老师提出需求,6名同学左右同学担任开发2-3个小项目,其余同学担任