现在IT市场需求越来越激烈,所以很多人都想往IT行业去发展,例如JAVA开发、软件测试、测试开发、设计等。但是很多人还不知道学软件测试要准备那些知识或者要了解那些知识,本文就详细梳理了学软件测试必须要知道的20条基础知识点。
1、什么是软件的特点:
1> 软件是一种逻辑实体
2> 软件的生产和硬件的生产不同
3> 软件运行和使用没有机械磨损和老化
4> 软件的开发和运行对计算机系统有一定的依赖性
5> 软件是复杂的
6> 软件成本相当昂贵
7> 相当多的软件工作涉及社会因素
2、软件的分类:
按功能:系统软件、支撑软件、应用软件
按规模:小型、中型、大型
按技术特点:业务软件(ERP)、科技软件、嵌入式软件、实时软件(监控)、个人计算机软件、人工智能软件
按技术架构:单机版软件、C/S结构软件(C是指客户端, S指服务器端)、B/S结构软件(B是指浏览器)
3、驱动模块:用以模拟被测模块的上级模块,在单元测试中启动被测模块,接受测试数据,传送数据给被测模块并打印出相应结果。
桩模块:由被测模块调用,用以模拟被测模块工作过程中所调用的模块
4、软件生命周期的瀑布模型:计划à需求分析à设计à编码à测试à运行维护
软件测试生命周期:制定测试计划à测试设计和开发à实施软件测试à评审à版本发布
5、配置测试环境原则:
1> 符合软件运行的最低要求
2> 选用比较普及的操作系统和软件平台
3> 营造相对简单、独立的测试环境
4> 无毒的环境
6、软件测试按阶段分为:单元测试à集成测试à确认测试à系统测试à验收测试
单元测试:又称为模块测试,是最小单位的测试,在系统开发过程中进行的测试活动。
集成测试:也称综合测试,是在单元测试基础上将已通过的单元模块按设计要求组装成 系统或子系统再进行的测试
系统测试:将通过确认测试的软件作为整个计算机系统的一个元素在实际运行环境中对计算机系统进行全面的功能覆盖。
验收测试:软件交给用户前的最后一道工序目的是向客户和承包人证明产品是可靠的。必须有用户或用户代表参加,并在实际运行环境下进行。
软件测试按策略分为:静态测试和动态测试
静态测试:不运行程序本身而寻找代码中可能存在的错误或评估程序代码的过程
动态测试:实际运行被测试程序,输入相应测试实例,检查运行结果和预期结果的差异 等,动态测试有两种主要的方法:白盒测试和黑盒测试。
动态测试由三部分组成:构造测试用例、根据测试实例运行程序、分析程序的输出结果。
7、软件设计和编码阶段的工作流程:
8、静态测试特点:
1> 不必运行程序、设计用例、判断结果
2> 可以由人工进行,充分发挥伯逻辑思维优势
3> 不需要特别的条件,容易开展
动态测试特点:
1> 实际运行程序取得程序真实情况并分析结果
2> 必须生成测试数据来运行程序,测试质量依赖于测试数据
3> 工作量大,费时、费力、费人
4> 涉及多方面工作,需要有较好的管理和工作规程
9、 黑盒测试:又称功能测试、数据驱动测试或基于规格说明书的测试。着重于测试软件的功能性需要。
白盒测试:又称结构测试、逻辑驱动测试或基于程序本身的测试。
压力测试:获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。如:一个人不吃饭不喝水不7-8天后就会死(极限值)。
负载测试:用于检查系统在使用大量数据时的正确工作能力。如:一个人只喝水可以支撑10-15天(在高负荷条件下所能支撑的最长时间)。
功能测试:又称正确性测试,它检查软件的功能是否符合规格说明。
性能测试:检查系统是否满足在需要说明书中规定的性能,主要是测试软件处理事务的速度,通常使用自动化测试工具运行测试。
10、软件测试的原则:
1> 尽早地进行测试,并把软件测试贯穿于整个软件生命周期
2> 软件测试应追溯需要
3> 测试应由第三方来构造
4> 穷举测试是不可能的,要遵循Good-Enough原则
5> 必须确定预期输出结果
6> 必须彻底检查每个测试结果
7> 充分注意测试中的群集现象
8> 缺陷的二八原则
9> 要严格执行测试计划,排除测试的随意性
10> 测试时既要注意合法的输入也要注意非法的非预期的输入
11> 检查程序是否做了应该做的同时也做了不该做的
12> 测试应由小规模到大规模进行
13> 必须不断编写不同的新测试用例
14> 要关注缺陷的修复
11、软件测试的V模型:
12、软件风险分析的目标:确定测试对象、测试的优先级及测试的深度、有时可能还包括确定不予测试的对象。
风险分析小组包括:开发人员、测试人员、用户、销售人员。
风险分析也应该在软件生命周期内迟早进行且在项目进行过程中时时进行。
13、如何进行风险分析:
1> 成立头脑风暴小组
2> 编制特征列表
3> 确定可能性
4> 确定影响
5> 赋值
6> 确定风险优先级
7> 评审/修改值
8> 排定特征的优先级
9> 确定“分割线”
10> 考虑缓解风险
头脑风暴小组规则:
1、 不准批评或争论
2、 充分发挥成员的想像力
3、 征求到的意见越多越好
4、 及时整理、汇总意见
14、软件测试概念:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需要或弄清预期结果与实际结果之间的差别。
软件测试活动:制定测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结。
15、测试的根本目的:确保最终交给用户的产品符合用户的需求,在产品交给用户之前尽可能多地发现并改正问题。
16、测试工作要达到的目标:
1> 确保产品完成了所承诺或公布的功能且用户可以访问的功能都有明确的书面说明
2> 确保产品满足性能和效率的要求
3> 确保产品是健壮和适应用户环境的
17、测试与调试的区别:
18、软件测试员必备的素质:
1> 责任心
2> 沟通能力
3> 团队合作精神
4> 耐心、细心、信心
5> 时时保持怀疑态度,并且有缺陷预防意识
6> 具备一定的编程经验
19、软件缺陷产生的原因:
1> 人员之间的沟通交流不够、产生误解或根本不交流
2> 程序设计本身有错误
3> 软件复杂性
4> 需要的不断变化
5> 工期短、任务重、时间压力大
6> 参与人员的过度自信
7> 文档不完善
8> 软件开发工具和系统软硬件的支持不完备
20、书定缺陷报告的准则:
1> 保证重现缺陷
2> 分析故障,使用最少步骤重现缺陷
3> 包含所有重现缺陷的必要步骤
4> 方便阅读
5> 一个缺陷一个报告
6> 注意自己的语气
值得注意的经验:
1、 永远报告不可重现的错误
2、 不要夸大程序缺陷
3、 报告小缺陷
4、 报告缺陷要及时
5、 可以引用别人的报告,但要记得署名
6、 不要修改别人的缺陷