2023年6月21日发(作者:)
设计“⽤户登录”测试⽤例,看似简单实则不易茹炳晟的《软件测试52讲》01讲使⽤“⽤户登录”测试的例⼦,讲述通过⽅法来设计测试⽤例。⼀个看似简单功能,不代表设计的测试⽤例也简单。下⾯看看作者怎么设计“⽤户登录”的测试⽤例。(PS:测试⽤例太多,摘记部分测试⽤例)根据“⽤户登录”功能的需求说明,结合等价类划分和边界值⽅法来设计的测试⽤例。等价类划分和边界值⽅法是最常⽤、最典型的⿊盒测试⽅法。设计测试⽤例如下:1. 输⼊已注册的⽤户和输⼊正确密码2. 输⼊已注册的⽤户和输⼊错误密码3. 输⼊错误的⽤户和输⼊正确密码4. 未注册的⽤户登录5. ⽤户名、密码为空能否登录6. 验证码是否起到验证作⽤7. ⽤户名和密码是否⼤写敏感8. 密码框是否加密显⽰9. 控制⽤户和密码长度、⽤户名和密码组成要求10. ⽤户登录成功超时后,继续操作能否会重定向到登录页⾯…………在这⾥为了举例⼦,就不⼀⼀列出测试⽤例,认真阅读“⽤户登录”需求⽂档和业务规则,还能设计出更多测试⽤例。⼀个质量过关、⽤户体现好的软件系统,不仅需要显式功能性需求,还需要隐式功能性需求。显式功能性需求(Funcational requirement)指的是软件本⾝需要实现的具体功能。上⾯列举测试⽤例按照显式功能性需求来设计。隐式功能性需求(Non-Funcational requirement):从软件测试的维度来看,⾮功能性需求主要设计安全性、性能以及兼容性三⼤⽅⾯。这些是决定软件质量的关键因素。下⾯分别描述安全性测试⽤例、性能压⼒测试⽤例和兼容性测试⽤例。⽤户登录安全性测试⽤例:1. ⽤户密码后台存储是否加密2. ⽤户在⽹络传输过程中是否加密3. ⽤户Session在有效期内是否会失效4. ⽤户名和密码输⼊框中分别输⼊“SQL注⼊攻击”字符串,验证系统的页⾯内容展⽰5. ⽤户名和密码的输⼊框中分别输⼊典型“XSS跨站脚本攻击”字符串,验证系统⾏为是否被篡改6. 知道其他⽤户的Id,能否查询其他⽤户信息。……⽤户登录性能压⼒测试⽤例:1. 单⽤户登录的响应时间是否⼩于3秒2. 但⽤户登录时,后台请求数量是否过多。3. ⾼并发场景下⽤户登录的响应时间是否⼩于5秒4. ⾼并发场景下服务端的监控指标是否符合预期5. ⾼集合点并发场景下,是否存在资源死锁和不合理的资源等待6. 长时间⼤量⽤户连续登录和登出,服务器端是否存在内存泄露。⽤户登录兼容性测试⽤例:1. 不同浏览器下,验证登录页⾯的显⽰以及功能正确性。2. 相同浏览器的不同版本下,验证登录页⾯的显⽰以及功能正确性3. 不同移动设备终端的不同浏览器下,验证登录页⾯的显⽰以及功能正确性。4. 不同分辨率的界⾯下,验证登录页⾯的显⽰以及功能正确性。思考1:测试⼀个功能、系统可以遵循作者思路来设计测试⽤例,从功能测试、安全性测试、性能压⼒测试、兼容性测试来思考。如果是web端测试,还需要增加⽤户界⾯测试。如果每次测试都从这些⽅⾯散发思考⽤例设计,能发现不⼀样缺陷。上⾯列出测试⽤例,有部分功能点没有覆盖到,是有遗漏的,测试是不可穷尽。穷尽测试是指所有可能输⼊值组合的测试。思考2:测试受到时间成本和经济成本限制,不可能采⽤穷尽测试,采⽤基于风险驱动的模式,有所侧重选择测试功能点和测试范围,进⾏等价类划分,抽样选出测试⽤例。在软件质量和测试成本找个平衡点。
2023年6月21日发(作者:)
设计“⽤户登录”测试⽤例,看似简单实则不易茹炳晟的《软件测试52讲》01讲使⽤“⽤户登录”测试的例⼦,讲述通过⽅法来设计测试⽤例。⼀个看似简单功能,不代表设计的测试⽤例也简单。下⾯看看作者怎么设计“⽤户登录”的测试⽤例。(PS:测试⽤例太多,摘记部分测试⽤例)根据“⽤户登录”功能的需求说明,结合等价类划分和边界值⽅法来设计的测试⽤例。等价类划分和边界值⽅法是最常⽤、最典型的⿊盒测试⽅法。设计测试⽤例如下:1. 输⼊已注册的⽤户和输⼊正确密码2. 输⼊已注册的⽤户和输⼊错误密码3. 输⼊错误的⽤户和输⼊正确密码4. 未注册的⽤户登录5. ⽤户名、密码为空能否登录6. 验证码是否起到验证作⽤7. ⽤户名和密码是否⼤写敏感8. 密码框是否加密显⽰9. 控制⽤户和密码长度、⽤户名和密码组成要求10. ⽤户登录成功超时后,继续操作能否会重定向到登录页⾯…………在这⾥为了举例⼦,就不⼀⼀列出测试⽤例,认真阅读“⽤户登录”需求⽂档和业务规则,还能设计出更多测试⽤例。⼀个质量过关、⽤户体现好的软件系统,不仅需要显式功能性需求,还需要隐式功能性需求。显式功能性需求(Funcational requirement)指的是软件本⾝需要实现的具体功能。上⾯列举测试⽤例按照显式功能性需求来设计。隐式功能性需求(Non-Funcational requirement):从软件测试的维度来看,⾮功能性需求主要设计安全性、性能以及兼容性三⼤⽅⾯。这些是决定软件质量的关键因素。下⾯分别描述安全性测试⽤例、性能压⼒测试⽤例和兼容性测试⽤例。⽤户登录安全性测试⽤例:1. ⽤户密码后台存储是否加密2. ⽤户在⽹络传输过程中是否加密3. ⽤户Session在有效期内是否会失效4. ⽤户名和密码输⼊框中分别输⼊“SQL注⼊攻击”字符串,验证系统的页⾯内容展⽰5. ⽤户名和密码的输⼊框中分别输⼊典型“XSS跨站脚本攻击”字符串,验证系统⾏为是否被篡改6. 知道其他⽤户的Id,能否查询其他⽤户信息。……⽤户登录性能压⼒测试⽤例:1. 单⽤户登录的响应时间是否⼩于3秒2. 但⽤户登录时,后台请求数量是否过多。3. ⾼并发场景下⽤户登录的响应时间是否⼩于5秒4. ⾼并发场景下服务端的监控指标是否符合预期5. ⾼集合点并发场景下,是否存在资源死锁和不合理的资源等待6. 长时间⼤量⽤户连续登录和登出,服务器端是否存在内存泄露。⽤户登录兼容性测试⽤例:1. 不同浏览器下,验证登录页⾯的显⽰以及功能正确性。2. 相同浏览器的不同版本下,验证登录页⾯的显⽰以及功能正确性3. 不同移动设备终端的不同浏览器下,验证登录页⾯的显⽰以及功能正确性。4. 不同分辨率的界⾯下,验证登录页⾯的显⽰以及功能正确性。思考1:测试⼀个功能、系统可以遵循作者思路来设计测试⽤例,从功能测试、安全性测试、性能压⼒测试、兼容性测试来思考。如果是web端测试,还需要增加⽤户界⾯测试。如果每次测试都从这些⽅⾯散发思考⽤例设计,能发现不⼀样缺陷。上⾯列出测试⽤例,有部分功能点没有覆盖到,是有遗漏的,测试是不可穷尽。穷尽测试是指所有可能输⼊值组合的测试。思考2:测试受到时间成本和经济成本限制,不可能采⽤穷尽测试,采⽤基于风险驱动的模式,有所侧重选择测试功能点和测试范围,进⾏等价类划分,抽样选出测试⽤例。在软件质量和测试成本找个平衡点。
发布评论