변성 시험
Metamorphic testing변성 테스트(MT)는 속성 기반 소프트웨어 테스트 기술로, 테스트 오라클 문제 및 테스트 사례 생성 문제를 해결하는 데 효과적인 접근 방식이 될 수 있습니다.테스트 오라클 문제는 선택된 테스트 사례의 예상 결과를 결정하거나 실제 산출물이 예상 결과와 일치하는지 확인하는 데 어려움이 있습니다.
변성관계(MR)는 소프트웨어의 의도된 기능에 필요한 속성으로 소프트웨어의 여러 실행을 수반해야 합니다.예를 들어, sin x를 유효 숫자 100까지 정확하게 구현하는 프로그램을 생각해 봅시다. 사인 함수에 대한 변성 관계는 "sin (sin - x) = sin x"입니다.따라서 요구되는 정확도에 맞는 선원시험 케이스1 x = 1.234에 대한 sin1 x의 기대치는 알 수 없지만 후속시험 케이스2 x = θ - 1.234를 구성할 수 있다.소스 테스트 케이스와 후속 테스트 케이스에서 테스트 대상 프로그램에 의해 생성된 실제 출력이 해당 MR과 일치하는지 확인할 수 있습니다.(오류 반올림 후) 불일치는 구현 장애로 인해[1]: 31 발생한 프로그램 장애를 나타냅니다[1]: 31 .
MR은 숫자 입력이나 평등 관계가 있는 프로그램에 국한되지 않는다.예를 들어, 예약 웹 사이트를 테스트할 때 호주 시드니에 있는 숙박 시설에 대한 웹 검색 결과 1,671개의 결과가 반환됩니다. 이 검색 결과가 정확하고 완전합니까?이것은 테스트 오라클 문제입니다.변형 관계에 따라 가격 범위 또는 별 등급을 필터링하고 검색을 다시 적용할 수 있습니다. 이전 결과의 하위 집합을 반환해야 합니다.이 예상을 어기면 마찬가지로 시스템 장애가 드러납니다.
변성 테스트는 T.Y.에 의해 발명되었다.첸은 1998년 기술 보고서에 기재되어 있습니다.그 이후 150명 이상의 국제 연구자와 실무자들이 실제 응용에 이 기술을 적용했다.예를 들어 웹 서비스,[3] 컴퓨터 그래픽스,[4] 임베디드 시스템,[5] 시뮬레이션 및 모델링,[6] 머신 러닝,[7] 의사결정 지원,[8] 생물 정보학,[9] 컴포넌트,[10] 수치 분석,[11] 코드 생성기, [13]컴파일러 등이 있습니다.MT 분야에 대한 첫 번째 주요 조사는 2016년에 [14]실시되었습니다.이어 2018년에 [15]또 다른 주요 설문조사가 실시되었는데, 이 설문조사는 도전과 기회를 강조하고 일반적인 오해를 명확히 한다.
MT는 처음에는 소프트웨어 검증 기술로 제안되었지만, 이후 검증, 검증 및 기타 유형의 소프트웨어 품질 [16]평가를 포괄하는 패러다임으로 개발되었습니다.MT는 독립적으로 적용할 수 있으며 증명 및 [17]디버깅과 같은 다른 정적 및 동적 소프트웨어 분석 기술과 결합할 수도 있습니다.
2018년 8월, 구글은 임페리얼 칼리지 런던의 스타트업 GraphicsFuz를 인수하여 안드로이드 [18][19]스마트폰용 그래픽 디바이스 드라이버에 변성 테스트를 적용하였습니다.
레퍼런스
- ^ a b 610.12-1990 - IEEE Standard Glossary of Software Engineering Terminology, IEEE, 1990, doi:10.1109/IEEESTD.1990.101064, ISBN 9781559370677
- ^ 를 클릭합니다T.Y. Chen; S.C. Cheung; S.M. Yiu (1998), "Metamorphic testing: A new approach for generating next test cases", Technical Report HKUST-CS98-01 (PDF), Department of Computer Science, The Hong Kong University of Science and Technology, Hong Kong, arXiv:2002.12543.
- ^ 카스트로 카브레라와 나Medina-Bulo, "WS-BPE 구성에 대한 변성 테스트에 대한 접근법", IEEE, 국제 e-비즈니스 컨퍼런스 진행(2011년)
- ^ R. Guderlei와 J. Mayer, "랜덤 및 변성 테스트에 의한 이미징 소프트웨어의 자동 테스트 지향", 국제 소프트웨어 엔지니어링 및 지식 엔지니어링 저널 17(6): 757-781(2007).
- ^ T.H.Tse, S.S. Yau, W.K. Chan, H. Lu, T.Y.입니다.Chen, 제28회 국제 컴퓨터 소프트웨어 및 응용 프로그램 회의(COMPSAC '04) 제1권, IEEE Computer Society, 페이지 458-465(2004)에서 "상황에 맞는 미들웨어 기반 소프트웨어 응용 프로그램 테스트"
- ^ S. Segura, R.M. Hierons, D.Benavides, 그리고 A.Ruiz-Cortes, "제3회 소프트웨어 테스트, 검증, 검증에 관한 국제회의(ICST '10, IEEE Computer Society, 페이지 35-44 (2010)"에서 "특징 모델의 분석에 관한 자동 테스트 데이터 생성: 변성 테스트 접근법"
- ^ J. 딩, X.-H.후, 그리고 뷔.Gudivada, "대규모 이미지 데이터의 검증과 검증을 위한 머신러닝 기반의 프레임워크", IEEE Transactions on Big Data(2017)"doi: 10.1109/TBDATA.2017.2680460.
- ^ F.C. Kuo, Z.Q. Zhou, J. Ma 및 G. Zhang, "의사결정 지원 시스템의 메타모픽 테스트:도입 사례", IET 소프트웨어 4 (4) : 294-301 (2010)
- ^ L.L. Pullum과 O. Ozmen, 2012 ASE/IEEE 국제 바이오메디컬 컴퓨팅 컨퍼런스(BioMedic Computing '12, IEEE Computer Society, 페이지 62-67 (2012)에서 "역학적 모델의 변성 테스트의 초기 결과".
- ^ S. Beyda, "Self-metamorphic-testing components" (셀프 메타모픽 테스트 컴포넌트), 제30회 국제 컴퓨터 소프트웨어 및 애플리케이션 컨퍼런스(COMPSAC '06)의 속보, 제1권, IEE 컴퓨터 학회, 페이지 265-272 (2006).
- ^ C. Aruna와 R.S.R. Prasad, "다정밀 산술 소프트웨어 애플리케이션의 테스트 정확도를 향상시키기 위한 메타모픽 관계"는 2014년 컴퓨팅, 통신 및 정보학의 진보에 관한 국제회의(ICACCI '14', IEEE)에서 다루었다.
- ^ Boussaa, Mohamed; Barais, Olivier; Sunyé, Gerson; Baudry, Benoit (January 2020). "Leveraging metamorphic testing to automatically detect inconsistencies in code generator families". Software Testing, Verification and Reliability. 30 (1). doi:10.1002/stvr.1721. ISSN 0960-0833. S2CID 210843361.
- ^ C. Lidbury, A. Lascu, N. Chong, A.F.Donaldson, 프로그래밍 언어 설계 및 구현에 관한 제36회 ACM SIGPLAN 회의 (PLDI '15), ACM, 페이지 65-76 (2015)에서 "다코어 컴파일러 퍼징"
- ^ S. 세구라, G. 프레이저, A.B. 산체스, A.B.Ruiz-Cortes, "변성 테스트에 관한 조사", IEEE Transactions on Software Engineering 42 (9) : 805-824 (2016)
- ^ T.Y. Chen, FC궈, H.류, P.L.푼, D.토이, T.H. Tse, Z.Q. Zhou, "변형 테스트: 과제와 기회의 리뷰", ACM Computing Survey 51 (1) : 4:1 ~ 4:27 (2018)
- ^ Z.Q. Zhou, S. Xiang, T.Y.Chen, "소프트웨어 품질평가를 위한 메타모픽 테스트: 검색엔진 연구", 소프트웨어 엔지니어링에 관한 IEEE 트랜잭션 42(3): 264-28s4(2016).
- ^ T.Y. Chen, T.H. Tse, Z.Q. Zhou, "Semi-proving: 프로그램의 증명, 테스트 및 디버깅을 위한 통합 방법", 소프트웨어 엔지니어링에 관한 IEEE 트랜잭션 37 (1) : 109-125 (2011)
- ^ "GraphicsFuzz is acquired by Google". GraphicsFuzz. 6 August 2018. Retrieved 23 December 2020.
- ^ "Google buys GraphicsFuzz, bringing fuzzy logic and metamorphic testing to Android graphics drivers". Packt. 8 August 2018. Retrieved 27 December 2020.
외부 링크
- "Metamorphic testing: Introduction and applications". ACM SIGSOFT Webinar.
- Segura, Sergio; Zhou, Zhi Quan (2018). "ICSE 2018 technical briefing on metamorphic testing". doi:10.5281/zenodo.1256230.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - Zhou, Zhi Quan (2019). "Automated testing of real-life self-driving systems and beyond: Keynote speech by Z.Q. (George) Zhou at IEEE AITest, San Francisco East Bay, 2019". doi:10.5281/zenodo.2636979.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말)