网站测试技术简介

 更新时间:2016年11月25日 15:18  点击:1801
作者:丁来庆

1 概述
在一个软件项目开发中,系统测试是保证整体项目质量的重要一环,本文将就网站的测试技术及相应的自动测试工具做一个简要的介绍。主要就如下几个方面进行探讨:
功能测试
性能测试
安全性测试
稳定性测试
浏览器兼容性测试
可用性/易用性测试
链接测试
代码合法性测试
2 测试内容
2.1 功能测试
在实际工作中,功能在每一个系统中的具有其不确定性,而我们不可能采用穷举的方法进行测试,因而导致了功能测试较为困难,我们依据80/20原则(即80%的错误存在于系统的20%的部分)对于测试用例的设计采用如下两种方法
2.1.1 白盒测试
白盒测试即使用程序设计的控制结构导出测试用例。基于目前的现状我们采用基本路径测试方法进行白盒测试,此种方法简单高效。基本路径测试方法的简单说明如下:
¨ 首先通过系统设计的流程图导出数据流图
¨ 根据数据流图计算其环形复杂性
V(G)=E-N+2
或 V(G)=P+1
V(G):环形负责性
E :流图中边的数量
N :流图中节点的数量
P :流图中判定节点的数量
¨ 我们设定V(G)条路径
¨ 我们设计V(G)条路径的模拟数据
¨ 根据数据进行相应的测试
2.1.2 黑盒测试
黑盒测试即派生出执行程序所有功能需求的输入条件,从而导出测试用例,进行测试的方法,黑盒测试用于辅助白盒测试。
我们采用等价划分的方法进行测试,即为将程序的输入域划分为数据类,以便导出测试用例。一般情况下输入条件为:一个特定的数值、一个数值域、一组相关值或者一个布尔条件。
2.1.3 网站功能测试
对于网站的测试而言,每一个独立的功能模块需要单独的测试用例的设计导出,主要依据为《需求分析》,对于应用程序模块需要设计者提供基本路径测试法的测试用例
具有测试用例后可以采用OpenSTA(Open System Testing Architecture)进行自动化测试
2.2 性能测试
网站的性能测试对于网站的运行而言异常重要,但是目前对于网站的性能测试做的不够,我们在进行系统设计时也没有一个很好的基准可以参考,因而建立网站的性能测试的一整套的测试方案将是至关重要的。
网站的性能测试主要从两个方面进行:负荷测试(Load)和压力测试(Stress),负荷测试指的是进行一些边界数据的测试,压力测试更像是恶意测试,压力测试倾向应该是致使整个系统崩溃。
第二章
启动阿帕奇
2.1 启动阿帕奇
httpd 这支程序可以藉由网际网路服务程序 inetd 在每一次有连线要
进入 HTTP 服务的时候启动,或者另一种方式,它也可以作为服务程序
(daemon)持续地执行,处理请求。无论选择哪一种方式,都必须设定这
个 ServerType 指令告诉服务器它要如何执行。
2.2 命令列选项
下列选项可以用在 httpd 的命令列上:
-d serverroot
把 ServerRoot 这个参数的起始值设定为 serverroot 。这可以
藉由在配置文件里面的 ServerRoot 命令来加以改变。此预设为
/usr/local/etc/httpd 。
-f config
启动时执行在 config 文件里面的指令。如果 config 没有以 /
作为开始的话,那麽它会被当作相对於 ServerRoot 的路径。此
预设值是 conf/httpd.conf 。
-X
以单一程序(single-process)模式执行,只用在内部除错;服务
程序不会脱离终端作业或是产生任何子程序。不要使用这个模式
来提供正常的网页服务。
-v
列印 httpd 的版本,然後结束。
-?
列印 httpd 选项的一份列表,然後结束。
2.3 配置档
此服务器将会读取三个配置指令文件。任何指令都可以出现在这些文件
任何一个里面。这些文件的名称是相对於服务器的根目录(server root) ;
这是根是藉由 ServerRoot 指令,或是 -d 这个命令列旗标所指定的。
依惯例这些文件是:
conf/httpd.conf
包含控制服务程序运作的指令。文件名称可以配合 -f 命令列旗
旗标加以改变。
conf/srm.conf
包含控制服务器提供给客户端之文件规格的指令。文件名称可以
配合 ResourceConfig 指令加以改变。
conf/access.conf
包含控制文件之存取的指令。文件名称可以配合 AccessConfig
指令加以改变。
无论如何,这些惯例并不需要完全遵奉。
此服务器也会读取一个包含 MIME 文件型态的文件;这个文件名称藉由
TypesConfig 指令设定,而且有个 conf/mini.types 作为预设。
2.4 记录档
2.4.1 pid 档
服务程序启动时,它把父程序 httpd 的程序码(process id)存往这个
log/httpd.pid 文件。这个文件名称可以配合 PidFile 指令加以改变
。这个程序码由管理者用来重新启动或终止服务程序;一个 HUP 信号
会使服务程序重新读取其配置档而一个 TERM 信号会使它终止。
4.5 mod_cgi 模组
这个模组包含在 mod_cgi.c 文件里,而且依预设会编译进来。它提供
CGI 指令稿的执行能力。任何 mime 型态为 application/x-httpd-cgi
的文件都将由这个模组处理。
4.5.1 摘要
任何拥有 application/x-httpd-cgi 之 mime 型态的文件都会被当作
CGI 指令稿,而且由服务器执行,并把输出传回客户端。文件可以藉由
使用 AddType 指令所定义的副文件名,或是藉由放在 ScriptAlias 所
设定的目录来成为这种型态。
当服务器启动一个 CGI 指令稿时,它将加上一个称为 DOCUMENT_ROOT
的环境参数。这个参数将会包含 DocumentRoot 配置的内容。
4.5.2 CGI 环境参数
这个服务器将会设立定义在 CGI 规格中的 CGI 环境参数,配合下列
的但书:
REMOTE_HOST
这只有在服务器没有配合 MINIMAL_DNS 编译的时候才会设定。
REMOTE_IDENT
这只有在 IdentityCheck 设为 on 的时候才会设定。
REMOTE_USER
这只有在 CGI 指令稿需要验认的时候才会设定。
4.6 mod_dir 模组
这个模组包含在 mod_dir.c 文件里,而且依预设会编译进来。它提供
作为目录索引之用。
4.6.1 摘要
这个模组控制目录索引。目录的索引可以有两种来源:
。一个由使用者所撰写的文件,典型是称为 index.html 的文件
。DrectoryIndex 指令设定这个文件的名称。
。另一种是由服务器所产生的列表。其它的指令控制这个列表的
格式。AddIcon, AddIconByEncoding and AddIconByType 都
是用来设定显示不同文件型态所使用的图示列表;对於每种列
出的文件型态,显示列出的第一个符合的图示。
4.6.2 AddDescription
语法: AddDescription 字串 文件 文件 ...
用於: server config, virtual host, directory, .htaccess
需求: Indexes
状态: 基础
模组: mod_dir
这是设定某文件所要显示的描述,供象徵索引(FancyIndexing) 使用。
文件是指所要描述之文件的副文件名,部份文件名称,替代字元表示式或
完整文件名称。
 字串以双引号(") 括起。例如:
AddDescription "The planet Mars" /web/pics/mars.gif
4.6.3 AddIcon
语法: AddIcon 图示 名称 名称 ...
用於: server config, virtual host, directory, .htaccess
作者:田占海

1 引言
如果你是一个程序员,可能常常为不能按时完成任务而苦恼。如果你是一个项目经理,可能会觉得开发符合预算和进度要求的软件简直难于上青天。实际上,软件项目常常严重超期或超出预算仍是困扰着绝大多数软件机构的难题。据美国一份评估报告显示,17个主要的国防部软件合同中,平均28个月的进度计划推迟了20个月才完成。一个4年应该完成的任务,7年还未提交,其中没有一个项目按时完成。由于存在软件问题,B1轰炸机的部署被推迟了,同样的原因,580亿美元的A12飞机计划也被部分取消了。持续了二三十年的软件危机为什么愈演愈烈?软件开发为什么如此之难?本文试结合作者的体会对软件开发的困难之处做一剖析,并提出一些建议。
2 困难所在
2.1 极大的复杂性
大多数大型软件软件产品由几十甚至几百万行源代码构成,例如:Windows95操作系统由大约1100万行代码组成。每一行代码都可能影响到程序的其它部分,并且各个部分之间都可能互相影响。这样一个错综复杂的巨大系统当中,每一个小小的错误都可能导致整个系统崩溃。有些大型软件,例如Windows,可能是人类曾经建造过的最复杂的事物之一,从古至今最复杂的建筑都无法与之相比。
2.2 高度的不确定性
一个软件项目从一开始就存在许多不确定性因素。其一:用户需求很难确定。这是因为软件开发者很难详细了解用户的需求,甚至用户在看到产品之前也不清楚自己到底需要什么,所以从项目开发的自始至终都可能会有新的需求提出,致使系统结构不断修改,最终面目全非。其二:设计不完全可以预测。有时,一个设计时认为可行的方案,在实现时可能行不通,或者最初的设计方案存在很大的缺陷而没有及时发现,或者突然一个设计时没有料到的技术难点阻挡了项目的进度。从设计到实现实际上有着很大的不可预测性。其三:用户需求不断变化,如果最初的用户需求没有了解的很清楚,可能整个项目很快就会陷在不断变化的需求之中不能自拔。其四:客观条件的不确定性。在项目的进展过程中,可能会有人员的流动,可能会有资源的调整,可能会有这样或那样的客观条件的限制而阻挡了项目的正常进行。在这样高度的不确定之中,在较早阶段精确估计一个项目不只是很难地,甚至是不可能的。
3 造成工期延误的原因
3.1 开发人员的过分乐观
许多开发人员倾向于一切都会进展顺利,这种盲目的自信对于项目开发来说是不对的。如果按照最乐观的估计,可能绝大多数任务都不能按时完成,因为在软件开发中不确定因素实在太多了。对于任务的复杂性和难度,对于自己能支配的时间,对于可能的突发事件的干扰等没有清楚的认识和估计,即使对自己的时间表作出保证,也可能常常无法按时交货。
许多机构已经采用了Apach和PHP作为他们的Web应用环境。在Web services模式中采用PHP可能看上去可能会比较难。但是事实上,搭配NuSoap,你可以轻松的应用PHP构建SOAP的客户端和服务器端。

一个例子便能说明一切,让我们先看一个例子

为了说明如何应用NuSoap和PHP来构建Web services,我们将举一个简单的例子。这个例子应用程序由一个PHP Web services的服务器端和客户端组成。他将实现两个功能:颠倒一个字符串字符的顺序,求两个数的和。

PHP SOAP服务器
用PHP和NuSoap来建立SOAP服务器非常容易。基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了。

OK,另外还需要两步才能完成PHP SOAP服务器的建立。首先你还要在你的PHP代码中创建NuSoap对象的一个实例,然后用HTTP POST方法将原始数据传给NuSoap进行处理。听起来简单吧。先看看清单1。

清单1:soapfunc.php
<?
require_once('nusoap.php');
function reverse($str){
    $retval = "";
     if(strlen($str) < 1) {
    return new soap_fault('Client','','Invalid string');
     }
     for ($i = 1; $i <= strlen($str); $i++) {
        $retval .= $str[(strlen($str) - $i)];
     }
    return $retval;
}
function add2numbers($num1, $num2) {
     if (trim($num1) != intval($num1)) {
        return new soap_fault('Client', '', 'The     first number is invalid');
    }
    if (trim($num2) != intval($num2)) {
    return new soap_fault('Client', '', 'The second number is invalid');
    }
    return ($num1 + $num2);
}
?>
清单1给出了soapfunc.php的源文件。这个文件包含了我们想通过SOAP协议暴露给Web services的两个函数:reverse和add2numbers,它们是我们这个Web services 应用的核心。函数reverse带一个参数,颠倒字符串中的字符的顺序,然后返回。
[!--infotagslink--]

相关文章

  • http 402错误是什么 http 402简介

    http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。 HTTP 402错误是HTTP状态码的一种,表示“要求付费”; 所求的...2017-01-22
  • 解决@SpringBootTest 单元测试遇到的坑

    这篇文章主要介绍了解决@SpringBootTest 单元测试遇到的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-14
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • mac下Apache + MySql + PHP搭建网站开发环境

    首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷。可也许因为我懒吧,我是那种“既然有现成的,用就是了”的人。君子生非异也,善假于物也。两千年前的荀子就教导我们,要善于利用工具...2014-06-07
  • DWVA上传漏洞挖掘的测试例子

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞...2016-11-25
  • 用VirtualBox构建MySQL测试环境

    宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • 网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例

    网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30
  • 个人站长做网站应该考虑的一些问题

    个人网站建设应该考虑哪些问题呢?这个问题我们先在这里不说,下文会一一列出来,希望这些建义能帮助到各位同学哦。 我相信VIP成员里面有很多站长,每个人几乎都拥有一个...2016-10-10
  • php测试性能代码

    php测试性能代码 function microtime_float () { list ($usec, $sec) = explode(" ", microtime()); return ((float) $usec + (float) $sec); } functio...2016-11-25
  • 分享利用论坛签名提升网站权重

    分享一篇利用论坛签名提升网站权重的方法,在推广中论坛签名也是一种不错的外链推荐的方法,但现在权重越来越低了,有需要的朋友可以看看。 话说有一天在站长网上面看...2016-10-10
  • phpmyadmin写入一句话木马的测试

    下面我们一起来看看一篇关于phpmyadmin写入一句话木马的测试教程,希望此教程能够对各位有帮助。 方法一,一句话木马偶尔拿到一个config中,发现是root,且还有phpmyadmi...2016-11-25
  • 网站排名提升后稳定排名方法

    一、靠前排名成搜索关注的对象   从搜索引擎的角度考虑一下,就不难理解为什么搜索引擎对排名在首页的网站那么慎重,甚至对新进排名在首页的一些网站进行为期一个多月的...2016-10-10
  • 如何有效提高网站的用户回头率

    第一,网站的内容;请各位站长朋友不要一天到晚只想着出什么好的绝招来推广网站,却忽略了网站的内容;其实网站的内容是极为重要的,因为这是你的本,你的根!网站的内容只有不断...2017-07-06
  • 如何提高网站pv 吸引力

    关于如何提高网站的吸引呢,下面我们列出了5点,让你的网站pv大大的提升哦   1、建立一个清晰的网站地图   一个清晰的网站地图可以给你的用户提供一个简介明了的...2017-07-06
  • 用PHP与XML联手进行网站编程

    一、小序 HTML简单易学又通用,一般的PHP程序就是嵌入在HTML语言之中实现的。但是随着WEB越来越广泛的应用,HTML的弱点也越来越明显了。XML的出现,弥补了这些不足,它提供...2016-11-25
  • js简单网速测试方法完整实例

    这篇文章主要介绍了js简单网速测试方法,以完整实例形式分析了JavaScript基于网页图片下载进行测试网速的实现技巧,需要的朋友可以参考下...2015-12-17