Large Scale Unit Testing Algorithm v2
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.
Files
03-IMAGE-Go-Fuzzing-The-Go-Programming-Language.png
Files
(4.7 MB)
Name | Size | Download all |
---|---|---|
md5:9c2f54a33f402eedf766325b8114b3a1
|
53.2 kB | Preview Download |
md5:0237174bd07126c5491a10753e5aca18
|
131.5 kB | Preview Download |
md5:e41e9a48a9dc789e1fd799fb82008ff9
|
292.8 kB | Preview Download |
md5:5a3035297665bddfda57ba150721ecfc
|
72.1 kB | Preview Download |
md5:3e84b5bc5f625c8e29fef8a13aaa64a2
|
79.0 kB | Preview Download |
md5:a80fd1207af9a7ea089f2b75ce1c8b65
|
61.3 kB | Preview Download |
md5:295f65b6330a565bcce3580f02cf7cfb
|
90.6 kB | Preview Download |
md5:63150ac183c65b3a27ddcc42592fe590
|
96.5 kB | Preview Download |
md5:6b06627189fec1c7df4bb9c7f6160221
|
230.6 kB | Preview Download |
md5:07d2f0c3bf8da1a436574b2259b0bd5c
|
157.0 kB | Preview Download |
md5:688b78a425854372c5b275a4cca072f8
|
65.2 kB | Preview Download |
md5:1623b1000e00d925a791e3de1671194c
|
57.8 kB | Preview Download |
md5:d22f14e2bb6f5bbe4d67b1a3bbb63e67
|
80.6 kB | Preview Download |
md5:bb582ab2519bce94a7721a517d2f0ff7
|
106.5 kB | Preview Download |
md5:ce61221bb781d989f093a31591e2ab3c
|
81.9 kB | Preview Download |
md5:d29eb4d7c397a41e96d95b1185990686
|
361.1 kB | Preview Download |
md5:b1920a1a3d37204f5daa16d01140a762
|
51.2 kB | Preview Download |
md5:e60183b2a7c0b9534661e3ae54329b15
|
152.9 kB | Preview Download |
md5:73d348d9a465672401bf706853009b9f
|
421.1 kB | Preview Download |
md5:3b5802c93095b54e445002e832d432c0
|
81.5 kB | Preview Download |
md5:c9e372e49068840640f8ec405647f322
|
265 Bytes | Download |
md5:96fdd2c60619ca590bb7e8a2d355b9c6
|
2.0 MB | Preview Download |
md5:e400de4daef56b2229b1e12936271536
|
265 Bytes | Download |
Additional details
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 – 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 – 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 – 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 > References > 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 – 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 – 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 – 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 – 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 > References > 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 > References > Using TinyGo; TinyGo.ORG; Accessed on October 19, 2022; Available at: https://tinygo.org/docs/reference/usage/miscoptions/