2015-09-30 22:10:28 u010042585 阅读数 1835
  • 软考“备考--重难点冲刺”全知道

    一、为什么我要报名软考? 二、我适合报考哪个科目? 三、重点、难点全知道! 四、考情分析 五、考前70天,时间如何分配,使自己成竹在胸! 六、交流+答疑!

    3438 人正在学习 去看看 任铄

经过一个月的软件测试学习我认为:

软件测试的难点在于:

  1. 测试用例及测试例程是其设计者对被测对象实现原理和外部需求的理解,能否正确反映对被测对象的质量要求,很大程度上取决于其设计者的分析、理解和设计能力。这是一种缺乏指导性方法的、不易制订标准或规范的、需要“技巧”的设计活动。
  2 目前缺乏测试管理方面的资料。
 3. 软件测试的有效实施需要开发组织与测试组织充分配合。虽然测试活动看似是对开发人员劳动成果的不断“挑剔”,但测试工作的出发点是:确保开发人员的劳动成果成为可被接收的、更高品质的软件产品。因此,测试人员应向开发人员谦虚求教,在测试工作中真正发挥作用,为保证软件产品的高质量起尽可能大的作用。测试的组织者应在促进上级组织协调各组织工作方面发挥作用。

 4. 有效的测试工作需要投入足够的人力和物力,需要对工作的难度和消耗有充分的估计。

纯属个人愚见!!!

2015-10-03 18:28:40 wsyzxpz 阅读数 1393
  • 软考“备考--重难点冲刺”全知道

    一、为什么我要报名软考? 二、我适合报考哪个科目? 三、重点、难点全知道! 四、考情分析 五、考前70天,时间如何分配,使自己成竹在胸! 六、交流+答疑!

    3438 人正在学习 去看看 任铄

在此学了软件测试基础这门课程,作者君来罗列一下自己目前有关软件测试基础的难点问题。

 
 1   什么是软件测试过程

     1)一种抽象的模型,用于定义软件测试的流程和方法。

     2)测试过程的质量,将直接影响测试结果的准确性和有效性。

     3)遵循基本原理,测试过程遵循软件工程原理,遵循管理学原理。

 2 软件测试过程的基本模型

    1)V模型——是软件开发瀑布模型的变种,它反映了测试活动    与分析和设计的关系。

     2)W模型——基于“尽早地和不断地进行软件测试”的原则,    增加了软件各开发阶段中应同步进行的验证 (verification)和确认(validation) 活动。

     3)H模型——它将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来 

     软件测试过程的基本活动: 提取测试需求   制定测试计划    制定测试策略和方案  分析测试结果   执行测试用例      开展测试设计

 3  白盒测试、黑盒测试以及灰盒的测试的主要内容和实现方法

      白盒测试主要通过逻辑覆盖来实现:

      逻辑覆盖的种类: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖     条件组合  路径覆盖 

      黑盒测试的主要方法:等价类划分     边界值分析法    因果图分析法     随机数法     猜错法

      灰盒测试:灰盒测试一种软件全生命周期测试法,该方法通常是深入到用Ada/C/Fortran或汇编语言开发的嵌入式应用软件代码中进行功能的测试,或者与Web服务一起使用

 4  根据需求编写测试要点,测试用例以及提交的缺陷报告(具体情况具体对待)

2019-09-06 16:51:32 qq_41670132 阅读数 52
  • 软考“备考--重难点冲刺”全知道

    一、为什么我要报名软考? 二、我适合报考哪个科目? 三、重点、难点全知道! 四、考情分析 五、考前70天,时间如何分配,使自己成竹在胸! 六、交流+答疑!

    3438 人正在学习 去看看 任铄

1、软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、

软件设计、编码、测试、软件发布维护的过程。

在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺

少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。

 

2、目前主要的测试用例设计方法是什么?

白盒测试:

逻辑覆盖

循环覆盖

基本路径覆盖

黑盒测试:

边界值分析法

等价类划分

错误猜测法

因果图法

状态图法

测试大纲法

随机测试 

场景法

 

3、软件产品质量特性是什么? ?

功能性:适应性、准确性、互操作性、依从性、安全性。

可靠性:成熟性、容错性、以恢复性。

可使用性:易理解性、易学习性、易操作性。

效率:时间特性、资源特性。

可维护性:易分析性、易变更性、稳定性、易测试性。

可移植性: 适应性、易安装性、遵循性、易替换性

2010-10-11 09:19:14 sealbird 阅读数 36
  • 软考“备考--重难点冲刺”全知道

    一、为什么我要报名软考? 二、我适合报考哪个科目? 三、重点、难点全知道! 四、考情分析 五、考前70天,时间如何分配,使自己成竹在胸! 六、交流+答疑!

    3438 人正在学习 去看看 任铄
http://www.programmer.com.cn/4161/
分布式系统测试的难点与分析
文 / 帅丹文

