//////// 单元测试 /////
单元测试大多数由开发人员来完成,测试人员技术背景较好或者开发系统软件时可能会安排测试人员进行单元测试,大多数进行的单元测试都是开发人员调试程序或者开发组系统联合调试的过程。
单元测试一般包括五个方面的测试:
一、 模块接口测试
模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。模块接口测试也是集成测试 的重点,这里进行的测试主要是为后面打好基础。
测试接口正确与否应该考虑下列因素:
1、输入的实际参数与形式参数的个数是否相同;
2、输入的实际参数与形式参数的属性是否匹配;
3、输入的实际参数与形式参数的量纲是否一致;
4、调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;
5、调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;
6、调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;
7、调用预定义函数时所用参数的个数、属性和次序是否正确;
8、是否存在与当前入口点无关的参数引用;
9、是否修改了只读型参数;
10、对全程变量的定义各模块是否一致;
11、是否把某些约束作为参数传递。
如果模块功能包括外部输入输出,还应该考虑下列因素:
1、文件属性是否正确;
2、OPEN/CLOSE语句是否正确;
3、格式说明与输入输出语句是否匹配;
4、缓冲区大小与记录长度是否匹配;
5、文件使用前是否已经打开;
6、是否处理了文件尾;
7、是否处理了输入/输出错误;
8、输出信息中是否有文字性错误。
二、 局部数据结构测试
检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确,局部功能是整个功能运行的基础。重点是一些函数是否正确执行,内部是否运行正确。
局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:
1、不合适或不相容的类型说明;
2、变量无初值;
3、变量初始化或省缺值有错;
4、不正确的变量名(拼错或不正确地截断);
5、出现上溢、下溢和地址异常。
三、 边界条件测试
边界条件测试是单元测试中最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。边界条件测试是一项基础测试,也是后面系统测试 中的功能测试 的重点,边界测试执行的较好,可以大大提高程序健壮性。
四、 模块中所有独立路径测试
在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体做法就是程序员 逐条调试语句。
常见的错误包括:
1、误解或用错了算符优先级;
2、混合类型运算;
3、变量初值错;
4、精度不够;
5、表达式符号错。
比较判断与控制流常常紧密相关,测试时注意下列错误:
1、不同数据类型的对象之间进行比较;
2、错误地使用逻辑运算符或优先级;
3、因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
4、比较运算或变量出错;
5、循环终止条件或不可能出现;
6、迭代发散时不能退出;
7、错误地修改了循环变量。
五、模块的各条错误处理通路测试
程序在遇到异常情况时不应该退出,好的程序应能预见各种出错条件,并预设各种出错处理通路。如果用户不按照正常操作,程序就退出或者停止工作,实际上也是一种缺陷 ,因此单元测试要测试各种错误处理路径。
一般这种测试着重检查下列问题:
1、输出的出错信息难以理解;
2、记录的错误与实际遇到的错误不相符;
3、在程序自定义的出错处理段运行之前,系统已介入;
4、异常处理不当;
5、错误陈述中未能提供足够的定位出错信息。
////////////// 网站测试 //////////
一、功能测试
1、 链接测试
(1)、测试所有链接是否按指示的那样确实链接到了该链接的页面;
(2)、测试所链接的页面是否存在;
(3)、保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。
2、表单测试
(1)、注册、登陆、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性;
(2)、用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等;
(3)、检验默认值的正确性;
(4)、如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。
3、Cookies测试(session测试同)
(1)、Cookies是否起作用;
(2)、Cookies是否按预定的时间进行保存;
(3)、刷新对Cookies有什么影响。
4、设计语言测试
(1)、使用哪种版本的HTML;
(2)、验证脚本语言Javascrīpt。
5、 数据库 测试
(1)、数据一致性错误:主要是由于用户提交的表单信息不正确而造成的;
(2)、输出错误:主要是由于网络速度或程序设计问题等引起的。
二、 性能测试
1、连接速度测试
(1)、Web系统响应时间;
(2)、超时的限制。
2、负载测试
(1)、某个时刻同时访问Web系统的用户数量;
(2)、也可以是在线数据处理的数量。
3、 压力测试
(1)、压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
(2)、压力测试的区域包括表单、登陆和其他信息传输页面等。
三、可用性测试
1、导航测试
(1)、导航是否直观
(2)、Web系统的主要部分是否可通过主页存取
(3)、系统是否需要站点地图、搜索引擎或其他的导航帮助
(4)、Web应用系统的页面结构、导航、菜单、连接的风格是否一致
(5)、Web应用系统导航帮助要尽可能地准确。Web应用系统的层次一旦决定,就要着手测试用户导航功能。
2、图形测试
一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
(1)、要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间;
(2)、Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面;
(3)、验证所有页面字体的风格是否一致;
(4)、背景颜色应该与字体颜色和前景颜色相搭配;
(5)、图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
3、内容测试
检验Web应用系统提供信息的正确性、准确性和相关性。
信息的正确性是指信息是可靠的还是误传的 。
4、整体界面测试
整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?当然,对界面的整体测试并不能单靠个人直觉来评定;每个人的审美观、专业角度、系统面向的行业及用户、甚至性别与年龄等等,都是可能导致对界面作出不同评价的因素。所以要明白在对整体界面的测试过程中,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。
四、兼容性测试
1、平台测试
在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
2、浏览器测试
(1)、浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、Javascrīpt、ActiveX、 plug-ins或不同的HTML规格有不同的支持。
(2)、测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
五、安全性测试
(1)、现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等;
(2)、Web应用系统是否有超时的限制,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用;
(3)、为了保证Web应用系统的安全性,需要测试相关信息是否写进了日志文件、是否可追踪;
(4)、当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性;
(5)、服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
(6)、通过模拟攻击的形式拷贝Web应用程序的某个功能点的url地址,然后打开新的页面输入该url地址看其是否能跨过系统的登录模块直接进入该功能点。
相关推荐
Python Web开发 测试驱动方法 ,(英)珀西瓦尔著 ,P416
这个“ssh_web开发测试程序学习笔记”涵盖了使用这三个框架进行Web开发和测试的基本概念、步骤和最佳实践。 Struts2是MVC(Model-View-Controller)设计模式的一个实现,它提供了强大的表单处理、国际化、异常处理...
MSTRWEB开发测试示例(20211215124453).pdf
《Python Web开发:测试驱动方法》是一本专为Python开发者设计的经典教材,主要探讨了如何在Web开发过程中采用测试驱动开发(TDD)的方法。这本书深入浅出地讲解了Python Web开发的基础,以及如何通过TDD提升代码...
在Web测试中,系统测试报告通常会涵盖以下主要内容: 1. **引言** - **编写目的**:明确报告的目的,比如验证系统功能的正确性,评估性能指标是否满足需求,为项目决策提供依据。 - **预期读者**:指明报告的目标...
HttpMaster Express Edition(web开发测试工具)是一款来自国外,可以帮助你进行Web测试的电脑工具,HttpMaster Express Edition附带了用于测试Web API调用和Web服务的高级工具,使您能够执行简单的复杂请求并根据收到...
本文档就是结合实际的例子来探讨Web服务的创建、测试和使用。详细内容包括: 1,创建Web服务; 2,测试Web服务; 3,生成服务代码类; 4,生成服务代理程序,即DLL文件; 5,本地Web服务的调用; 6,远程调用Web服务...
本书手把手教你从头开始...在这个过程中,你还将学到Django、Selenium、Git、jQuery和Mock的基础知识,以及其他当前流行的Web开发技术。如果你准备提升自己的Python技能,本书将清楚地演示如何使用TDD实现简单的设计。
WEB开发测试 项目名称WEB开发测试 说明WEB应用程序接受经过JavaScript和PhP验证的电子邮件输入。 成功提交后,电子邮件将保存到SQL数据库,在该数据库中可以使用搜索,过滤和删除功能。 入门 WEB应用程序已部署在...
Web开发测试中,源代码分析和链接测试是关键,同时还要进行框架、表格和图形测试,确保窗口大小适应性、滚动条、新页面打开、表格尺寸调整以及图形颜色、链接标识和显示正确。 Web测试与传统应用软件测试的主要区别...
在“web-workshop:小型Web开发测试的汇编”中,我们可以探索一系列关于Web开发的知识点,特别是与JavaScript相关的实践和测试。这个汇编可能是为了帮助开发者熟悉Web开发过程,尤其是JavaScript编程,以及如何进行...
本书从基础的知识开始,讲解Web开发的整个流程,展示如何使用Python做测试驱动开发。本书由三个部分组成。介绍了测试驱动开发和Django的基础知识。第二部分讨论了Web开发要素,探讨了Web开发过程中不可避免的问题,...
1. **免费版限制**:免费版的Ngrok可能会有带宽和连接数的限制,对于频繁的开发测试可能不够用,可以考虑购买专业版。 2. **安全问题**:由于Ngrok暴露了本地服务,因此在不使用时应关闭服务,避免不必要的安全风险...
一、Python Web开发框架 Python提供了多种Web开发框架,如Django、Flask、Tornado等。Django以其全栈特性、内置ORM和丰富的生态受到广泛欢迎;Flask则以轻量级和高度可扩展性著称,适合小型项目和快速原型开发;...
1. **理解Python Web开发流程**:了解从项目构思到上线的完整流程,包括需求分析、设计、编码、测试和部署。 2. **熟悉常用工具**:掌握使用Virtualenv、Mercurial、Jenkins和Ansible等工具,提升开发效率。 3. *...
Web性能测试工具是用于评估和优化网站或Web应用程序性能的关键工具。在IT行业中,特别是对于开发人员、系统管理员和质量保证工程师来说,这类工具是非常重要的。微软提供的Web性能测试工具以其易用性和强大的功能而...
随后,书中详细讲解了如何使用Django框架来进行Web开发,包括Django的安装、基本的Web应用开发流程、模板的使用以及数据的增删改查操作。同时,书中也对Web接口的测试进行了探讨,涉及到了单元测试、模块测试以及...