软件测试理论的基础知识(软件测试这些基础知识你一定要知道)

一、测试用例

1、什么是测试用例

一组由前提条件、输入、执行条件、预期结果等组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档

2、为什么要写测试用例

科学有效的对测试步骤进行组织规划,方便管理,记录

3、测试用例主要包含哪些内容

编号、日期、设计和测试人员、优先级、标题、目标、环境、输入数据/动作、预期结果

4、编写测试用例需要什么

软件需求设计说明书、软件模板

5、设计测试用例的注意事项

从高到低,独立性,与功能一一对应,根据需求设计,由有经验的人员设计

6、设计测试用例的原则

有模板,正确性,代表性,可判断性,重现性,详细准确清晰的步骤,符合规范

7、用例的管理工具

市场上的用例缺陷管理工具很多:蛰了列举几个:mantis、redmine、jira、bugzilla、禅道等

8、用例的管理过程

编写→评审(修改→再次评审)→使用→保存管理→维护/升级

9、测试用例内容

目标的描述、环境、输入输出数据/动作、步骤、预期结果、备注等

软件测试理论的基础知识(软件测试这些基础知识你一定要知道)(1)

二、单元测试

一种验证行为,程序中每一项都需要验证

1、目的

①、检查单元模块内部错误,为软件评审提供依据

②、测试模块内重要的路径,以程序设计说明书和测试数据为依据,以检查出错误

③、检查信息能否正确流入和流出单元

④、内部数据的完整性、数据形式相互关系的正确性,以及全局变量在单元中的处理和影响

⑤、数据在边界处能否正常工作

⑥、单元的运行能否满足特点的逻辑覆盖

⑦、错误处理机制是否有效

2、主要任务

程序语法检查、程序逻辑检查、模块接口测试、局部数据结构测试、路径测试、边界条件测试、错误处理测试、代码书写规范检查

2.1程序语法检查

①.编译语言对程序进行检查

②.人工检查

2.2程序逻辑检查

①.检查程序逻辑是否正确

②.程序中的循环语句上下项以及循环次数是否有问题

③.函数或子模块是否有自我调用问题

2.3模块接口测试

模块接口是模块内核模块外联系的关键部位;当模块通过外部调用时,数据必须正确流入,当模块结束问题的处理返回调用模块时,数据必须能正确流出

2.4局部数据结构测试

局部数据结构是为了保证临时存储在模块内的数据,模块错误根源往往是局部数据结构

表现形式如下:

①.局部数据结构测试最常见的积累错误

②.不适合或者不相容的类型说明

③.变量无初值

④.变量初始化或者缺省值有错

⑤.不正确的变量名或者不正确的截断

⑥.出现上溢、下溢或者地址异常

2.5路径测试

对模块中的重要的执行路径进行测试,路径错误主要由错误的计算,不正确的比较或者不正常的控制流导致

2.6边界条件测试

容易出错的因素:

①.程序内有一个n次循环,这个n次循环应该是1~n,而不是0~n

②.由小于、小于等于、等于、大于、大于等于、不等于确定的比较值出错

③.出现上溢、下溢和地址异常问题

2.7错误处理测试

完善的模块设计要求能预见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重做安排,保证其逻辑上的正确性

2.8代码书写规范检查

①.模块设计程序框架流程图

②.代码书写规范,对齐方式

③.代码的注释

④.参数类型,数据长度,指针,数组长度 大小

⑤.输入输出参数和结果

3、单元测试的步骤

单元测试是针对每个程序的单体调试,主要步分为程序语法检查和程序逻辑检查

三、功能测试

定义:功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能;只需要考虑它的功能点不需要考虑软件的内部结构及代码等

WEB:

1、功能测试

1.1链接测试

链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点:

①.链接是否按照既定指示那样,确实链接到了该链接的界面

②.测试该链接所链接的页面是否真的存在

③.保证系统中没有单独存在的页面(即没有链接指向,只能通过正确的URL地址才能访问)

1.2表单测试

也可以理解为数据落地;当用户在web应用系统上向服务器提交信息时,就需要使用表单操作,比如,用户注册,登录,信息变更等等;这种情况下,我们必须测试提交信息的完整性,以检验提交给服务器的数据的正确性,

当然,这个还涉及到一些常理性的逻辑,比如,出生日期和职业,工作年限是否恰当,所在地省份城市区域间的匹配等,如果设定使用默认值,也需要测试。

软件测试理论的基础知识(软件测试这些基础知识你一定要知道)(2)

1.3导航测试

作为测试,很多时候都要站在用户的角度去思考,大部分用户都是目的驱动的,当他访问一个网站或者web系统时,会很快的浏览系统,找不到满足自己需求的信息时,会很快离开,很少有用户愿意花时间去熟悉系统的结构;

导航测试,就是在不同的页面跳转之间,或者按钮,对话框,列表以及窗口等,通过考虑这些因素,去判断一个应用系统是否易于导航:是否直观?系统的主要模块是否可以通过主页访问或者到达?

