学分高考 软件测试

软件安全性测试包括哪些方面

发布时间: 2023-04-07 17:05:04

软件安全性测试包括哪些方面

[��ǩ:����]

软件安全性测试包括程序、网络、数据库安全性测试,根据系统安全指标不同测试策略也不同。

1、用户程序安全的测试要考虑问题包括:

① 明确区分系统中不同用户权限。

② 系统中会不会出现用户冲突。

③ 系统会不会因用户的权限的改变造成混乱。

④ 用户登陆密码是否是可见、可复制。

⑤ 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)。

⑥ 用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统。

2、系统网络安全的测试要考虑问题包括:

① 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上。

② 模拟非授权攻击,看防护系统是否坚固。

③ 采用成熟的网络漏洞检查工具检查系统相关漏洞。

④ 采用各种木马检查工具检查系统木马情况。

⑤ 采用各种防外挂工具检查系统各组程序的客外挂漏洞。

3、数据库安全考虑问题:

① 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)。

② 系统数据的完整性。

③ 系统数据可管理性。

④ 系统数据的独立性。

⑤ 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。

最受欢迎的软件安全性测试工具有哪些?

之前在做 国内软件测试现状调查 之时,因为安全性测试工具太多,结果显示其分布比较广,填写“其它”占的比重很高(66%),为此专门做了一个调查 ,虽然收集的有效反馈不多(不到100),但基本反映了测试工具的使用现状。

1. 从总体看,(静态的)代码分析工具和(动态的)渗透测试工具应用还是比较普遍 ,超过60%,而且渗透测试工具(73.68%)略显优势,高出10%。模糊测试工具,可能大家感觉陌生,低至16%,但它在安全性、可靠性测试中还是能发挥作用的。从理论上看,代码分析工具应该能达到95%以上,因为它易用,且安全性已经是许多公司的红线,得到足够重视。希望以后各个公司能够加强代码分析工具和模糊测试工具的应用。

2. Java代码安全性分析工具前三名是 : IBM AppScan Source Edition(42.11%)、Fotify Static Code Analyzer(36.84%)、Findbugs(26.32%) ,而JTest、PMD等没进入前三名,虽然和第3名差距不大,只有5%左右。也有公司使用Checkmarx,不在此调查中。Coverity也支持Java,可能Java的开源工具较多,人们很少用它。

3. C/C++代码安全性分析工具前三名是 : C++Test(38.89%)、IBM AppScan Source Edition(38.89%)、Fotify Static Code Analyzer(27.78%)、Visual Studio(27.78%)。Coverity、CppCheck、LDRA Testbed 没能进入前三名,可能LDRA Testbed比较贵,关键的嵌入式软件采用比较多,而Coverity Cloud针对Github等上面的代码有免费服务(https://scan.coverity.com/projects/cloud-dirigible),大家可以尝试应用。

4. Javascript代码安全性分析工具应用最多的是 Google's Closure Compiler,其次是JSHint,也有的公司用Coverity来进行JS的代码分析。

5. Python代码安全性分析工具应用最多的是Pychecker ,其次是PyCharm,而Pylint使用比较少,也有几个公司用Coverity来进行Python的代码分析。

6. Web应用安全性测试的商用工具中,IBM AppScan异军突起 ,高达70%的市场,其它商用工具无法与它抗衡,第2名SoapUI和它差距在50%以上,HP webInspect 不到10%。

7. Web应用安全性测试的开源工具中,Firebug明显领先 ,将近50%,比第2名OWASP ZAP高12%,第三名是Firefox Web Developer Tools,超过了20%。

8. Android App的安全性测试工具中,Android Tamer领先 ,将近30%,比第2、3名AndroBugs、Mobisec、Santoku高15%左右。也有用其它不在调查项中的工具,总体看,Android App安全性测试工具分布比较散。

9. 网络状态监控与分析工具中,Wireshark遥遥领先,超过70%。其次就是Tcpdump、Burp Suite,占30%左右。网络状态监控与分析工具挺多的,但从这次调查看,越来越集中到几个工具中,特别是Wireshark功能强,覆盖的协议比较多,深受欢迎。

10. SQL注入测试工具排在前三位的:SQLInjector、SQL Power Injector、OWASP SQLiX, 三者比较接近,差距在6%左右。其它两项工具Pangolin、SQLSqueal也占了10%,而Antonio Parata、Blind SQL Injections、Bsqlbf-v2、Multiple DBMS Sql Injection、Sqlninja几乎没什么人用。

安全性测试工具很多,还包括黑客常用的一些工具,如暴力破解口令工具、端口扫描工具、防火墙渗透工具、渗透测试平台等。从某种意义看,它们超出软件范畴,更多属于网络空间安全、密码学等范畴,在此就不展开了。概括起来最受欢迎的软件安全性测试工具有:

软件评测师写作专栏之安全测试的基础知识26

各位学员大家好,大家在学习软件测试基础知识时,安全测试已经成了必不可少的一部分。为了让大家快速掌握这方面的知识点,接下来就带领大家一起来学习一下!

例题:以下不属于安全测试方法的是()

A、安全功能验证

B、安全漏洞扫描

C、大数据量测试

D、数据侦听

【昊洋详解】: 安全测试方法包括安全功能验证、安全漏洞扫描、模拟攻击实验和数据侦听。具体内容如下所示:

1 )、安全功能验证: 对软件需求中确定的有关安全模块的功能进行测试验证。例如权限管理模块,数据机密模块,传输加密模块,数据备份和恢复等模块一般都会有对应安全功能设置。安全功能验证的方法和一般程序测试类似,主要有以下三种:黑盒测试、白盒测试和灰盒测试。

