Software-Testing-Intro
  • 简介
  • 第零章-写在前面
    • 为什么是这本书?
    • 来源与版权信息
  • 第一章-软件测试简介
    • 走进软件测试
    • 软件测试的基本概念
    • 你将收获到的东西
  • 第二章-基础(1)黑盒白盒测试
    • 白盒静态-代码审查
    • 白盒动态-结构覆盖
    • 黑盒测试
  • 第三章-基础(2)软件开发过程中的测试方法
    • 单元-集成-系统测试
    • 冒烟-回归-Alpha-Beta测试
  • 第四章-基础(3)软件特性方面的测试方法
    • 软件运行效率测试
    • 软件可靠性与安全性的测试
    • 软件用户友好性的测试
  • 第五章-进阶(1)特殊软件测试方法
  • 番外篇-也谈兼容性测试
由 GitBook 提供支持
在本页
  • 简介
  • 进度条
  • 我想听到你的声音
  • 本简介对谁有用?
  • 不会开发,所以想学测试?
  • 软件测试的学术界简介
  • 软件测试的工业界简介
  • 软件测试方向前景小结

这有帮助吗?

简介

下一页第零章-写在前面

最后更新于4年前

这有帮助吗?

简介

Software testing introduction. An introductory booklet written for friends who are interested in software quality assurance.

软件测试简介。为对软件质量保障感兴趣的小伙伴们撰写的入门小册子。

进度条

  • Dec. 16th 2020 通用测试方法部分完结,撒花!

  • 由于时间关系,暂时停止本仓库的更新。课程后半部分会介绍一系列的特殊测试方法,这部分测试方法相对冷门,可能只有少部分小伙伴会对其感兴趣。如果你对他们感兴趣,可以提issue或者给我的邮箱发邮件催更。这些方法包括:

    • 随机测试、自适应随机测试、组合测试

    • 基于约束的测试

    • 基于搜索的测试、有限状态机测试

    • 变异测试、蜕变测试

    • Fuzzing、故障注入测试、智能软件测试

  • 目前主要精力在的编写上

我想听到你的声音

  • 批评的意见很有价值。 本简介一定有很多做得不好的地方。如果你觉得我写得不好,可以选择提issue或者通过邮箱联系我(ranger.nju#gmail.com)。

  • 如果你觉得我写得不错,可以到GitHub仓库中给我一个Star,也可以在自己的社交圈子中宣传,让更多的人了解这个项目。

本简介对谁有用?

学生,开发者,研究者……几乎所有当代生活者都能从中受益。

  • 学习方向与程序有关的学生。

    • 计算机方向的学生能了解常见的bug的产生原因并在实践中下意识避免,也能够通过对自己的程序进行测试而获得更高的实验评价。

    • 其他方向的学生既然看到这里,相比对计算机相关知识感兴趣,本书或许能够为你开启一段新的职业生涯。

  • 工作内容与程序有关的开发者。

    • 无论你希望直接应用某种测试工具,还是希望自己开发一个,本简介都能帮助你理解背后的工作原理和特性,并选定合适的方法。

  • 研究领域与程序相关的研究者。 或许你希望微调研究方向,却因没有合适的入门材料而苦恼;或许你希望了解计算机领域的相关知识以期获得启发……本简介可以作为你的入门材料或是闲暇读物。

  • 生活与程序相关的每个人

    • 软件质量是信息化时代的重要议题之一,在这个时代生活与工作,你一定会遇到相关的问题。

    • 软件测试这门课程在大学中很常见,但少有公开材料。

    • 测试的思想很容易应用在生活中社交、消费、工作、教育、制造等领域。

不会开发,所以想学测试?

软件测试这门课程在大学中很常见,但往往有同学认为在课程上没有学到有用的东西,对自己的未来发展也没有什么作用。以下的介绍或许会让你对软件测试有新的认识。

软件测试的学术界简介

根据一个知名软件测试领域的网站的统计与调查,数年前软件测试领域的前十大重要的课题,在今天依然存在。

作者所在的大学以人工智能和软件方向见长,有许多老师在“给软件找bug”这件事情上做出了非常酷炫的成果。比如:

  1. 用随机测试的方法给GCC找出了一批真实的bug。

  2. 利用人工智能的方法为软件找bug。

软件测试的工业界简介

学生眼中的职场现状

通常来说,小企业会有专门的测试工程师岗位,大企业则倾向于不设专门的测试岗——因为自己写测试用例和维护测试框架是合格开发者的基本素养。

从工资水平上看,测试与运维岗位普遍比开发岗位低。

老师口中的职业前景

一位老师曾经在课上教导我们多用封装与抽象,少用copy-paste编程模式。且提及了有前辈专门针对copy-paste编程模式引入的bug进行研究,进而创业并取得了相当好的成绩。

软件测试方向前景小结

  • 待解决的问题长久存在,但能够解决问题的技术思想与方法日新月异。

  • 不具备创新的眼光与扎实的专业技能,往往不能做出突破性的贡献。

我的其他项目:

用特殊方法对并行程序进行测试。(例如,有一款叫做的开源软件能够记录下程序运行过程中的每一个细节并回放,从而保证复现bug)

实现高精度高速度的分析。

《软件测试简介》Gitbook在线阅读地址
《软件测试简介》GitHub项目地址
另外一个repo
rr
跳出程序分析领域的固有认知,提出新的分析方法
《静态程序分析》Gitbook在线阅读地址
《静态程序分析》GitHub项目地址