1.什么是软件测试?
使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
2.软件测试的测试对象
软件需求、软件概要设计、软件详细设计、可运行程序、软件源代码、软件运行环境
3.软件测试的要素和目标
五大要素:质量、人员、资源、流程、技术
两大目标:测试覆盖率、测试效率
4.软件测试所遵循的原则
①测试显示缺陷的存在,但不能证明系统不存在缺陷
②穷尽测试是不可能,应设定及时的终止条件
③尽早的进行
④缺陷具备群集特性
⑤测试的杀虫剂悖论
⑥测试的二八原则
⑦测试活动依赖于测试背景
5.软件测试的分类
按测试阶段
①单元测试:对软件中的最小可测试单元进行检查和验证。
②集成测试:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动
③系统测试:将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行
④验收测试:也称交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统
按测试手段来分类
①黑盒测试和白盒测试
②动态测试和静态测试
静态测试:是指无需执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率
动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等
③手工测试和自动化测试
手工测试:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。众包测试、探索式测试。
自动化测试:使用单独的测试工具软件控制软件的自动化执行以及对预期和结果进行自动检查。单元测试、接口测试、性能测试。
按测试模式来分类
瀑布模型、敏捷模型、基于脚本的测试、基于风险的测试、探索式测试等
按测试类型来分类
①功能测试
②性能测试
③部署测试
④文档测试
⑤安全测试
⑥兼容性测试
⑦易用性测试
⑧本地化测试
⑨无障碍测试
⑩可靠性测试
其他分类
①回归测试
②冒烟测试
③Monkey测试
④AB测试
6.软件测试人员工作内容
需求阶段:需求评审,明确测试边界;提取功能点与测试点
测试设计:测试计划、方案、用例
系统架构:清楚系统的架构实现,数据走向,代码逻辑分析;根据系统架构选择使用的自动化测试框架和性能测试策略
执行测试:提交缺陷、回归验证
其他评估:性能测试评估、自动化测试覆盖
测试总结:测试报告、验收报告、风险评估
时间管理:工具调研、框架/平台/工具研发、资源协调
7.功能测试学习内容
基础知识:软件基础知识、软件生命周期、软件开发模型、软件开发文档、软件测试基础、软件测试模型、测试组织架构、软件工程标准。
测试策划:测试环境搭建、测试流程(需求测试、测试计划)。
测试设计:边界值分析法、等价类划分法、判定表法、因果图法、正交实验法、场景法。
测试执行:用例执行、缺陷管理、缺陷跟踪分析、易用性测试、兼容性测试。
8.自动化测试学习内容
自动化学习基础:前端开发基础(HTML、JS、CSS)、浏览器调试工具(F12、FireBug)、接口测试工具使用(PostMan、SoapUI、Jmeter、HttpClient、UrlConnection、Requests)、Web自动化API(Selenium浏览器操作、元素定位、点击,输入等动作、特殊控件操作、JS自动化处理)