2 )、安全漏洞扫描: 用漏洞扫描软件对信息系统和应用软件有针对性地对有关漏洞进行扫描,然后发现漏洞后做好有效防范后补救措施,也可以采取保护措施防止非法者利用已知漏洞进行攻击。常见的漏洞有:

拒绝服务(Dos)漏洞: 故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃,而在此攻击中并不包括侵入目标服务器或目标网络设备。

本地用户扩权漏洞: 本地普通级别用户利用程序漏洞非法拥有其他用户甚至超级用户的权限,从而使得系统遭到破坏。

远程用户扩权漏洞: 远程普通用户利用系统服务中的漏洞,未经授权就进入了系统访问,从而进行不可预知的破坏行为。

3 )、模拟攻击实验: 将自己假装成类似于黑客的非法入侵的攻击者,利用目前存在的系统漏洞和常用的攻击手段,对提交评测的系统进行开发环境或试用环境里的攻击,以发现安全问题。主要四种攻击技术为:

服务拒绝(Dos)型攻击: 企图通过使服务器崩溃的方式来阻止其提供服务,主要手段包括:死亡之ping,泪滴,UDP洪水,SYN洪水,Land攻击,Smurf攻击,Fraggle攻击,电子邮件炸弹和畸形消息攻击等。

漏洞木马型攻击: 主要是由于系统使用者粗心大意或者已知系统漏洞但未及时打补丁,又或者不小心安放了木马等原因导致的非法入侵行为,主要包括:口令猜测,特洛伊木马和缓冲区溢出3种方式;

信息收集类技术: 本身不会对目标服务器造成危害,收集大量有关系统的信息,为非法者非法入侵提供了便利,主要使用的技术有:扫描技术、体系结构刺探和利用信息服务3种。

伪装欺骗型攻击: 用于攻击目标配置不正确的消息,主要包括DNS高速缓存污染,伪造电子邮件,ARP欺骗和IP欺骗四种方式。

4 )、数据侦听: 也称为“网络监听”,用于获取在网络上传输的信息,但这些信息不是发给自己的。网络侦听技术可以有效地管理网络,针对网络问题和检查网络的安全威胁。如果侦听技术工具被非法用户利用,也可能成为入侵者的入侵手段。

本题中的C选项大数据量测试是一种负载压力测试方法,不属于安全测试的范畴,故该题目的正确答案为C。
巩固练习题

(1)以下不属于安全防护策略的是(  )

A、入侵检测

B、隔离防护

C、安全测试

D、漏洞扫描
(2)安全日志是软件产品的一种被动防范措施,是系统重要的安全功能,因此安全日志测试是软件系统安全性测试的重要内容,下列不属于安全日志测试基本测试内容的是()

A、对安全日志的完整性进行测试,测试安全日志中是否记录包括用户登录名称、时间、地址、数据操作行为以及退出时间等全部内容

B、对安全日志的正确性进行测试,测试安全日志中记录的用户登录、数据操作等日志信息是否正确

C、对日志信息的保密性进行测试:测试安全日志中的日志信息是否加密存储,加密强度是否充分

D、对于大型应用软件系统:测试系统是否提供安全日志的统计分析能力
(3)用户口令测试应考虑的测试点包括( )。

①口令时效 ②口令长度③口令复杂度 ④口令锁定

A、①③④

B、②③④

C、①②③

D、①②③④
练习题参考答案

(1)解析: 本题考查信息安全和安全测试的基础知识。

信息安全防护策略 包括入侵检测、隔离防护、安全日志和漏洞扫描四种。具体内容如下所示:

1 )、入侵检测: 是一种主动的网格防护措施,从系统内部或各种网络资源中主动采取信息,从中分析可能的网络入侵或攻击,通常IDS还应对入侵行为做出紧急响应。

2 )、隔离防护: 是将系统中的安全部分和非安全部分进行隔离的措施,主要技术手段有防火墙和隔离网闸等,其中防火墙主要用于内网和外网的逻辑隔离;而隔离网闸主要用于实现内网和外网的物理隔离。

3 )、安全日志: 用于记录非法用户的登录名称、操作时间等内容信息。以便发现问题并提出解决措施。安全日志仅记录相关信息,不对非法行为做出主动反应,属于被动防护策略。

4 )、漏洞扫描: 对软件系统及网络系统进行与安全相关的检测,找出安全隐患和可能被黑客利用的漏洞。

安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程,不属于安全防护策略的范畴。故该题目的正确答案为C。

 

(2)解析: 本题考查安全测试中安全日志测试的基础知识。

安全日志 用于记录非法用户的登录名称、操作时间等内容信息。以便发现问题并提出解决措施。安全日志仅记录相关信息,不对非法行为做出主动反应,属于被动防护策略。

系统安全日志在每次开关机、运行程序、系统报错时,这些信息都会被记录下来,保存在日志文件中。但是日志本身是不需要加密存储的,故该题目的正确答案为C。

 

(3)解析: 本题考查安全测试中用户口令测试的基础知识。

web系统容易受到攻击,一般会对用户名/口令(密码)机制进行认证。对口令认证机制测试应包含的基本测试点如下所示:

1)、对用户名称测试的主要测试点在于测试用户名称的唯一性,即测试同时存在的用户名称在不考虑大小写的情况下,不能够同名。

2)、对用户口令测试应主要测试用户口令是否满足当前流行的控制模式。主要测试点应包括最大/最小口令时效、口令历史、最小口令长度、口令复杂度、加密选项及口令锁定等。因此本题①②③④都属于用户口令安全保护相关的内容。

故该题目的正确答案为:D。
写于2020年10月19日

软件测试和渗透测试的区别是什么?

软件测试主要工作内容是验证和确认,发现软件中的缺陷或者不足,然后把发现的问题整理成报告并分析出软件质量的好坏。验证是保证软件正确地实现了一些特定功能的一系列活动;确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性,即保证软件做了你所期望的事情。
渗透测试主要包括:黑盒测试、白盒测试和灰盒测试。主要做的工作有:信息收集、端口扫描、权限提升、远程溢出攻击、WEB应用测试、SQL注入攻击、跨站攻击、后门程序检查等。
从测试内容来看,就有很大的不同。想要了解更多可以关注“老男孩Linux”公众号。

软件的安全性应从哪几个方面去测试?

一、用户认证安全的测试:
1、明确区分系统中不同用户权限
2、系统中会不会出现用户冲突
3、系统会不会因用户的权限的改变造成混乱
4、用户登陆密码是否是可见、可复制
5、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
6、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
二、系统网络安全的测试
1、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
2、模拟非授权攻击,看防护系统是否坚固
3、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP )
4、采用各种木马检查工具检查系统木马情况
5、采用各种防外挂工具检查系统各组程序的客外挂漏洞
三、 数据库安全测试:
1、系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
2、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
3、系统数据可管理性
4、系统数据的独立性
5、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

