一、软件测试功能测试编写测试用例是软件测试的基本功;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计并生成有效的测试用例;测试用例是测试工作的指南,是软件测试必须遵循的准则。黑盒测试常用的测试用例编写方法1.等价类选取少量有代表性的数据,等价于该类的其他值;找到最小的子集,并找到最多的错误;features:必须设计的用例;涵盖大多数情况;2.边界值所谓边界条件是指输入输出等价类中刚好在边界上、超出边界或低于边界的那些状态;features:选择一个或多个Element,使得等价类的每一个边界都被测试过;不同于只关注输入条件,设计测试用例还需要考虑结果空间(输出等价类);3.分析因果图的输入条件组合。使用系统的方法来选择高效的测试用例集;分析思路:a.分析规范的描述,确定原因和结果,并分配一个标识符;b.分析规范的语义,找出原因与原因的区别,以及结果之间的关系,画出因果图;c、一些原因和原因,原因和结果之间的结合不会出现,用符号表示约束或限制;d、将因果图转化为判断表;e、判断表每一列的每一列作为设计测试用例的依据;4、决策表驱动法是分析表达多种逻辑条件下执行不同操作情况的工具;跳过因果图的绘制,直接列出所有组合进行筛选;5.正交当实验方法使用因果图设计测试用例时,输入原因与输出结果之间的因果关系有时很难从软件需求说明书中得到;通常因果关系如此之大以至于测试用例的数量非常庞大。为了有效、合理地减少测试工时和成本,采用正交实验设计的方法设计测试用例。6.功能图法程序的功能包括静态描述和动态描述。动态规范描述了输入数据的顺序或传输顺序,与业务流程密切相关。静态规范描述了输入和输出条件之间的对应关系。面向市场的产品,逻辑复杂,组合庞大,功能描述必须辅以动态描述。功能图设计法:功能图法用功能图直观地表示程序的功能描述,机械地生成功能图的测试用例。我们在不同文档中看到的“状态转换图”、“流程图”、“菜单树”在一定程度上都是功能图的不同表现形式,不同的测试人员使用的具体方法可能略有不同。7.场景实验法目前的软件大多采用事件触发器来控制流程。事件触发时的场景构成场景,同一事件的不同触发顺序和处理结果构成事件流。这种方法可以形象地描述事件被触发时的情况,有利于测试设计者设计测试用例,使测试用例更容易理解和执行。8、错误推断法是根据经验和直觉来推测程序中所有可能的错误,从而有针对性地设计测试用例;更多的是与用户的使用习惯和测试程序中的常见问题有关。9.需求转换根据需求,进行需求分析,编写测试用例。10、设计文档指的是设计文档,可以了解软件系统内部的设计过程和处理机制。相对于写好的测试用例,可以在相应的功能和模块中增加新的测试用例;11、探索性测试的测试点是无穷无尽的探索性测试;我们必须在测试的最前沿使用洞察力、技术和应急措施来发现产品缺陷;二、软件测试接口测试1、什么是接口测试?接口测试是一种测试系统组件之间接口的测试。接口测试主要用于检测外部系统与内部子系统的交互点。测试的重点是检查数据的交换、交付和控制管理的过程,以及系统之间相互的逻辑依赖关系。2、为什么要进行接口测试?a)当今系统的复杂度不断上升,传统测试方法的成本急剧增加,测试效率急剧下降。接口测试可以为这种情况提供解决方案。b)接口测试相对容易实现自动化持续集成,相对UI自动化相对稳定,可以减少人工回归测试的人力成本和时间,缩短测试周期,支持后端快速发布要求。接口持续集成是低成本高回报的根本原因。c)现在很多系统的前后端是分离的。从安全的角度来看:1)、仅靠前端做限制已经不能满足系统的安全要求(前端太容易绕过),后端也需要控制。这种情况下,就需要从接口层面进行验证。2)还需要验证前后端传输、日志打印等信息是否加密传输,特别是涉及用户隐私信息时,如身份证、银行卡等。3.如何做接口测试根据后端开发提供的接口测试文档进行接口测试验证如图:然后根据接口文档输入url和参数,检查响应是否正确b.如果没有接口文档,使用抓包工具进行接口数据抓包,抓包工具:fiddler三、软件测试性能测试1、性能测试领域分析根据对项目背景和业务的了解,确定问题点在此性能测试中解决;测试系统是否能够满足实际运行的需要,或者当前系统有哪些方面制约了系统的性能,或者有哪些系统因素阻碍了系统跟上业务发展的步伐?确定测试区域,然后具体问题具体分析。2.用户场景分析和业务建模基于对系统业务、用户活跃时间、访问频率、场景交互等的分析,组织一个业务场景表。当然,最好详细描述用户操作场景和步骤。为测试脚本开发提供依据。3、确定性能目标之前已经确定了本次性能测试的应用领域,接下来就是针对具体关注的领域确定性能目标(指标);例如:①从登录请求到登录成功页面的响应时间不能超过2秒;②提交报告审核的页面响应时间不能超过5秒;③文件上传下载页面响应时间不超过8秒;4、性能测试脚本编写性能测试工具:loadrunner、jmeter这里使用jmeter,因为loadrunner安装包太大,不够轻便。jmeter性能测试是通过接口对服务器进行高并发访问,所以脚本的写法和接口测试类似,输入url,参数等四、软件测试自动化测试1、ui自动化测试a、web端ui自动化测试一般采用python+selenium定位页面元素,由浏览器驱动,模拟人的页面操作,实现web端ui自动化测试b.移动端ui自动化测试一般采用python+appium调用Androidjdk,获取app页面元素,模拟人操作app,实现移动端ui自动化测试2、界面自动化测试界面自动化测试一般采用python+requests,或者httpx。这里博主使用的请求比较简单。一个简单的例子,如图:
