一句话:提出首个化学反应网络(CRN)测试框架 ChemTest,支持多种测试用例并可发现种子故障。
化学反应网络(CRN)通过化学相互作用进行计算,可用于纳米尺度分子器件(如智能药物)的原型验证。此类程序通常在 MatLab 等环境中模拟后再编译为 DNA 链,但缺乏正确性测试技术,现有模型检测与定理证明难以扩展。本文提出首个 CRN 测试框架 ChemTest,它在单条模拟轨迹上评估测试预言,支持功能、蜕变、内部与超测试,并允许概率性程序和 flaky 测试。大规模案例研究表明,ChemTest 能发现植入故障,扩展性优于模型检测;21% 的测试本质 flaky;功能测试平均发现 66.5% 的故障,蜕变测试发现 80.4%,且评估时间会影响故障检测。
In recent years the use of non-traditional computing mechanisms has grown rapidly. One paradigm uses chemical reaction networks (CRNs) to compute via chemical interactions. CRNs are used to prototype molecular devices at the nanoscale such as intelligent drug therapeutics. In practice, these programs are first written and simulated in environments such as MatLab and later compiled into physical molecules such as DNA strands. However, techniques for testing the correctness of CRNs are lacking. Current methods of validating CRNs include model checking and theorem proving, but these are limited in scalability. In this paper we present the first (to the best of our knowledge) testing framework for CRNs, ChemTest. ChemTest evaluates test oracles on individual simulation traces and supports functional, metamorphic, internal and hyper test cases. It also allows for flakiness and programs that are probabilistic. We performed a large case study demonstrating that ChemTest can find seeded faults and scales beyond model checking. Of our tests, 21% are inherently flaky, suggesting that systematic support for this paradigm is needed. On average, functional tests find 66.5% of the faults, while metamorphic tests find 80.4%, showing the benefit of using metamorphic relationships in our test framework. In addition, we show how the time at evaluation impacts fault detection.