2022年CISP教材知识点整理:软件测试

CISP共有共包括信息安全保障、信息安全技术、信息安全管理、信息安全工程和信息安全标准法规五个知识类,希赛网CISP教材大纲栏目,为大家整理了CISP知识点梳理,详情如下:

10.4知识子域:软件安全测试

IEEE软件测试定义为:使用人工和自动化的手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差异

10.4.1软件测试

1.软件测试基本概念

(1)测试用例

测试用例是为某个特定目的而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求

(2)测试覆盖率度量指标

测试覆盖率度量指标是测试完整性的一个手段,是测试有效性的一个度量

语句覆盖

判定覆盖,又称分支覆盖

条件覆盖

判定-条件覆盖

条件组合覆盖

路径覆盖

(3)测试的信条

2.软件测试方法

根据软件测试工作的测试策略,一般将软件测试过程分为单元测试、集成测试、系统测试和验收测试4个大阶段

根据对软件内部工作过程了解的程度又分为黑盒测试、白盒测试和灰盒测试

从测试过程中是否执行软件又可以将软件测试分为静态测试和动态测试

(1)单元测试、集成测试、系统测试

单元测试是对软件中的基本组成单元进行测试

单元测试的主要方法又控制流测试、数据流测试、排错测试等

集成测试是在软件集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确

系统测试是对已集成好的软件系统进行彻底的测试

(2)黑盒测试、白盒测试、灰盒测试

黑盒测试意味着测试要在软件的接口处进行(外部人员)

黑盒测试又称功能性测试或数据驱动测试

白盒测试也称结构测试、透明测试、逻辑驱动测试或基于代码的测试,是对软件的过程细节做的细致的检查(内部人员)

灰盒测试是一种介于白盒测试和黑盒测试之间的一种测试方法(两者之间)

(3)静态测试、动态测试

静态方法是指不运行被测程序本身

静态测试又可分为代码走查、代码审核和代码评审

代码走查

代码审查

代码评审

动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效果和健壮性等

(4)回归测试

回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性

(5)验收测试

验收测试旨在向购买者展示该软件系统满足其用户的需求

这是软件在投入使用之前的最后测试

注:以上内容来源于网络,如有侵权,可联系客服删除

免费领取CISP学习资料、知识地图:https://wangxiao.xisaiwang.com/cisp/xxzl/n125.html?fcode=h1000026

常见的软件测试安全方法有哪些?

从是否关心软件内部结构和具体实现的角度划分(按测试分类):白盒测试、黑盒测试、灰盒测试