分布式系统具有软硬件平台分布性、高稳定性、高可用性、高可扩展性、高可管理性、高并发性及数据一致性等多种特性。正是由于这些重要的特性,使得分布式系统的测试过程变得相对复杂和困难。本文主要从分布式系统测试的四个重要方面出发,探讨分布式系统测试过程中存在的一些难点问题并进行适当的分析。

分布式系统测试环境

一般来说,分布式系统是由一组服务器或者网络设备组成(如图1)。我们在部署测试环境的时候,所涉及的系统架构也会是比较复杂的,有以下几个方面:

网络架构。在图1中,我们应该如何在本地测试实验室环境中模拟分别位于北京和纽约的两个数据中心呢?由于地理原因,北京和纽约之间网络的RTT(Round Trip Time)至少不会低于某个值。所以,在正式进行测试之前,我们需要构建出测试所需要的网络环境,模拟出这样的固定网络延时。
硬件要求。例如,我们曾经测试过一个分布式的文件系统,数据服务器要求运行在裸盘设备上(数据的存储格式、寻址方式自定义以提高查找速度),所以,在安装操作系统时需要特别考虑这样的需求。同时,在测试前,我们需要按照系统设计的要求采购硬件设备。例如,硬盘的规格(SATA硬盘还是SAS硬盘)、内存的规格等。
配置复杂。分布式系统涉及的软硬件平台较多,整个系统中需要设置的参数项非常多,系统配置过程会相应地变得复杂、困难和易错。例如,在图1中,我们需要配置的系统配置文件至少有十多个。


图1 一个典型的分布式系统

如果条件允许的话,分布式系统的测试环境应该由测试工程师自己来搭建。系统管理员、网络管理员等都没有办法完全代替测试工程师来进行这些工作,因为他们并不清楚在实际的测试过程中,测试工程师对软硬件环境的具体需求是什么,尤其是不同的测试用例对于环境的要求可能是不一样的。

分布式系统功能测试

在测试执行过程中,对测试结果的分析是一个需要进行深入思考的重点问题。分布式系统测试的重点在于对后端服务器集群的测试,而判定系统中是否存在Bug则是我们需要解决的重要问题。那么应该如何确定是否存在Bug呢?

对于测试结果的分析,我们通常观察下面几种情况。

