您的位置:首页 > 其它

笑傲测试!!!

2015-08-07 10:31 148 查看

软件测试相关:



1.测试工程师的职责
(1)编写测试计划,测试方案和测试用例
(2)根据测试计划搭建和维护测试环境
(3)执行测试用例,提交测试报告。
(4)对测试出的问题进行详细的分析和准确的定位,与开发人员讨论解决方案。
(5)对产品提出改进建议,并评估改进方案是否合理,对测试结果进行总结和统计分析。

2.测试用例设计和测试方法
(1)测试用例的基本概念
    测试用例组成元素:

   1.用例ID;

   2.用例名称;

   3.测试目的;

   4.测试级别;

   5.参考信息;

   6.测试环境;

   7.前提条件;

   8.测试步骤;

   9.预期结果;

   10.设计人员。

    测试用例的设计原则:
    1、完全覆盖主要功能
    2、有一定的冗余
    3、步骤清晰简洁,结果明确可重复。
    4、有代表性,由一个或几个数据可以代表大多数情况。

(2)等价类划分

   是什么:把整个数据集划分为若干子集,在子集中选取有代表性的数据作为测试用例。
   分类:有效等价类和无效等价类(有效数据和无效数据)
    划分标准:1、完备性(所有子集的和是全集)
                      2、互不相交(尽量减少冗余)
   举例:1、学生成绩(0<=x<=100)、年龄(0<=x<=150)(一个有上下界值域范围的可以划分一个有效等价类和两个无效等价类)
               2、输入性别、所在城市、学历(值域是特定的几个值,等价类划分就是xxx和所有其他)
               3、邮箱账号(有好几个约束条件:有“@”后缀是“.com”...  ,对于这种有若干个约束条件的可以设计一个有效等价类和若干个无效等价类(从不同的角度违反约束))
              4、星辰数量(0--+无穷)(只有一个边界,就只能设计一个有效和一个无效等价类)
   实战题目:(值得研究)  测试用例设计白皮书--等价类划分方法

(3)边界值测试
   为什么要进行边界值测试:边界值测试是对等价类测试方法的一个重要补充,测试用例选自等价类的边界,因为大量的故障出现在输入输出的边界上。
    进行边界值测试的方法(步骤):进行边界值测试,首先我们要确定边界,然后在编写测试用例时选择正好等于、稍小于或稍大于边界值的数据进行测试
                                                         边界值测试每一个边界都要测到,不仅考虑输入条件,还要考虑输出空间产生的测试情况。

   常见的边界值:1、表格的第一行和最后一行(比如一页可以显示1-10条,则1条和10条到要测一下);
                             2、循环的第一次、倒数第二次和最后一次;
                             3、 
[align=center]项 [/align]
[align=center]边界值[/align]
[align=center]测试用例的设计思路[/align]
字符
起始-1个字符/结束+1个字符
假设一个文本输入区域允许输入1个到255个 字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。
数值
最小值-1/最大值+1
假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的 数值来作为边界条件。
空间
小于空余空间一点/大于满空间一点
例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。
   实战题目:(值得研究)测试用例设计白皮书--边界值分析方法

3、性能测试的种类和目的

(1) 负载测试 (Load testing)

(目的是发现系统当前的性能瓶颈)

通常可以定义为一种性能测试,通过模拟不同工作负载确定软件系统性能能力的活动。其采用的方法是通过不断的增加系统压力,来验证系统各项性能指标的变化情况,知道出现“性能拐点”,即某个性能指标出现不满足事先约定的指标阈值。

该方法可以找到系统的处理极限,可以为性能调优提供依据,同时还可以为确定相同容量提供参考。该类方法通常要基于或模拟系统真实运行环境,且选取的典型业务场景也要与实际情况相同或接近。

(2) 压力测试 (Stress testing)

(目的是验证系统在极端情况下的可靠性)

可以定义为一种性能测试,通过模拟极限负载获得系统所能提供的最大服务级别的活动。通常该类测试的前提是使得系统已处于一种饱和状态,比如CPU利用率已达到85%以上,内存利用率已超过70%等等。在此前提下再继续给系统增大负载,观察系统的性能表现,是否出现拒绝服务、系统宕机等严重的异常。

这种测试一般辅助于系统故障定位、考察系统的稳定性等工作。

(3) 并发测试 (Concurrent testing)

(通常情况说的性能测试就是这里的并发测试。目的是发现代码中数据结构,算法或者数据库脚本中存在的问题)

并发测试通常分为广义的并发和狭义的并发。其中广义的并发可以理解为多个用户同时操作不同的功能,而狭义的并发可以理解为多个用户同时操作同一个功能。通常用于验证系统处理死锁、资源争用的能力。因此,通常伴随着负载和压力测试同时开展。当然,也有单独对某个特殊的功能进行并发测试。

(4) 疲劳测试 (Fatigue testing)

(目的是验证系统长时间运行的稳定性,例如可以测试系统是否存在内存泄露等)
疲劳测试一般用于考察系统的稳定、可靠性。因此,可以定义为一种性能测试,在某一特定环境下,通过模拟一定数量的用户持续较长时间连续使用或访问系统,确定系统长时间运行稳定性的活动。根据经验,它一般与压力测试配合进行,综合验证系统在一定压力下,长时间运行的稳定情况

4、对SQL注入漏洞理解

   注入一般是从地址栏和文本框开始的,最常见的是在地址栏。

    解决办法:

    1、避免动态SQL语句:尤其是从IE客户端获取查询、修改、删除条件的字段最容易被注入,例如上述从客户端获取personid,为了开发方便,直接把从客户端获取的persongid作为SQL语句的条件,却没有对personid作必要的检查,所以在开发时执行SQL语句时最好使用PreparedStatement类。

    2 、验证数据:在客户端IE使用JavaScript验证用户输入数据的合法性作用其实不是很大,一定要在获取客户端数据之后,对数据进行严格的验证,开发人员不要假想用户只会输入合法的数据。确保在应用程序中检查分号、引号、括号、SQL关键字等。可以使用正则表达式来进行复杂的模式匹配,运用它可以达到良好的效果。

5、安全性测试

    1. 用户隐私

检查是否在本地保存用户密码,无论加密与否

检查敏感的隐私信息,如聊天记录、关系链、银行账号等是否进行加密

检查是否将系统文件、配置文件明文保存在外部设备上

部分需要存储到外部设备的信息,需要每次使用前都判断信息是否被篡改

2. 文件权限

检查App所在的目录,其权限必须为不允许其他组成员读写

3. 网络通讯

检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL

4. 运行时解释保护

对于嵌有解释器的软件,检查是否存在XSS、SQL注入漏洞

使用webiew的App,检查是否存在URL欺骗漏洞

5. Android组件权限保护

禁止App内部组件被任意第三方程序调用。

若需要供外部调用的组件,应检查对调用者是否做了签名限制

6. 升级

检查是否对升级包的完整性、合法性进行了校验,避免升级包被劫持

7. 3rd库

如果使用了第三方库,需要跟进第三方库的更新
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: