希望在这里和大家进行真诚的交流,让我们成为人生路上不可缺少的好朋友!

(特定环境及应用测试)软件测试

上一篇 / 下一篇  2007-09-08 19:10:28 / 个人分类:测试理论

 

写这些代码的一些软件测试笔记是为了今后学习时,可以翻阅,也希望大家给一些的意见。谢谢。 

Web网站的测试

基于web的系统测试不但需要检查和验证是否按照设计的要求运行 ,而且还要评价系统在不同用户的浏览器端的显示是否合适 。重要的是,还要从最终用户的角度进行安全性和可用性测试。从功能,性能,可用性,客户端兼容性,安全性等方面讨论了基于web的系统测试方法。

测试用户在表单中进行注册,提交时完整性,以效验提交的给服务器的息信的正确性。

(5)动态内容测试

 动态内容是指根据条件产生变化的文字和图形。

对网站的测试包含多个方面:配置测试,兼容测试,可用性测试,文档测试等。

网页测试包括以下几个方面。

     (1)文字测试

网页文字可以看作是软件文档,通常注意的是检查用户等级,术语,内容,准确度,内容的时效性。

    (2)链接测试  

链接是web网站的一个主要特征,它的功能作用是在网页间进行切换和指导用户访问不需要知道地址的网页网面的主要手段.链接测试可分为以下的几个方面:

 ●测试所有链接是否能按照指示的那样正确链接到了应用链接的页面。

 ●测试所链接的页面是否存在。

 

 ●确保不存在的页面,即没有链接的指向的页面。

      (3)图像,图像测试

web应用系统的图形可以包括图片,动画,边框,颜色,字体,背景,按钮等。

确保图形有明确的用途,图片或动画不乱放。

背景颜色应该与字体颜色和前景颜色相搭配。

图片的大小和质量也是重要的因素,一般采取JPG或GIF压缩。

所有图形是否能够正确载入和显示。

(4)表单测试

表单是网页上用于输入和选择信息的文本框,列表框和其他域。

表单测试检查域的大小,数据接收是否正确,可选域是否可以进行选择等一些列内容。

大多数动态内容的编码在网站服务器上进行。要求具有web服务器的访问权限才能察看程序代码。

(6)Cookies测试

测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有何影响等。

 

网站测试

(1)数据库测试

 ●数据库为web应用系统的管理,运行,查询和实现用户对数据存储的请求提供空间。主要考虑存在数据库的两种故障进测试:第一是数据一致性的问题:第二是输出故障。

(2)服务器性能及负载(压力)测试

 ●通常应用模型的方法实现的,即通过某种程序方法(工具软件)模拟上万个链接和下载来判断服务器的响应时间,并发访问数量等性能与负载能力。

 (3)可行性测试

 ●整体页面测试

 整体页面是指整个web应用系统的页面设计,是用户的一个整体感。一般web应用系统采取在主页上做一个调查问卷的方式,来得到最终用户的反馈信息。

 ●导航测试

 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间。

 例如按钮,对话框,列表,和窗口等。或在不同的链接页面之间。通过考虑以下问题,一个web应用系统是否易于导航:导航是否直观,web系统的主要部分是否可通过主页存取,web系统是否需要站点地图,搜索一条引擎或其他的导航帮助。扫描一个web应用系统,看是否有满足自己需要的信息,如果没有,就会很快离开。看web应用系统的页面结构,导航,菜单,连接的风格是否一致。

  

(4)安全性测试

现在的web应用系统基本采用先注册,后登录的方式。因此测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以尝试多少次登录的限制,是否可以不登录而直接浏览某个页面等。

web应用系统有超时的限制,即用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

为了保证web系统的安全性,日志文件至关重要。需要测试相关信息是否写进了日志文件,是否可追踪。

当使用了安全套接字时,需要测试加密是否正确,检查信息的完整性。

服务器端的脚本常常构成安全漏洞,因为这些是网络黑客主要的攻击目标。所以还要测试没有经过授权,就拒绝在服务器端放置和编辑脚本的问题。

  

图形用户界面GUI测试

(1)窗体操作测试

窗体控件的大小。对齐方式,颜色,背景等属性的设置值是否和程序设计规约相一致。

窗体控件布局是否合理,美观,窗体控件TAB顺序是否从左到右,从上到下窗体焦点是否按照编程规范落在既定的空间上。

窗体画面文字(全.半间.格式.拼写)是否正确.

窗体大小能否改变,移动或滚动,能否相应相关的输入或菜单命令.

窗体中的数据内容能否用鼠标,功能键,方向箭头和键盘操作访问.

显示多个窗体时,窗体名称能否正确表示,活动窗体是否被加亮.

多用户联机时所有的窗体是否能够实时更新,窗体的声音及提示是否符合既定编程规则.

相关的下拉菜单,工具条,流动条,对话框,按钮,及其它控制是否能够正确并完全可用.

鼠标无规则点击时是否会产生无法预料的结果.

窗体的声音和颜色提示和窗体的操作顺序是否符合要求.

如果使用多任务,是否所有的窗体被实时更新.

当被覆盖并重新调用后,窗体能否正确的再生.

需要时能否使用所有窗体相关的功能,所有窗体相关的功能是可操作的。

窗体能否被正确关闭。

  

(2)下拉式菜单和鼠标操作测试

应用程序的菜单是否显示系统相关的特性(如时钟显示)。

是否的适应的列出了所有的菜单功能和下拉式子功能。

菜单功能是否正确执行。

菜单的的名字是否具有自解性,菜单项是否有帮助,是否语境相关。

菜单条,调色板和工具条是否在合适的语境中正常现实和工作

下拉式菜单相关操作是否使用正常,功能是否正确。

能否通过鼠标来访问完成所有的菜单功能。

能否通过用其它的文本命令激活每个菜单功能。

菜单功能能否随着当前的窗体操作加亮或变灰。

在整个交互式语境中是否可正确识别鼠标操作,如要求多次单击鼠标,或鼠标有多个按钮。

光标,处理指示器和识别指针能否随操作而相应的改变。

鼠标有多个形状时是否能够被窗体识别(如漏斗状时窗体不接受输入)。

 (3)数据项操作测试

数据项(数字,字母)能否正确回显,并输入到系统中。

图形模式的数据项(列入滚动条)是否能正常工作。

数据输入消息是否得正确理解,能否识别非法数据。

数据输入消息是否可理解

   

客户/服务器体系结构的测试

(1)客户端的测试

客户端的测试这部分测试主要表现为客户端的业务逻辑流程的应用(程序)的检测。

操作系统平台测试:需要在各种操作下对客户端系统进行兼容性测试。

浏览器测试:测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商,不同版本的浏览器对某些构建和设置的适应性。

(2)客户端与服务器的集成测试

① 服务器测试 

 服务器的测试主要是性能测试。测试包含服务器的协调和数据管理功能,以及服务器的性能(整体响应时间和数据的吞吐量)的表现

数据库测试:输入,提交信息错误和一致性错误的测试。一致性的错误主        要是用户提交的信息(在web方式下是表单)不正确而造成的,而输入错误主要是由于网速度或程序设计问题等引起。

连接速度测试:主要是在web应用系统上进行上网测试看打开网页的速度快慢,输入的信息是否丢失。

负载测试:主要是在c/s系统上测试在某一时间能允许多少个用户同时登陆,访问,若超过这个数量,会出现什么现象?Web应用系统能否处理大用户量对同一个页面的请求等等。

压力测试:压力测试通常是针对web应用系统负载能力极限的测试。

    

②对应服务器的测试

主要对c/s体系测试一般采取非增量式的方法来完成。还要对它的一些测试,在服务器上通常要架构并运行应用系统的业务逻辑程序,它表现为中间件的形式。

(3)整体测试

事务测试:测试服务器存储的数据的精确性和完整性,检查客户端应用提交的事务,以保证数据被正确的存储,更新,检索。

网络通信测试:这些测试验证网络节点间的通信正常的发生,并且消息传递,事务和相关的网络通信无错误的发生。

 

面向对象测试 

1.面向对象及面对对象程序设计基本概念回顾

(1)对象

对象是一个可操作的实体,它即包含了特定的数据,也包括了操作这些数据的代码。

 ⑵类

类是一些具有共性的对象集合。类可以看作是创建对象的模板。

⑶消息

消息是对象的操作将要执行的一种请求,因此也被称为成员函数调用或者方法调用。

⑷接口

是行为声明的集合。行为被集中在一起,并通过单个的概念定义相关的动作。

⑸继承

继承是类的一种联系,允许一个新的类在一个已有的类的基础上进行定义。

⑹多态

多态提供了将对象看作是一种或多种类型的能力,它定义了用来支持多种不同类型所适应的策略。多态支持灵活的程序设计,同时易于维护。

