测试基础

软件测试

定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

目的:为了发现程序中的错误,而不是去证明程序中不存在缺陷。

测试流程:

1、对要执行测试的产品/项目/需求进行分析,确定测试策略,制定测试计划。

2、针对测试计划书进行评审(测试经理、测试负责人员、需求人员、软件开发人员等)

3、设计测试用例。越详细越好。若在测试的过程中发现用例中没有的软件缺陷,可以将该软件缺陷补录入测试用例中。

4、执行测试用例。执行前,要将测试过程中所需要的环境及数据准备好。

5、提交软件缺陷bug。

6、验证软件缺陷。

7、编写测试报告。对测试进行分析,总结本次的经验教训。

测试方法:

1、等价类

1)定义:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。等价类分为有效等价类和无效等价类。

2)如何划分等价类

1]在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

如:输入值是学生成绩,范围是0~100。

2]在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类。

2、边界值

1)定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

2)与等价类的区别

1]边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2] 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

3)常见的边界值

1] 对16-bit 的整数而言 32767 和 -32768 是边界

2] 屏幕上光标在最左上、最右下位置

3] 报表的第一行和最后一行

4] 数组元素的第一个和最后一个

5] 循环的第 0 次、第 1 次和倒数第 2 次、最后一次

3、判定表

4、因果图

5、错误推测

分类:

1、  从是否关心软件内部结构和具体实现的角度划分(按测试分类)

白盒测试

黑盒测试

灰盒测试

白盒测试:主要针对代码进行检查的测试,是基于代码的测试。

黑盒测试:功能测试,手工测试。它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。

灰盒测试:利用软件、工具,对程序进行性能测试、安全测试、压力测试等

2、  从是否执行程序的角度

静态测试

动态测试

静态测试:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序结构分析流程图分析、符号执行来找错。静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

动态测试:动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例执行程序、分析程序的输出结果。

3、  从软件开发的过程按阶段划分有

单元测试、功能测试、集成测试确认测试系统测试验收测试回归测试、性能测试。

单元测试:单元测试又称模块测试,是针对软件设计的最小单位 ─ 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。

测试对象是模块内部的程序错误;目的是消除局部模块逻辑和功能上的错误和缺陷;

测试依据是模块的详细设计;测试方法采用白盒测试。

集成测试:将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:

– 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

– 一个模块的功能是否会对另一个模块的功能产生不利的影响

– 各个子功能组合起来,能否达到预期要求的父功能;

– 全局数据结构是否有问题;

– 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。

集成测试的测试对象是模块间的组装和调用关系;

目的是找出与软件设计相关的程序结构模块调用关系,模块间接口方面问题;

测试依据是概要设计;测试方法采用灰盒测试。

确认测试:功能测试。验证软件的功能和性能及其它特性是否与用户的要求一致。

系统测试:将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。

系统测试的测试对象是整个系统;测试的目的是对整个系统进行测试;

测试的依据是需求规格说明书;测试方法黑盒测试。

验收测试:在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。

* 验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。

* 由用户参加设计测试用例,使用生产中的实际数据进行测试。

* 在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。

回归测试:在测试过程中会提交很多软件缺陷,当缺陷被修复后,需要针对缺陷对程序再次进行测试,并要考虑到修复的缺陷是否会对程序的其他模块有所影响。

性能测试:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

兼容测试:主要是检查软件在不同的软\硬件平台上是否可以正常的运行,即软件可移植性。

兼容的类型:细分为平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。

兼容测试的重点:对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容测试。

测试覆盖类型

语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

自动化测试工具有:基于web的测试管理工具TestDirector、配置管理工具VSS、QTP以及性能测试工具LoadRunner

C/S和B/S结构的软件进行测试时有何不同

C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统。客户端需要安装专用的客户端软件。

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser)。浏览器通过Web Server同数据库进行数据交互。

测试计划包括:产品基本情况的调研、测试需求说明、本阶段测试策略和记录、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等。

测试报告(小结)包括:测试目的、测试背景、测试方法、测试范围、测试环境、测试所用到的工具、测试结果、缺陷分析、测试结论与测试建议等。

测试用例包括的信息:

版本号、项目名称、模块名称、用例编号、用例名称、用例级别、预置条件、验证步骤、期望结果、测试结果、测试时间、测试人员、备注。

缺陷包括的内容:

缺陷编号、状态、类型、标题、描述、严重程度、优先级、版本、所属模块、提交人、提交时间、附件(截图、录像)

缺陷的生命周期

提交->确认->分配->修复->验证->关闭

软件的缺陷等级应如何划分?

A类—严重错误,包括以下各种错误: 1. 由于程序所引起的死机,非法退出 2. 死循环 3. 数据库发生死锁 4.因错误操作导致的程序中断 5. 功能错误 6. 与数据库连接错误 7. 数据通讯错误

B类—较严重错误,包括以下各种错误: 1. 程序错误 2. 程序接口错误 3.数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误: 1. 操作界面错误(包括数据窗口内列名定义、含义是否一致) 2. 打印内容、格式错误 3.简单的输入限制未放在前台进行控制 4. 删除操作未给出提示 5. 数据库表中有过多的空字段

D类—较小错误,包括以下各种错误: 1. 界面不规范 2. 辅助说明描述不清楚 3. 输入输出不规范 4. 长操作未给用户提示 5. 提示窗口文字未采用行业术语 6. 可输入区域和只读区域没有明显的区分标志

E类—测试建议

数据库:

创建:create table/database

删除表: drop table

选择:select * from table1 where 范围

插入:insert into table1(field1,field2) values(value1,value2)

