软件测试入门

目录

软件的概念:

软件组成部分:

软件的分类:

 缺陷产生的原因:

 其他理解:

软件测试定义:

软件测试作用:

测试原则:

测试流程:

测试对象:

测试与调试: 

软件质量保证(SQA)与软件测试:


软件的概念:

        是计算机系统中与硬件相互依存的一部分,包括程序、数据以及与其相关文档的完整集合。

  • 程序是按事先设计的功能和性能要求执行的指令序列;
  • 数据是使程序能正常操作信息的数据结构;
  • 文档是与程序开发、维护和使用有关的图文材料。

软件组成部分:

        样本和范例、产品支持信息、标签封条、用户手册、错误提示信息、安装、帮助文件、说明文件、最终产品(光盘或软盘)。 

软件的分类:

  • 按重要性:
  1. 系统软件;
  2. 支持软件;
  3. 应用软件。
  • 按架构:
  1. 单机版软件;
  2. 分布式软件:C/S架构(客户端)、B/S架构(浏览器)

 缺陷产生的原因:

  1. 需求的不完善定义;
  2. 客户——开发者通信失败;
  3. 对软件需求的偏离;
  4. 逻辑设计错误;
  5. 编码错误;
  6. 不符合文档编制与编码规定;
  7. 测试过程的不足;
  8. 规程错误;
  9. 文档编制错误。

最根本原因是需求方面的理解错误。

 其他理解:

  1. 确信程序做了它应该做的事;
  2. 确认程序正确实现了所要求的功能;
  3. 查出规格说明中的错误以及与规格说明不符的地方;
  4. 测试是一切以评价程序或系统的属性、能力位目的的活动;测试是对软件质量的度量;
  5. 评价程序或系统的过程;
  6. 测试是与软件开发或维护工作并行的一个过程;
  7. 测试是一个获取信息,降低决策风险的过程。通过测试,向整个团队提供关于产品质量和项目环境的信息,帮助他们做出决定。

软件测试定义:

        通过手工或者工具对“被测对象”进行测试操作,从而验证实际结果与预期结果之间是否存在差异。

软件测试作用:

  1. 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信息;
  2. 测试可以记录软件运行过程中产生的一些数据,从而为决策提供数据支持;
  3. 测试可以降低同类型产品开发遇到问题的风险。

测试原则:

        我们在执行测试工作时必须要遵守的一些规则。

  1. 所有的测试都应追溯到用户需求;
    应用:1.测试的第一个任务是需求分析;
                      2.测试需求分析要做好;
                      3.时刻都要提醒自己考虑用户需求;
                      4.制造缺陷的罪魁祸首不是程序员;
                      5.做好需求评审,审查所作的内容是否符合用户的需求。
  2. 尽早启动测试工作:避免缺陷雪崩,降低测试成本;
    应用:测试应该是与软件开发或维护工作并行的一个过程。
  3. 早做测试计划;
    应用:1.软件测试不仅仅是测试执行;
               2.应该在测试工作真正开始前的较长时间内就进行测试计划。
  4. 穷尽测试不可能,软件测试有风险:有些功能是没有办法将所有的测试情况都罗列出来,所以任何的测试操作都有结束的时间;(完全测试、完美测试、充分测试);
    原因:测试数据输入量太大、时间不够等;
    应用:1.使用风险分析,确定测试的重点和优先级,控制测试的开销(时间、成本、资源);
               2.风险分析需要判断技能、常识、感觉和经验。
  5. 测试工作的Good-enough原则:既不要做过多测试,也不做不充分的测试;
    应用:通过需求分析和风险分析(时间、费用、资源)找到测试重点,制定最低测试通过标准和测试内容,然后具体问题具体分析。
  6. Pareto法则应用于软件测试:一般情况下80%的缺陷聚集在20%的关键核心业务模块中,在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其中缺陷中的80%(20%*80%=16%),最后的4%的缺陷可能只有在用户的大范围、长时间使用后才会暴露出来;
    应用:1.做好测试需求分析和测试计划,分清测试重点;
               2.尽早测试、持续测试。
  7. 尽可能使用分阶段测试:单元测试——集成测试——系统测试——验收测试;代码规模不断加大;
  8. 为了达到最佳效果,应该由独立的第三方(非用户、非程序员)来构造测试;“最佳效果”指最有可能发现的测试。
  9. 测试旨在发现软件存在的缺陷:无论执行什么样的测试操作都只能证明当前软件是有缺陷的。
    1.软件测试可以报告软件缺陷存在,却不能报告软件缺陷不存在;
    2.即使在测试过程中未发现软件的失效,也不能证明被测软件没有错误;
  10. 为了保证测试的有效性和高效性,测试必须是破坏性的、系统化的;
    1.充分、有效、系统的测试可以减少软件中未被发现缺陷的可能性;
    2.测试既要验证软件的正确性,更要通过破坏软件,发现缺陷的不正确性。
  11. 找到的软件缺陷越多,说明软件隐含的缺陷越多;
    软件具有集群效应,应该在发现缺陷的地方继续找找。
  12. 杀虫剂现象:同样的一个测试用例不能重复的执行多次,因为软件会对它产生免疫;
    应用:为了克服杀虫剂怪事,软件测试员必须不断编写不同的、新的测试程序、对程序的不同部分进行测试,以找出更多软件缺陷。
  13. 并非所有软件缺陷都要修复;
    原因:1.没有足够的时间;
               2.不算真正的软件缺陷;
               3.修复的风险太大;
               4.不值得修复。
  14. 使用木桶原理:木桶原理在软件生产方面就是全面质量管理的概念,团队合作。
  15. 前进两步,后退一步:测试中的一个基本问题是——缺陷修复总会以(20-50)%的机率引入新的缺陷,每次修复之后,必须做确认测试和回归测试。
    再测试/确认测试:测试人员提交缺陷,开发人员修复缺陷以后,测试人员需要重新测试,验证之前提交的缺陷是否真正修复。
    回归测试:测试人员提交缺陷,开发人员修复缺陷以后,测试人员需要重新测试,确保对程序修改没有给软件其他未改变部分带来新的缺陷。软件修改或者环境变更后,必须进行回归测试。
  16. 软件测试是一个迭代的过程:无论项目采用何种开发模型,测试人员总是一个版本接一个版本的测试,其测试活动总是迭代向前的。
    测试版本1->提交缺陷->修复缺陷->测试版本2->提交新缺陷->修复新缺陷->测试版本3->
  17. 某些测试需要依赖特殊的环境;
  18. 测试标准:
    1.国际标准:ISO(国际标准化组织)、CMM(软件能力成熟度模型)、IEEE(国际电气电子工程师协会);
    2.国家标准:GB、GB/T;
    3.行业标准;
    4.公司标准;
    5.用户规定。

测试流程:

  • 分析测试需求:测试人员对用户的需求进行分析,了解软件要做什么,怎么做,进而确定将来怎么测试;
  • 编写测试计划:
  1. 测试负责人编写测试计划;
  2. 测试计划的内容:包括产品概述、测试范围/测试区域/测试项(哪些地方测,哪些地方不测)、测试目标/被测特征(测哪些方面,功能、性能、兼容性等)、测试优先级(根据时间、人员、成本决定先做什么后做什么)、测试配置/测试资源(硬件、软件、人力、技术等)、测试周期(持续时间,中间是否会有迭代)、进度安排(测试任务、人员安排)(每个时期做什么任务)、测试策略(先做功能还是先做性能,或者同时进行)、测试方法/途经、测试交流、风险分析、测试标准(怎么做,怎么算合格、不合格)、需交付文档等内容。
  • 设计与编写测试用例:
  1. 设计用例主要反映在编写测试点上;
  2. 根据公司格式或者选择一些模板编写测试用例;
  • 执行测试:
  1. 搭建测试环境:安装操作系统、软件等;
  2. 执行测试用例,记录测试事件;
  3. 提交和跟踪缺陷。
  • 评估与总结:
  1. 分析实际测试与计划的偏差:考虑是计划不合理还是工作做的不到位;
  2. 收集并提交各种测试文档和数据,对数据进行分析:看是否满足计划要求;
  3. 给出是否继续测试还是终止测试结论;
  4. 总结经验教训。

测试对象:

         最经常测试的主体就是软件(主体功能),但是需要明白一个软件也不仅仅只有功能需要测试,我们可以将软件分为三个部分组成:功能集合+使用说明书+配置数据。

        对于一款软件从无到有需要不同的过程,我们可以将这个过程分为不同阶段,然后每个阶段都会相应有测试对象。

  1. 需求分析阶段:各种需求规格说明书;
  2. 软件架构设计:API接口文档(接口测试);
  3. 编码实现阶段:源代码(白盒测试、单元测试);
  4. 系统功能使用:软件功能主体(当前行业做的最多的一种测试)

测试与调试: 

区别目的/任务
测试由测试人员进行,用于发现、报告和跟踪缺陷,测试人员不修改缺陷。
调试由开发人员进行,用于定位缺陷位置,识别缺陷产生原因,修改缺陷代码。

软件质量保证(SQA)与软件测试:

区别目的/任务
质量保证制定和加强促进软件开发并防止软件缺陷的标准和方法,并监管标准和过程被正确的遵循。
软件测试在最短的时间内发现尽可能多的缺陷,并确保这些缺陷得以修复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值