站点是否需要站内地图或者搜索引擎等其他帮助?web系统导航的另外一个重点就是页面结构、导航、菜单、风格等是否一致,确保用户可以凭借直觉或者简单的判断就可以找到自己想要的内容。

1.4图形测试

可以理解为UI测试,其中包括图片、动画、边框、颜色、字体、背景、按钮等等。

其中要考虑以下几个重点:

①.图片要有明确的用途,代表;图片尺寸尽量小,一般采用JPG或者GIF压缩

②.页面整体风格是否和系统的用途一致

③.背景颜色,字体,搭配是否合理

1.5内容测试

主要用来检测web系统提供信息的准确性、相关性,比如:商品的价格,文字描述;信息的准确性,是否有拼写错误;信息的相关性,比如很多网站的“相关文章列表,视频列表等”

1.6整体界面测试

也就是我们常说的用户体验。用户浏览时是否感觉舒适,整体风格等等一般做一个类似问卷调查的形式,来判定用户的反馈信息,最好有最终用户的参与

2、兼容性测试

2.1平台兼容

现在有很多的操作系统,比如Windows、Unix、Linux、macintosh等;用户使用哪个系统取决于用户,因此,系统兼容测试就很有必要。

2.2浏览器兼容

浏览器是web客户端最核心的组件,不同的浏览器,对Java,JavaScript,css或者HTML的规格都有不同的支持;另外,采用的框架和结构风格在不同浏览器中也存在不同的显示甚至不显示,不同的浏览器对安全性的设置也是不同的。

测试浏览器兼容,有个方法就是创建一个兼容性矩阵,来测试不同厂商不同版本的浏览器兼容。

比如测试IE浏览器,可以通过一个叫做IEtester的工具来测试兼容,或者可以通过F12控制台来切换浏览器版本来测试兼容以前一些前端元素的显示等

3、安全测试

安全测试的主要区域有以下几点:

3.1用户名和密码的有效无效性,注意大小写敏感,次数限制,是否可以不登录而浏览某些页面等

3.2是否有超时限制

3.3测试用户操作时相关信息是否写入了日志文件、是否可追踪等

3.4如果使用了安全套字,需要测试加密是否正确,加密前后的信息完整性,正确性

3.5没有经过授权,是否可以在服务器端或者前端放置和编辑脚本的问题

4、输入框测试

下面就是一些注意点:

4.1验证输入输出信息的一致性

4.2输入框前面的文字提示是否正确

4.3对特殊字符的处理、识别:单双引号,括号,逗号、分号等等,以及大小写状态,半角全角状态下的情况

4.4输入框的大小、长度、边框等

4.5不同字符的输入,以及字符组合情况的处理(数字 字母 字符等)

4.6对空格、tab换行键的处理机制

4.7密码输入框字符星号或者其他星号的转行,加密

4.8输入框输入字符长度是否有限制

4.9字符本身显示的颜色,规格等

4.10有些输入框需要加以限制,如输错,是否有提示?提示是否简单合理?

4.11输入状态,某种情况下输入框出于不可编辑,当再次处于编辑状态,输入框的输入状态是否有变化

4.12输入类型:是否允许复制黏贴剪切等输入操作

4.13关键字是否支持通配符,以及关键字的搜索能力,敏感字等情况

4.14输入框输入空格的情况

4.15比如登陆注册,各项输入条件的判定:是否输入,输入是否正确等

5、用户权限测试

用户权限,就是该账号拥有哪些执行操作的权利

5.1给某账号赋予权限后,登陆该账号,查看是否拥有已赋予的权限,以及权限设置是否正确(权限是否超过或者不足)

5.2删除或修改已经登陆并且正在执行操作的账号权限,程序能否正确处理,验证

5.3重新注册系统变更登陆身份后再登陆,程序能否正确执行,之前所拥有的权限能否继续使用

5.4在用工作分配或者角色管理情况下,删除包含用户的工作组或者角色,程序能否正确处理

5.5不同权限账号登陆同一个系统,权限范围是否正确

5.6能否给信息为空、长用户名的账号添加权限

5.7是否允许删除系统管理员或者修改管理员权限?删除或者修改后的实际情况

5.8已登录的用户能否修改或者删除自己或者他人的权限,信息

5.9添加用户(有编号或者标识),不同用户名标识的组合情况下,权限能否处理正确

5.10修改用户权限或者信息后,对其他模块是否有影响

5.11如果修改用户信息和已存在的其他用户信息相同,能否修改成功?是否有对应提示

5.12修改某些设置,是否会对与该账号权限相同或者高于/低于该账号的其他账号的权限造成影响

5.13同一用户是否可以同时属于其他组,各个组的权限能否交叉

软件测试理论的基础知识(软件测试这些基础知识你一定要知道)(3)

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的话可以的找我哦。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页