⑺动态绑定

动态绑定是类具有不同表现形式的一种具体体现,动态绑定使得程序设计和编码比以前更加抽象。

   

面向对象软件测试模型

(1) 面向对象分析的测试( OOA  test ):

对认定的对象的测试

对认定的结构的测试

对认定的主题的测试

对定义的属性和实例关联的测试

对定义的服务和消息关联的测试

对认定的对象的测试

(2)面向的设计的测试(OOD test

OOD确定类和类结构不仅满足当前需求分析的要求,更重要的是通过重新组合加以适当的补充,能方便实现功能的重用和扩展,以不断的适应用户的要求。

①对认定类的测试

是否覆盖了OOA中所有认定的对象。

是否能体现OOA中所定义的属性

是否能实现OOA中定义的服务。

是否对应着一个含义明确的数据抽象。

是否尽可能少的依赖其他类。

类中的方法(如C++:类的成员函数)是否单用途。

   

②对构造的类层次结构的测试

类层次结构是否涵盖了所有定义的类。

是否体现了OOA中所定义的实例关联。

是否实现了OOA中所定义的消息关联。

子类是否具有父类所没有的新特性。

子类间的共同特性是否完全在父类中得以体现。

③对类库的测试

一组子类中关于某中含义相同或基本相同的操作,是否有相同的接口(包括名字和参数表)。

类中方法(如C++:类的成员函数)功能是否较单纯,相应的代码行是否较少。

类的层次结构是否是深度大,宽度小。

(3)面向对象编程的测试(OOP test)

①数据成员是否满足数据封装的要求

★检查数据成员变量是否满足数据封装的要求,基本原则是数据成员是否被外界(数据成员所属的类或或子类以外的调用)直接调用。

②类是否实现了要求的功能

测试类的功能实现时,应首先保证类成员函数的正确性。需要进行面向对象的集成测试。

  

(4)面向对象的单元测试(OO Unit Test)

在面向对象的设计中,单元概念已不是模块,面向对象软件的类测试等价于面向过程的单元测试。传统的单元测试主要关注模块的算法和模块间的数据流动,即输入和输出。而面向对象的类测试主要是测试封装在类中的操作以及类的状态行为。主要的测试方法有:等价类划分法、因果图法、边界值分析法、逻辑覆盖法、路径分析法和程序插装法等。

1:继承的成员函数是否都不需要测试,有两种情况需要重新测试。

(1):继承的成员函数在子类中做了改动。

(2):成员函数调用了改动过的成员函数的部分。

2:对父类的测试是否能照搬到子类中进行

(5)面向对象的集成测试(OO Integrate Test)

  面向对象的集成测试需要两级集成:一是将成员函数集成到完整的类中,二是将类与其他类集成。主要有以下两中测试策略:

     1:基于线程的测试

      2:基于使用的测试

1:测试用例有以下步骤:

     1:先选定检查的类

      2:确定覆盖标准。

      3:利用结构关系图确定待测类的所有关联。

      4:根据程序中类的对象构造测试用例,确认使用什么输入激发类的状态。

   

web压力测试

 1:测试方法

  a:单元测试:单元测试几乎是针对软件(程序)产品的小的、特定的部分。适合与其他代码组件极少交互的情形。

   b:功能测试:检查服务是否能够正确执行它的每个功能。

   c:系统测试:主要有3部分组成

        <1>:性能:这涉及到确定相关的产品统计数据的过程。

         <2>:案例:这是重新创建客户所需的确切配置的过程。

         <3>:压力:设计通过应用很大的工作负载来使软件超负荷运转。

2:压力测试下的错误类型:主要有两种类型

   a:内存泄漏

          内存泄漏通常要求操作重复非常多的次数后,以致使得内存消耗达到了能足以引起注意的程度。

   b:并发与同步

          并发是同时执行多个操作的行为、就是同一时间执行多个测试。

3:设计压力测试的应用

    a:重复

    b:并发

    c:量级

    d:随机变化

  

(6)面向对象的系统测试(OO System Test)

具体测试包括以下内容:

    1:功能测试

    2:强度测试

    3:性能测试

    4:安全测试

    5:恢复测试

    6:可用性测试

    7:安装/卸载测试

六、面向对象的覆盖率

    1:集成上下文覆盖

    2:基于状态的上下文覆盖

    3:已定义用户上下文覆盖


TAG: 测试理论

 

评分:0

我来说两句

Open Toolbar