1.什么是软件测试?
最常见的理解是:软件测试就是发现缺陷,找bug
软件测试就是验证软件产品特性是否满足用户的需求。
2.软件测试的特点
软件测试只是一个样本测试,具有不可穷尽性。
3.软件测试和调试的区别
1.目的不同:
软件测试是确保程序解决了它该解决的问题。调试是确保程序做了程序员的想让它做的事情
2.参与角色不同:
软件测试由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。调试是由开发人员完成
3.执行的阶段不同:
测试贯穿整个软件开发周期,调试一般在开发阶段。
4.需求
需求包含用户需求和软件需求
用户需求:就是终端用户的使用产品过程中的必须要完成的任务。该需求一般比较简单。
软件需求:会详细描述开发人员必须实现的软件功能。是测试人员进行测试工作的基本依据。
5.从软件测试人员角度看需求
在进行测试用例的设计时,首先通过业务需求分成多个软件功能需求,再通过软件功能需求分为多个测试需求点,最后针对测试需求点设计测试用例。
6.测试用例
概念:测试用例是为了实施测试而向被测试的系统提供的一组集合 。这组集合包含:测试环
7.Bug(软件错误)
概念:当且仅当规格是存在的并且是正确的,程序与规格说明之间的不匹配才是错误。规格说明书没有提到的功能。判断标准以最终用户为准,当程序没有实现其最终用户合理预期的功能需求时,就是软件错误。
8.软件的生命周期
概念:软件的生命周期是指从软件产品的设想开始到软件不再被使用而结束的时间
软件生命周期可以分为6个阶段:需求分析,计划,设计,编码,测试,运行维护。
9. 开发模型
9.1 瀑布模型
瀑布模型是所有其他模型的基础框架,瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模型
优点:每个阶段做什么,产出什么很清晰。
缺点:风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。
试用的项目:小型项目
9.2 螺旋模型
9.3 增量,迭代
9.4 敏捷(scrum)
敏捷宣言:拥抱变化,轻流程,重交付,轻文档,重交互。
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成。
10. 测试模型
10.1 V模型
10.2 W模型
特点:W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
优点:有利于尽早地全面的发现问题。
缺点:测试人员和开发人员一定程度还保持着线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。
11. 软件测试的生命周期
软件开发的生命周期:需求分析→测试计划→测试设计,测试开发→测试执行→测试评估
12. 如何描述一个bug
1. 发现问题的版本;
2. 问题出现的环境;
3. 错误重现的步骤;
4. 预期行为的描述;
5. 错误行为的描述;