(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。

(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。

(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。

从是否执行代码角度:静态测试、动态测试

(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。

从软件开发的过程按阶段划分有:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试

(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。

(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。

(3)确认测试:又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。

(4)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。

(5)验收测试:以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。不是对系统进行全覆盖测试,而是对核心业务流程进行测试。

(6)回归测试:是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

「软件测试」如何进行APP安全性测试

一、前言
在SDK最近的项目中上线的包被第三方杀毒软件报出有病毒的问题,后来经过查验发现是SDK悬浮窗动画的逻辑被检验出有病毒,最后进行了修改。事情虽然解决了,但是引起该问题的一个原因是在测试中没有安全测试,而安全测试的标准,方法都没有。因此今天将之前工作中参与过的安全测试以及从网上查阅到有关安全测试的资料进行整理。有不足的之处,尽情谅解。
二、软件权限
1)扣费风险:浏览网页,下载,等情况下是否会扣费,一般在游戏APP,和社交APP等需要考虑这些。
2)隐私泄露风险。例如在我们安装APP应用时通常会看到"xx要读取手机通讯录"等提示,这些提示可以提示用户拒绝接受,这些是APP测试中的测试点。
3)校验input输入。对于APP有输入框的要对输入的信息进行校验,比如密码不能显示明文。在测试中红人馆注册时需要对input进行测试。
4)限制/允许使用手机功能接人互联网,收发信息,启动应用程序,手机拍照或者录音,读写用户数据。这个在通信行业用的比较多,比如展讯,高通等芯片厂商,他们在出厂芯片时要对手机各个功能进行测试。
三、代码安全性
之所以单独拿出来说,是因为在SDK测试过程中SDK代码被第三方工具检测出游病毒代码,这样一来就会影响输入法的使用。因此在后续测试中要尝试加入安全性测试。
四、安装与卸载安全性
1)应用程序应能正确安装到设备驱动程序上
2)能够在安装设备驱动程序上找到应用程序的相应图标。在SDK测试项目中发现有些设备受权限的问题,无法下发图标创建快链。
3)是否包含数字签名信息。在SDK测试项目中基本上没有,但是在输入法打包和主线版本上存在这样的测试。
4)安装路径应能指定
5)没有用户的允许应用程序不能预先设定自动启动
6)卸载是否安全,其安装进去的文件是否全部卸载
7)卸载用户使用过程中产生的文件是否有提示
8)其修改的配置信息是否复原
9)卸载是否影响其他软件的功能
10)卸载应该移除所有的文件
11)安装包的存放。在SDK下载安装包的测试中我们经常会看到下载下来的包后面有四个随机的字符串,这个的目的是为了防止第三方工具恶意删除安装包的问题。
在SDK测试项目中有专门针对下载安装卸载的用例,对安装的路径和下载的文件夹路径等有相关的测试,测试结果页表明,某些手机(例如华为mate1)在删除了某个下载路径文件夹之后受权限应用不会自动创建。
五、数据安全性
1)当将密码或其他的敏感数据输人到应用程序时,其不会被储存在设备中,同时密码也不会被解码
2)输人的密码将不以明文形式进行显示
3)密码,信用卡明细,或其他的敏感数据将不被储存在它们预输人的位置上
4)不同的应用程序的个人身份证或密码长度必需至少在4一8个数字长度之间
5)当应用程序处理信用卡明细,或其他的敏感数据时,不以明文形式将数据写到其它单独的文件或者临时文件中。以防止应用程序异常终止而又没有删除它的临时文件,文件可能遭受人侵者的袭击,然后读取这些数据信息。
6)当将敏感数据输人到应用程序时,其不会被储存在设备中
7)备份应该加密,恢复数据应考虑恢复过程的异常通讯中断等,数据恢复后再使用前应该经过校验
8)应用程序应考虑系统或者虚拟机器产生的用户提示信息或安全警告
9)应用程序不能忽略系统或者虚拟机器产生的用户提示信息或安全警告,更不能在安全警告显示前,利用显示误导信息欺骗用户,应用程序不应该模拟进行安全警告误导用户
10)在数据删除之前,应用程序应当通知用户或者应用程序提供一个"取消"命令的操作
11)"取消"命令操作能够按照设计要求实现其功能
12)应用程序应当能够处理当不允许应用软件连接到个人信息管理的情况
13)当进行读或写用户信息操作时, 应用程序将会向用户发送一个操作错误的提示信息
14)在没有用户明确许可的前提下不损坏删除个人信息管理应用程序中的任何内容
15)应用程序读和写数据正确。
16)应用程序应当有异常保护。
17)如果数据库中重要的数据正要被重写,应及时告知用户
18)能合理地处理出现的错误
19)意外情况下应提示用户
20)HTTP、HTTPS覆盖测试。在测试中我们经常会遇到与请求的加密解密测试,以确保产品的安全性

软件测试教程之手机软件测试方法

第一:兼容性测试

针对App通常会考虑这些方面:

1)操作系统版本

包括Andoird版本,iOS版本

2)屏幕分辨率

android 800*480,960*640,1280*720(720p),1920*1080(1080p),2560*1440(2k).

对于iOS,考虑最近几代机型对应的分辨率即可.

3)不同厂家的ROM

不同厂家的ROM,大多厂家都对android 系统进行了定制、实际中会遇到例如调用相机和底层服务出现的不兼容问题以及摇一摇遇到的不同手机对于方向和重力传感器灵敏度设置不同的问题.

4) 网络类型

网络类型通常考虑wifi,2g,3g4g下的功能情况。另外针对m版网站考虑不同浏览器类型和屏幕分辨率.

第二:流量测试

