IEEE
Institute of electrical and electronics
engineers
电气和电子工程师协会
致力于电气、电子、计算机工程与科学有关的领域的开发和研究的国际学术组织
EOS
End of service
停止该产品所有服务
SRS
Software requirements specification
软件需求规格说明书(是写给开发人员和测试人员一起看的)
HLD
High level design
概要设计说明书
LLD
Low level design
详细设计说明书
SQA
Software quality assurance
软件质量保证
UI
Unit testing
单元测试
IT
Integration testing
集成测试
ST
System testing
系统测试
UAT/AT
User acceptance testing
验收测试
Test
case
测试用例
测试用例是用来指导测试执行,一个测试用例是一次测试执行的最小单元,一般包括:标题、前置条件、测试步骤、输入、预期结果、实际结果、重要级别等
BUG
软件缺陷:是指静态存在于软件工作产品(文档、代码)中的错误,也指软件运行时由于这些错误被激发引起的和软件产品预期相偏离的想象。
软件开发流程
项目立项→需求分析→ 概要设计 → 详细设计 → 编码 → 测试 → 维护 →EOS
1.项目立项:成立项目组,定义角色和职责,确定整个项目的交付标准(时间和达标要求),输出项目的工作任务书
2.需求分析:需求工程师(产品经理)获取原始需求(客户,市场调查,竞争对手,社会发展····)并整理原始需求,定义好规格,输出SRS
3.概要设计:系统工程师,架构师,主要是软件的框架设计,定义好整个软件分为哪些模块,各模块之间的交互模式,也包括协议等,输出HLD
4.详细设计:资深开发,设计师,也包括界面设计,主要是定义软件各模块内部如何实现,包括算法等,输出LLD
5.编码:程序员,使用开发语言,按照需求和设计,完成各模块的代码编写
6.测试:测试分为单元测试,集成测试,系统测试和验收测试
7.维护:主要是售后人员主导,包括环境部署,客户培训,日常检查,出问题后问题的收集和反馈,新版本扩容和割接等
8.EOS
测试的分类
根据不同的角度分类不同
分类1:根据软件是否需要运行
静态测试:在测试过程中,不需要运行程序,多数为代码的评审,文档测试等
动态测试:与静态测试相反
例子:
以下哪些测试属于静态测试(CE)
A单元测试B系统测试C文档测试D界面测试E代码检视F验收测试
分类2:根据软件内部是否可见
黑盒测试:软件内部不可见,在不了解内部结构(代码)的情况下进行的测试
白盒测试:软件内部可见,根据内部结构进行的测试
灰盒测试:介于两者之间的测试
分类3:根据测试的先后顺序
单元测试:针对软件中最基础的单元(函数/代码)进行测试,主要测试代码是否有问题
集成测试:将两个或两个以上的单元组装在一起进行测试,也叫组装测试,主要测试各单元之间相互的交互能力是否有问题,测试重点是接口。
系统测试:测试整个软件系统是否符合需求规格,主要测试软件的业务逻辑是否有问题
回归测试:测试人员在测试执行发现缺陷后,由开发人员修复缺陷,再由测试人员进行测试的过程。(回归测试的目的是确定缺陷是否修复好?是否引发新的问题?)
验收测试:主要由客户(客户指定人员)对整个软件进行接收性测试
分类4:根据执行方式
自动化测试
手动测试
分类5:根据系统分类
功能测试、性能测试、兼容性测试、可靠性测试、稳定性测试、压力测试、攻击测试等
分类6:其他测试
敏捷测试等
回归测试的策略
选择上一次测试不通过的用例
选择由于修复缺陷而影响到的模块的用例(测试判断:开发对测试的建议)
选择优先级(重要级别)比较高的用例
测试原则
测试介入的越早越好
二八原则:80%的时间用在20%的重要模块
杀虫剂现象:抗原体,不定期修改测试方法
测试可以显示缺陷的存在,但是不能保证测试后不存在缺陷
测试具有群集特性
例子:如果测试过程中,发现某个模块缺陷较多,意味着该模块剩下的缺陷也多(√)
软件测试的目的
20世纪60年代:证明软件是可以运行的
20世纪70年代中期:检测与发现错误
20世纪90年代:预防、管理质量