当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Exploring output-based coverage for testing PHP web applications
Automated Software Engineering ( IF 2.0 ) Pub Date : 2018-10-15 , DOI: 10.1007/s10515-018-0246-5
Hung Viet Nguyen , Hung Dang Phan , Christian Kästner , Tien N. Nguyen

AbstractIn software testing, different testers focus on different aspects of the software such as functionality, performance, design, and other attributes. While many tools and coverage metrics exist to support testers at the code level, not much support is targeted for testers who want to inspect the output of a program such as a dynamic web application. To support this category of testers, we propose a family of output-coverage metrics (similar to statement, branch, and path coverage metrics on code) that measure how much of the possible output has been produced by a test suite and what parts of the output are still uncovered. To do that, we first approximate the output universe using our existing symbolic execution technique. Then, given a set of test cases, we map the produced outputs onto the output universe to identify the covered and uncovered parts and compute output-coverage metrics. In our empirical evaluation on seven real-world PHP web applications, we show that selecting test cases by output coverage is more effective at identifying presentation faults such as HTML validation errors and spelling errors than selecting test cases by traditional code coverage. In addition, to help testers understand output coverage and augment test cases, we also develop a tool called WebTest that displays the output universe in one single web page and allows testers to visually explore covered and uncovered parts of the output.

中文翻译:

探索基于输出的覆盖范围以测试 PHP Web 应用程序

摘要在软件测试中,不同的测试人员关注软件的不同方面,如功能、性能、设计和其他属性。虽然存在许多工具和覆盖率指标来支持代码级别的测试人员,但针对想要检查程序(例如动态 Web 应用程序)输出的测试人员的支持并不多。为了支持此类测试人员,我们提出了一系列输出覆盖度量(类似于代码的语句、分支和路径覆盖度量),用于测量测试套件产生了多少可能的输出以及测试套件的哪些部分输出仍然未发现。为此,我们首先使用我们现有的符号执行技术来近似输出宇宙。然后,给定一组测试用例,我们将生成的输出映射到输出域,以识别覆盖和未覆盖的部分并计算输出覆盖度量。在我们对七个实际 PHP Web 应用程序的实证评估中,我们表明,通过输出覆盖率选择测试用例比通过传统代码覆盖率选择测试用例更有效地识别表示错误,例如 HTML 验证错误和拼写错误。此外,为了帮助测试人员了解输出覆盖率和扩充测试用例,我们还开发了一个名为 WebTest 的工具,它在一个网页中显示输出范围,并允许测试人员直观地探索输出的覆盖和未覆盖部分。我们表明,通过输出覆盖率选择测试用例比通过传统代码覆盖率选择测试用例更有效地识别表示错误,例如 HTML 验证错误和拼写错误。此外,为了帮助测试人员了解输出覆盖率和扩充测试用例,我们还开发了一个名为 WebTest 的工具,它在一个网页中显示输出范围,并允许测试人员直观地探索输出的覆盖和未覆盖部分。我们表明,通过输出覆盖率选择测试用例比通过传统代码覆盖率选择测试用例更有效地识别表示错误,例如 HTML 验证错误和拼写错误。此外,为了帮助测试人员了解输出覆盖率和扩充测试用例,我们还开发了一个名为 WebTest 的工具,它在一个网页中显示输出范围,并允许测试人员直观地探索输出的覆盖和未覆盖部分。
更新日期:2018-10-15
down
wechat
bug