删除:delete from table1 where 范围

更新:update table1 set field1=value1 where 范围

查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

排序:select * from table1 order by field1,field2 [desc]

总数:select count as totalcount from table1

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

最大:select max(field1) as maxvalue from table1

最小:select min(field1) as minvalue from table1

例题:页面中有一个输入日期的输入框和一个输入身份证号的输入框,如何进行用例设计?

输入日期的输入框要考虑边界值、输入非法字符、非数字等

身份证输入框要考虑18位身份证、16位身份证、非18、16位的数据、汉字、字母、非法字符等。

例题:我手上这支笔,请你根据这支笔设计测试用例

首先要测它的外观、颜色是否符合要求、她所占的空间是多大、是否环保、接下来测它的质量、这支笔是否能够写字流畅、写出的自得颜色是否符合要求、能使用多长时间等

时间: 2024-11-05 20:35:45

测试基础的相关文章

【金阳光测试】KK公益讲座第63期-5月30号(周六晚八点) 分享主题: IOS专项测试基础

[金阳光测试]KK公益讲座第63期-5月30号(周六晚八点)分享主题: IOS专项测试基础听课地点:http://www.chuanke.com/1983382-110713.html主讲:小白老师老师简介:前风行网.腾讯测试,现为一流互联网公司任职高级开发测试时间:5月30号 晚上8点开始

测试基础知识(白盒测试,黑盒测试,测试用例,功能测试等等)

测试基础知识 找实习工作的过程中总结了下测试基础知识,编程能力重要,测试基础同样重要,希望对大家有帮助 软件测试方法:静态测试和动态测试                     白盒测试和黑盒测试                     传统测试与面向对象测试 软件测试过程:单元测试,集成测试,系统测试,验收测试 按测试类型:功能.性能.界面.易用性测试.兼容性测试.安全性测试.安装测试 (单元测试:在编码过程中,对每个小程序单元测试) (集成测试:将单元集成在一起后,可称为组件) 回归测试.冒

css3背景颜色渐变属性 兼容性测试基础环境为:windows系统;IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+

css3背景颜色渐变属性 兼容性测试基础环境为:windows系统:IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+ 语法: <linear-gradient>:linear-gradient([ <point>,]? <color-stop>[, <color-stop>]+); <point>:[ left | right ]? [ top | bottom ]? || <a

【转载】探索式测试基础系列—生活进阶曲

在探索式测试落地实践中奏出了协奏曲后进入到高级阶段,如何在问题定位和经验积累中发挥作用,也可以理解为在生活达到非常和谐后,如何孕育一个后代并为其提供良好的环境,因此本章的名字叫做生活进阶曲,表明在本章内容结束后生活将发生了质的改变,有了良好的传承. 1.反馈跟踪 前面讲的都是开发迭代过程,在实际中我们还有很重要的一个环节就是上线后的用户反馈跟踪.通过各种渠道,我们可以收集到各种用户反馈,能否将用户反馈复现出来直接影响到问题的定位和解决,另外一方面,随着用户反馈问题的复现,我们可以回顾反思漏测问题

Android测试(二):Android 测试基础

Android测试(二):Android 测试基础 发布时间 2017年12月20日 虫师 原文:https://developer.android.com/training/testing/fundamentals.html 用户在不同的级别上与你的应用产生交互.从按下按钮到将信息下载到他们的设备上,因此,你应该在迭代开发应用程序时测试各种用例和交互. 使用迭代开发工作流 当你的应用程序进行扩展时,你可能会发现需要从服务器获取数据,与设备的传感器进行交互,可以还需要访问本地存储,或呈现复杂的用

高效能测试基础架构

前段时间看了一期极客时间和InfoQ举行的公开课,分享老师是eBay中国技术中心测试基础架构技术主管茹炳晟,分享话题:eBay高效能测试基础架构的前世今生. 主要分享了eBay的测试基础架构的设计演进和发展.这篇博客,介绍下我个人听完课程之后的内容总结,仅供参考... 视频下载链接:https://pan.baidu.com/s/107NgTN2YnzGvgQfX9Z5mJQ 密码:hyw1 课程提纲 GUI Automation Test Framework 的前世今生 Test Data P

测试基础之等价类

测试基础之等价类划分法 等价类划分法 定义:输入具有代表性的数据子集 等价类: 有效等价类----满足需求 无效等价类----不满足需求 例:计算两个1--100之间整数的和 数值方面: 有效等价类           1----100之间           60 无效等价类            <1                            0 无效等价类 >100    101 其他(无效):小数 (6.6)  ||  特殊字符 (#,¥) ||  中文 (你好)  || 

测试基础2

15.软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义? 大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法. 接下来是模块集成和集成以便组成完整的软件包.集成测试集中在证实和程序构成问题上.主要采用黑盒测试方法,辅之以白盒测试方法.软件集成后,需要完成确认和系统测试.确认测试提供软件满足所有功能.性能需求的最

安卓测试基础(一)

Testing Fundamentals The Android testing framework, an integral part of the development environment, provides an architecture and powerful tools that help you test every aspect of your application at every level from unit to framework. 安卓测试框架,是开发环境的重

Android测试基础

android测试框架(Android Testing Framework)是开发环境的一部分,它提供了架构和强大的工具帮助你从单元到框架测试应用的各个方面. 关键特性: 基 于 JUnit,可直接使用JUnit测试一些与Android AP不相关的类,或使用 Android的JUint 扩展来测试 Android 组件.如果你刚开始接触 Android 测试,可以先从 AndroidTestCase开始写一些通用目的的测试用例,然后再写较复杂的测试用例. Android JUint扩展提供了对