观察前端应用的返回结果。这里需要分两种情况来考虑:第一,按照前端应用业务功能点及流程进行操作,观察返回结果是否符合业务方的需求预期;第二,操作后端的服务器(通常是重启、宕机、断网等操作),观察前端应用的返回结果是否符合系统的设计需求。
分析服务器日志。在功能测试过程中,当我们在启动服务器的时候,需要将日志级别定义为Debug级别(最低级别)。这样做的主要目的是为了能便于测试工程师来分析日志和定位问题。为了能更好地定位问题,常常需要在服务器程序代码中进行日志打桩,把程序中的一些重要数据通过日志的方式展现出来。通常情况下,我们需要对日志的格式进行约定,在日志行中增加一些关键字来进行分类,这将便于测试工程师进行日志分析,也有利于开展分布式系统的自动化测试。另外,值得注意的是,我们尽可能地将打桩代码放在Debug代码中,避免影响系统代码,引入新问题。
分析操作系统的一些重要信息。我们测试的分布式系统绝大多数是基于Linux操作系统开发的,在测试的过程中,除了详细分析程序日志以外,还需要对操作系统的一些重要数据信息进行分析,从而来诊断服务器程序是否存在异常。以Linux操作系统为例,我们常常会使用top命令、netstat命令及sar命令来查看操作系统的一些数据信息。例如,可以通过netstat命令检查服务器程序是否正确地监听了指定的端口等。
借助其他分析工具。例如,如何判断服务器程序是否产生了内存泄漏?通常需要借助于内存检测工具来进行分析。在Linux环境下,我们常用Valgrind来进行内存检测。这是一款非常好用、功能强大的分析工具(官方网站:http://www.valgrind.org/),可以帮助测试或者开发工程师快速发现很多隐藏的程序Bug,尤其是在内存检测方面(同时它还具有很多其他优秀的功能,读者可以自己查看官网中的使用手册)。
分布式系统压力测试与性能测试

对于分布式系统而言,压力测试和性能测试非常重要。在进行压力测试和性能测试的时候,可能会碰到下面一些难点。

数据准备。如何准备海量的测试数据并保证模拟数据的真实性?以一个分布式的文件系统为例,预先存入100GB的数据还是存入100TB的数据、存入的文件是大小基本一致差别不大还是各不相同甚至差异很大(例如,从几十字节至几十兆字节不等),这些因素对于分布式系统的性能影响是有很大差异的。另外,如果需要预先存入100TB的数据,若按每秒写入100MB数据来计算,写入100TB数据需要100×1024×1024/100=1048576秒=291.27小时=12天。我们是否能忍受这么长时间的数据准备工作?为了解决这样的问题,我们需要对系统架构设计进行深入分析,设计好测试场景,并提前进行测试用例的设计,以尽早开始准备测试数据。
性能或压力测试工具。通常来说,分布式系统的测试需要开发一些测试工具来满足性能测试的需求。如果可以的话,建议这样的测试工具最好由测试工程师自己来实现,因为测试工程师更清楚自己的测试需求。当需要自己开发测试工具的时候,有两个关键问题需要重点关注:第一,一些关键数据的收集方式与计算将成为性能测试工具的关键,例如,TPS(每秒请求数)、Throughput(吞吐量)计算的准确性;第二,要保证性能测试工具的性能,如果工具本身的性能不好,将无法给予分布式系统足够强大的压力来进行测试。另外,当考虑到多并发(例如有10万客户端同时并发连接)时,如果性能测试工具在一台测试机器上只能运行50个或者更少的话,那么需要的测试机器数量也将会很庞大(例如2000台测试机),这个成本或许是许多公司不能承受的。因此,性能测试工具本身的性能必须要足够好才能满足需求、降低测试成本。
分布式系统自动化测试

自动化测试是测试行业发展的必然趋势,对于分布式系统测试而言也不例外。在实施分布式系统自动化测试的过程中,我们可能会碰到下面两个难点问题。

涉及平台多且硬件杂,测试流程控制困难。在实施自动化测试的过程中,测试脚本需要控制的操作系统和应用程序很多,而且存在跨平台的特性,同时还有可能需要控制一些网络设备。因此,选择一个优秀的自动化测试框架成为了非常重要的工作之一。以我们的实践经验来看,STAF是一个不错的选择(官方网站:http://staf.sourceforge.net/),它的平台(Windows及Linux各版本)支持及开发语言的支持都很全面。
测试结果验证复杂。对于分布式系统的自动化测试来说,我们需要通过测试脚本来收集各种测试结果数据以验证测试结果的正确性。在实施自动化测试的过程中,我们可以将测试结果数据收集部分模块化,通过各子模块来检测各项数据是否正确。例如,我们会设计一个日志分析模块,主要负责从服务器应用程序的日志中收集相应数据进行对比验证(本文前面提到的在打桩日志中增加关键字部分就显得格外重要)。
随着互联网的发展,大型分布式系统也越来越多、越来越复杂、越来越重要。如何有效地保证大型分布式系统7×24小时全天候持续稳定地运行也就成为了一个重要课题。本文希望通过对分布式系统测试过程中碰到的一些难点问题的分析给予读者一定的启发。

作者简介:

帅丹文,测试技术专家,近十年测试与开发工作经验,目前负责淘宝基础应用测试团队,对测试架构以及自动化测试、接口测试、分布式系统测试有深入的研究。

(本文来自《程序员》杂志10年08期)

《程序员》10月刊最新上市:http://www.programmer.com.cn/4128/

《程序员》订阅:http://dingyue.programmer.com.cn/

.
2015-10-04 20:40:54 Celiabj 阅读数 2198
  • 软考“备考--重难点冲刺”全知道

    一、为什么我要报名软考? 二、我适合报考哪个科目? 三、重点、难点全知道! 四、考情分析 五、考前70天,时间如何分配,使自己成竹在胸! 六、交流+答疑!

    3438 人正在学习 去看看 任铄

1. 软件测试过程的基本模型

    1)V模型——是软件开发瀑布模型的变种,它反映了测试活动    与分析和设计的关系。

     2)W模型——基于“尽早地和不断地进行软件测试”的原则,    增加了软件各开发阶段中应同步进行的验证 (verification)和确认(validation) 活动。

     3)H模型——它将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来 


2. 产生软件危机的原因

(1)对用户的需求不明确是产生软件危机的主要原因之一

  (2)缺乏正确的理论指导

  (3)软件开发规模越来越大

  (4)软件开发复杂度越来越高 


3. 消除软件危机的具体方法

     1.对计算机软件有一个正确的认识(软件≠程序)

     2.充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、     

     各类人员协同配合、共同完成的工程项目

      3.推广使用在实践中总结出来的开发软件成功技术和方法

      4.开发和使用更好的软件工具


4. 白盒测试、黑盒测试以及灰盒的测试的主要内容和实现方法

      白盒测试主要通过逻辑覆盖来实现:

      逻辑覆盖的种类: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖     条件组合  路径覆盖 

      黑盒测试的主要方法:等价类划分     边界值分析法    因果图分析法     随机数法     猜错法

      灰盒测试:灰盒测试一种软件全生命周期测试法,该方法通常是深入到用Ada/C/Fortran或汇编语言开发的嵌入式应用软件代码中进行功能的测试,或者与Web服务一起使用




软件测试之路

阅读数 149

软件测试

阅读数 79

没有更多推荐了,返回首页