渗透测试中主要有软件测试和渗透测试。
1、测试对象不同
软件测试:主要测试的是程序、数据、文档。
渗透测试:对象主要为网络设备、主机操作系统、数据库系统和应用系统。
2、测试内容不同
软件测试:主要工作内容是验证和确认,发现软件中的缺陷或者不足,然后把发现的问题整理成报告并分析出软件质量的好坏。验证是保证软件正确地实现了一些特定功能的一系列活动;确认是一系列的活动和过程,目的是想证实一个给定的外部环境中软件的逻辑正确性,即保证软件做了你所期望的事情。
渗透测试:主要包括黑盒测试、白盒测试和灰盒测试。主要做的工作有:信息收集、端口扫描、权限提升、远程溢出攻击、Web应用测试、SQL注入攻击、检测页面隐藏字段、跨站攻击、Cookie利用、后门程序检查、第三方软件误配置等。
3、测试原则不同
软件测试:
①测试应该尽早进行;
②软件测试应该由第三方来负责;
③设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件;
④应该充分注意测试中的群集现象;
⑤对错误结果要进行一个确认过程;
⑥制定严格的测试计划;
⑦妥善保存测试计划、测试用例、出错统计和最终分析报告。
渗透测试:
①测试验证时间放在业务量最小的时间进行;
②测试执行前确保相关数据进行备份;
③所有测试在执行前和维护人员进行沟通确认;
④在测试过程中出现异常情况时立即停止测试并及时恢复系统;
⑤对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。
总而言之,软件测试更多的是以正常使用者的角度为出发点,测试软件的可用性;而渗透测试则是以极端攻击者的角度出发,测试系统的安全性。