在移动产品的测试中,很有必要对App使用的流量进行度量,大致来说,流量可以从用户使用的的相关性角度分为:一类是用户的操作直接导致的流量消耗;另一类是后台,即在用户没有直接使用情况下的流量消耗。

流量的测试方法:

1. 基于系统自带功能.

eg android proc/uid_stat/{uid} /tcp_send

android proc/uid_stat/{uid} /tcp_rcv

2. 通过API或者系统埋点来获取数据。

3. 通用的流量测试方法:手机抓包,或者wifi代理(Fiddler, Charles)。

常见的流量节省方法:

1. 数据压缩。

压缩包含接口文本数据的压缩,js文件的压缩及图片的压缩。

2. 不同数据格式的采用

例如采用JSON格式作为接口数据返回格式通常比XML格式要小。

3. 控制访问的频次

这个主要针对后台数据上报,PUSH消息检查等定时机制的。

4. 只获取必要的数据

有时候APP一页的内容非常多,而用户可能只会看一部分,过多的从后台拉去数据就是浪费,所以可以采用分屏加载或者懒加载的方式来减少流量消耗。

5. 缓存

可将图片,js等数据暂存起来,但由于手机存储空间有限,也需要控制整个缓存大小,并给用户提供清理缓存的选项。

6. 针对不同网络类型设计不同的访问策略

有些APP不同的网络类型返回的内容不一样。

第三:电量测试

在电器电池技术没有取得巨大突破前提下,这方面始终会存在一些瓶颈,如果一些App架构设计的不好,或者代码偶缺陷,就可能导致电量消耗比较高,所以电量测试也是很重要的。

工具 GSam Battery Monitor Pro.

第四:弱网络测试

移动互联网产品相比PC互联网产品,有一个特点是前者使用的网络比较多样,除了Wif之外,很多时候是在移动网络下使用的,移动网络遇到的情况又比较复杂,比如地铁、隧道、 体育 场等。所以网络不稳定的情况是比较容易发生的,很多情况下App的一些问题是在复杂的网络情况下才会暴露,与其让用户发现和投诉这些问题,不如我们在测试阶段尽量模拟这样的网络情况,及早发现和修复这些问题。

工具:

1. Windows下的Network Delay Simulator

2. Mac下的Network link Conditioner

第五:稳定性测试

在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。

第六:安全测试

包括安装包的安全测试(能否反编译代码、安装包是否签名,完整性校验,权限设置检查等)。

敏感信息测试(数据库,日志,配置文件)。

软键盘劫持(金融类APP登录页面的用户名密码输入框)、

账户安全(密码是否明文,密码传输是否加密,账户输入错误次数过多锁定,同时会话提醒, 注销机制)

数据通信安全(关键数据是否散列或加密,关键连接是否使用安全通信,是否对数字证书合法性进行验证,是否校验数据合法性。

组件安全测试。

服务器端接口测试(SQL注入测试、XSS跨站脚本攻击, CSRF跨站请求伪造,越权访问等)。

第七:环境相关的测试

在实际项目中,有一些缺陷我发现是和App所处的运行环境相关的,所以设计测试的时候,要多考虑这些场景,比如:

1)干扰测试

收到电话、收到短信、收到通知栏消息、无电提示框弹出、第三方安全软件告警弹出。

2)权限测试

一些用户在实际使用App的时候回有意识阻止某些功能。例如有的用户感觉让某个App访问电话本或者相册可能泄漏隐私,就在手机中设置了禁止了该App访问相册的权限。

3)边界测试

手机环境本身也有其边界情况需要在测试中覆盖。常见的场景有:

可用存储空间过少、没有SD卡/双SD卡、飞行模式、系统时间有误(晚于和早于标准时间)、第三方依赖(比如我们的App依赖第三方App,但是现在第三方App没有安装或者版本过低的测试情况)。

4)Android定位测试

用白盒方式模拟

关于软件安全性测试包括哪些方面的介绍就到这里,以上就是小编整理的软件安全性测试包括哪些方面全部内容了,欢迎大家留言讨论。访问学分高考了解更多相关内容(本文共13992字)

温馨提示:
本文【软件安全性测试包括哪些方面】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号