Large Scale Unit Testing Algorithm v2
Creators: name: HO, CHEW KEAN
Publisher: name: Zenodo
Year: 2022
Subjects: Large Scale
Testing
Unit Testing
Version 2
Enhanced
Algorithm
Go
TinyGo
Rust

description: Working on unit testing software product in modern programming languages is getting more cumbersome as the software product is getting incrementally complex in a very rapid and demanding pace. Since year 2019, research efforts had been done to effectively deploy large scale testing specifically for Go Programming Language. While the unit-testing algorithm is available in the past, it had quickly became outdated as new specialized techniques are developed to further enhance overall testing capabilities. This impedes one from building a more confident and battletested software product. Therefore, said algorithm has to be enhanced in order to cope with the latest update and shall be deployable across other programming languages. This paper first revisits the past Large Scale Unit Testing for Go Programming Language Packages research paper for algorithm extractions. Then, the paper presents the algorithm enhancements, caveats, crucial lessons, and simultaneously deploying it to the Rust and TinyGo programming language as a 2nd and 3rd languages support. Lastly, the paper concludes the enhanced large scale testing algorithm capable of future incremental improvement use not just for programming environment but a way of life.
description: {"references": ["CHEW KEAN HO, LIM LEE BOOI; 2019; \"Large Scale Unit Testing for Go Programming Packages\"; 1st Issue; 10.13140/RG.2.2.36308.76166; ResearchGate.net; accessed on October 18, 2022; Available at: http://dx.doi.org/10.13140/RG.2.2.36308.76166", "CHEW KEAN HO, LIM LEE BOOI; 2018; \"Descriptive Review for Software Testing Algorithms\"; 1st Issue; 10.13140/RG.2.2.11325.10724; Researchgate.net; accessed on October 18, 2022; Available at: http://dx.doi.org/10.13140/RG.2.2.11325.10724", "GO.DEV; 2022; \"Go Fuzzing\"; Google; accessed on October 18, 2022; Available at: https://go.dev/security/fuzz/", "GO.DEV; 2022; \"Effective Go\"; Google; accessed on October 18, 2022; Available at: https://go.dev/doc/effective_go", "GOOGLE; 2022; \"OSS-Fuzz\", Google via GitHub.io; Accessed on October 18, 2022; Available at: https://google.github.io/oss-fuzz/getting-started/n ew-project-guide/go-lang/#native-go-fuzzingsupport", "RUSS COX; 2021; \"Golang-Standards: This Is Not A Standard Go Project Layout\"; Github Inc.; Accessed on October 18, 2022; Available at: https://github.com/golang-standards/projectlayout/issues/117", "CHEW KEAN HO, 2022; \"GitHub Code Blob: ZORALab's Hestia \u2013 CPU_test.go\"; Experimental branch; ZORALab via GitHub Inc.; Accessed on October 18, 2022; Available at: https://github.com/ZORALab/Hestia/blob/experim ental/hestiaGO/hestiaNUMBER/hestiaBITS/ CPU_test.go", "CHEW KEAN HO, 2022; \"GitHub Code Blob: ZORALab's Hestia \u2013 testlibs_test.go\"; Experimental branch; ZORALab via GitHub Inc.; Accessed on October 18, 2022; Available at: https://github.com/ZORALab/Hestia/blob/experim ental/hestiaGO/hestiaNUMBER/hestiaBITS/ testlibs_test.go", "KISHORE KONJETI, AYKE; 2022; \"GitHub Issue: TinyGo.Org - panic: unimplemented: (reflect.Value).MapRange()\"; TinyGo.org via GitHub Inc.; Accessed on October 18, 2022; Available at: https://github.com/tinygo-org/tinygo/issues/3104", "CHEW KEAN HO, 2022; \"GitHub Code Blob: ZORALab's Hestia \u2013 S8_Length_test.go\"; Experimental branch; ZORALab via GitHub Inc.; Accessed on October 18, 2022; Available at: https://github.com/ZORALab/Hestia/blob/experim ental/hestiaGO/hestiaNUMBER/hestiaBITS/ S8_Length_test.go", "MICHAEL KNYSZEK; 2022; \"Go Runtime: 4 Years Later\"; The Go Blog; Google via Go.Dev; Accessed on October 18, 2022; Available at: https://go.dev/blog/go119runtime", "ROB PIKE; 2011; \"The Laws of Reflection\"; The Go Blog; Google via Go.Dev; Accessed on October 18, 2022; Available at: https://go.dev/blog/laws-ofreflection", "TINYGO.ORG; 2022; \"Important Build Options\"; Documentations &gt; References &gt; Using TinyGo; TinyGo.ORG; Accessed on October 18, 2022; Available at: https://tinygo.org/docs/reference/usage/importantoptions/", "STEVE KLABNIK, CAROL NICHOLS; 2022; \"Macros\"; The Rust Programming Language Documentations; Rust Team via rust-lang.org; Accessed on October 18, 2022; Available at: https://doc.rust-lang.org/book/ch19-06-macros.html", "RUST.ORG; 2022; \"Rust by Example - Formatting\"; The Rust Programming Language Documentations; Rust Team via rust-lang.org; Accessed on October 19, 2022; Available at: https://doc.rust-lang.org/rust-byexample/hello/print/fmt.html", "RUST.ORG; 2022; \"Rust by Example \u2013 Unit Testing\"; The Rust Programming Language Documentations; Rust Team via rust-lang.org; Accessed on October 19, 2022; Available at: https://doc.rust-lang.org/rust-byexample/testing/unit_testing.html", "CHEW KEAN HO, 2022; \"GitHub Code Blob: ZORALab's Hestia \u2013 execs.rs\"; Experimental branch; ZORALab via GitHub Inc.; Accessed on October 19, 2022; Available at: https://github.com/ZORALab/Hestia/blob/experimen tal/hestiaRUST/hestia_testing/execs.rs", "MOZILLA, 2022; \"GitHub: Mozilla's GRCOV\"; master branch; Mozilla via GitHub Inc.; Accessed on October 19, 2022; Available at: https://github.com/mozilla/grcov", "CHEW KEAN HO, 2022; \"GitHub Code Blob: ZORALab's Hestia \u2013 s8_length_test.rs\"; Experimental branch; ZORALab via GitHub Inc.; Accessed on October 19, 2022; Available at: https://github.com/ZORALab/Hestia/blob/experimen tal/hestiaRUST/hestia_number/hestia_bits/ s8_length_test.rs", "CHEW KEAN HO; 2022; \"GitHub Commit: f0c5602c3d3479373f96b368a786d3af1341a791 : hestiaGO \u2013 purged hestiaTESTING toJSON and toYAML rendering functions\"; ZORALab's Hestia Software; ZORALab via GitHub Inc.; Accessed on October 19, 2022; Available at: https://github.com/ZORALab/Hestia/commit/f0c56 02c3d3479373f96b368a786d3af1341a791", "TINYGO.ORG; 2022; \"Packages Supported by Go\"; Documentations &gt; References &gt; Go Language Features; TinyGo.ORG; Accessed on October 19, 2022; Available at: https://tinygo.org/docs/reference/usage/importan t-options/", "TINYGO.ORG; 2022; \"MISC Build Options\"; Documentations &gt; References &gt; Using TinyGo; TinyGo.ORG; Accessed on October 19, 2022; Available at: https://tinygo.org/docs/reference/usage/miscoptions/"]}