Int J Performability Eng ›› 2021, Vol. 17 ›› Issue (3): 276-288.doi: 10.23940/ijpe.21.03.p3.276288
• Original article • Previous Articles Next Articles
Run Luo1,*(), Song Huang1,*(), Hao Chen1, and MingYu Chen1
Contact:
Luo Run,Huang Song
E-mail:297866942@qq.com;hs0317@163.com.
Supported by:
Run Luo, Song Huang, Hao Chen, and MingYu Chen. Code Confusion in White Box Crowdsourced Software Testing [J]. Int J Performability Eng, 2021, 17(3): 276-288.
Add to citation manager EndNote|Reference Manager|ProCite|BibTeX|RefWorks
Table 1.
Package generation algorithm"
Algorithm: package generation algorithm |
---|
function: DeclInPkgs Input: declaration list of N declarations Output: package list of M packages |
1. func DeclInPkgs (str [ ]string, m int) [ ][ ][ ]string{ 2. var result [ ][ ][ ]string 3. n:=len(str) 4. split(n,m) // Decomposing a positive integer n into m positive integers (recursion) 5. newstr:=wholeArrange(str) // The str is fully arranged to generate a newstr [] string 6. for _,i:=range newstr{ 7. According to the M numbers, extract the declaration from the declaration list I and package it into a package 8. Put the generated new package into the package list } 9. return result 10. } |
Figure 4
shows that a change of packet permutation results in the interval of packet number m ∈ 1 , n and the second Stirling number composed of positive integer n and m with the increase of declaration number n. This method of using permutation and combination to construct the declaration as a package can be used to sort violently regardless of the clues in the program. The main cost of the algorithm is to make a full permutation of the declaration sort, so the problem can be solved in polynomial time. "
Table 2.
Directed Acyclic Graph Create Algorithm"
Algorithm: Directed Acyclic Graph Create |
---|
Function: DAGCreate Input: Directed acyclic graph olddag with n-1 vertices Output: The set newdag of directed acyclic graphs with n vertices |
1. func DAGCreate (OldDAG *OLGraph) []*OLGraph{ 2. result []*OLGraph 3. Create Trie(n-1) // Create a trident tree 4. NewEdges=SearchTree() //Each edge relation of the tree is stored in the frontier series table 5. for _,i:=range NewEdges{ 6. g=CopyOLGraph(OldDAG) //Copy the Graph 7. NewDAG=AddNewEdges(g)// Add all new edges 8. if nocyc(NewDAG){ // Judge whether there is a cycle 9. result=append(result,NewDAG)} 10. } 11. return result 12. } |
Table 5.
Influence of different confusion methods on testing"
Confusion scheme | Impact on reduction results | Impact on testing |
---|---|---|
Layout confusion | Affect the result of reduction | The test cases are easy to reuse and hardly increase the labor cost. |
Expansion | Increase restore overhead | Test workers need to design more test cases to increase labor costs. |
MisLeading | Increase restore overhea & Affect the result of reduction | Test workers need to design more test cases to increase labor costs. |
Data confusion | Affect the result of reduction | Test cases are difficult to reuse. |
[1]. | 1. Wang, P., Varvello, M. and Kuzmanovic, A. Kaleidoscope: A crowdsourcing testing tool for web quality of experience. In 2019 IEEE 39th International Conference on Distributed Computing Systems ( ICDCS), pp. 1971-1982, 2019. |
[2]. | 2. Almeida, M., Bilal, M., Finamore, A., Leontiadis, I., Grunenberger, Y., Varvello, M. and Blackburn, J. Chimp: Crowdsourcing human inputs for mobile phones. In Proceedings of the 2018 World Wide Web Conference, pp.45-54, 2018. |
[3]. | 3. Lin, J., Amini, S., Hong, J.I., Sadeh, N., Lindqvist, J. and Zhang, J. Expectation and purpose: understanding users' mental models of mobile app privacy through crowdsourcing. In Proceedings of the 2012 ACM conference on ubiquitous computing, pp.501-510, 2012. |
[4]. | 4. Gardlo, B., Egger, S., Seufert, M. and Schatz, R. Crowdsourcing 2.0: Enhancing execution speed and reliability of web-based QoE testing. In 2014 IEEE International Conference on Communications (ICC), pp.1070-1075, 2014. |
[5]. | 5. Leicht, N., Knop, N., Blohm, I., Müller-Bloch, C. and Leimeister, J.M. When Is Crowdsourcing Advantageous? The Case of Crowdsourced Software Testing. InProceedings of 2016 European Conference On Information Systems (ECIS), 2016. |
[6]. | 6. B. B. Zhang, X., Feng, Y., Liu, D., Chen, Z. and Xu, Research progress of crowdsourced software testing. Journal of Software, 29(1), pp.69-88, 2018. |
[7]. | 7. challenges challenges, Gao, R., Wang, Y., Feng, Y., Chen, Z. and Wong, W.E. Successes, and rethinking-an industrial investigation on crowdsourced mobile application testing. Empirical Software Engineering, 24(2), pp.537-561, 2019. |
[8]. | 8. S. S. Gadiraju, U., Demartini, G., Kawase, R. and Dietze, Crowd anatomy beyond the good and bad: Behavioral traces for crowd worker modeling and pre-selection. Computer Supported Cooperative Work (CSCW), 28(5), pp.815-841, 2019. |
[9]. | 9. Van Pelt, C.R., Cox, R., Sorokin, A. and Juster, M., CrowdFlower Inc. Predicting future performance of multiple workers on crowdsourcing tasks and selecting repeated crowdsourcing workers. U.S. Patent 8,626, 545, 2014. |
[10]. | 10. Khan, M.E. and Khan, F., 2012. A comparative study of white box, black box and grey box testing techniques. International Journal of Advanced Computer Science & Applications, 3(6), pp.1-12, 2012. |
[11]. | 11. Dolstra, E., Vliegendhart, R. and Pouwelse, J. Crowdsourcing gui tests. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation, pp.332-341, 2013. |
[12]. | 12. Alyahya, S. and Alrugebh, D. Process improvements for crowdsourced software testing. International Journal of Advanced Computer Science and Applications, 2017. |
[13]. | 13. Zogaj, S., Bretschneider, U. and Leimeister, J.M. Managing crowdsourced software testing: a case study based insight on the challenges of a crowdsourcing intermediary. Journal of Business Economics, 84(3), pp.375-405, 2014. |
[14]. | 14. Collberg, C.S. and Thomborson, C. Watermarking, tamper-proofing, and obfuscation-tools for software protection. IEEE Transactions on software engineering, 28(8), pp.735-746, 2002. |
[15]. | 15. watermarking watermarking, Nagra, J. and Collberg, C. Surreptitious software: obfuscation, and tamperproofing for software protection: obfuscation, watermarking, and tamperproofing for software protection. Reversing Secrets of Reverse Engineering, September, 2010. |
[16]. | 16. W. W. Donovan, A. A. A. and Kernighan, B. The go programming language. China Machine Press, 2016. |
[17]. | 17. Ali, K. and Lhoták, O. Application-Only Call Graph Construction. InProceedings of 26th European Conference on Object-Oriented Programming, pp.688-712, 2012. |
[18]. | 18. Cai, H. and Santelices, R. Abstracting program dependencies using the method dependence graph. In 2015 IEEE International Conference on Software Quality, Reliability and Security, pp.49-58, 2015. |
[19]. | 19. K. K. Lulu, W., Bixin, L. and Xianglong, Type slicing: An accurate object oriented slicing based on sub-statement level dependence graph. Information and Software Technology, 127, p.106369, 2020. |
[20]. | 20. I. I. Isazadeh, A., Izadkhah, H. and Elgedawy, Source code modularization: theory and techniques. Springer, 2017. |
[21]. | 21. Robinson, R.W. Counting unlabeled acyclic digraphs. In Combinatorial mathematics V, pp.28-43, 1977. |
[22]. | 22. Collberg, C., Nagra, J. and Wang, F.Y. September. Surreptitious software: Models from biology and history. In International Conference on Mathematical Methods, Models, and Architectures for Computer Network Security, pp.1-21, 2007,. |
[23]. | 23. Barak, B. Hopes, fears, and software obfuscation. Communications of the ACM, 59(3), pp.88-96, 2016. |
[24]. | 24. challenges challenges, Gao, J., Bai, X. and Tsai, W.T. Cloud testing-issues, needs and practice. Software Engineering: An International Journal, 1(1), pp.9-23, 2011. |
No related articles found! |
|