Testing type and Plan Apirada Thadadech Contents • Who is it Really for? • Testing Type – Test Cases – Unit Testing – Integration Testing – Systems and Acceptance Testing • Function verification test focus areas • System verification test focus areas Who is it Really for? • Who? • Test Plan : It represents a testing strategy base on the best knowledge available at the project start. Testing Strategy unit test integration test system test Acceptance test Unit Testing - ทดสอบหน่วยย่อยของโปรแกรมที่แยกกันโดย เด็ดขาดโดยอาจถือว่าหนึ่งหน้าจอคือหน่วยย่อยก็ได้ โดยทดสอบทั้ง แบบ Black Box หรื อ White Box • Unit Test Unit Testing •Module Testing @ Test ทีละ Module @ ไม่ยงุ่ กับ Module อื่นๆ •Test ทีละ Component @ Function @ Procedure • ไม่มี Response อื่นมาเกี่ยวข้อง Unit Testing module to be tested results test cases software engineer Unit Testing module to be tested interface local data structures boundary conditions independent paths error handling paths test cases Unit Testing white-box black-box methods methods Methods Strategies Unit Testing Strategies • One possible approach that could be used for unit testing is to integrate testing • There are 3 unit testing strategies – Top-down unit testing – Bottom-Up unit testing – Isolation unit testing Top-down unit testing A Testes B C Testes D Under Test Testes E Stub H I G F Stub J Stub Bottom-Up unit testing A Driver B C D Under Test E Tested H G F Tested I Tested Tested J Tested Tested Isolation unit testing A Driver B C D Under Test E Stub H I G F Stub J Stub Test Cases • Test case is defined as: – A set of inputs, execution preconditions and expected outcomes developed for particular objective • Are sometime referred to as – Positive == test-to-pass – Negative == test-to-fail Test case : is designed with 2 different objectives in mind – To verify that a software system conforms to its specifications – To detect errors in software by designing test case in negative Test case execution steps • Example Detailed Test Procedure Start the program Type 2346348….press OK Click on the withdraw button When the withdraw window opens, enter $200 ….press OK Expect to see confirm massage “you are withdraw $200? Expect to see a new account balance of $400.95 Exit the program using the file/ exit option on the menu Overview Test Procedure Overview Test Procedure Start the Program Select account 2346348 Withdraw $200 from the account Check the new balance is $400.95 Use Case Model for Hotel System Enter Reservation Record Reservation Check out Record Check in Hotel Clerk Record Check out Record Walk-in Check in Black-Box Test Case Model of Hotel System Guest name Black Reservation date Check in date Box Room Number Late check out time Check out date Room Rate Data store Reservation Confirmation Charge White-Box Test Case Model of Hotel System If (late_checkout_time<>”None”) If (late_checkout_time > expected_checkout_time and late_checkout_time <= latest_checkout_time) Expected_checkout_time = late_checkout_time If (checkout_ time > expected_checkout_time or checkin_date == today) No_of_nights = no_of_nights+1 Test Case design Techniques 1 • Black-Box test case designed Black-Box test case designed – Without any knowledge on internal or structure – Base on the same specification that use to develop the software – By who are independent from the development team Design Test Cases CODE TEST Test Case design Techniques 2 • White -Box test case designed Black-Box test case designed – With full knowledge of internal working and structure – After Software development is complete Code Design Test Cases Test Test Case Coverage • Functional Test case design and “Test First” applied to black-box Some unrealistic goals for black-box coverage include: – All possible values of inputs and outputs – All combinations of inputs and outputs – All sequences of internal state changes Test Case Coverage • Functional Test case design and applied to black-box “Test First” More realistic goals for black-box coverage include: – Ranges of equivalent values of inputs and outputs – Boundary values of inputs and outputs – Rules linking inputs and outputs – short sequences of internal state changes Test Case Coverage • Functional Test case design and “Test First” applied to White-box Some unrealistic goals for White-box coverage include: – All program statements – All possible logical paths Test Case Coverage • Functional Test case design and applied to White-box “Test First” More realistic goals for White-box coverage include: – Executable, atomic and reachable statement – Program braches – Decisions – Conditions – Independent logical paths Integration Testing • Sub-System Testing • Test Module ที่เกีย่ วข้ องกัน • ระวังการ Interface ระหว่ าง Module • Test การเชื่อมต่ อแต่ ละโมดูล Integration Testing • Top-down Testing • Bottom-up Testing • Isolation Testing • Stress Testing • Incremental Testing •Back to back Testing Stress Testing เป็ นการทดสอบความสามารถการประมวลผลของ ระบบซอฟต์แวร์ ภายใต้สถานะการณ์วิกฤติ ทดสอบ พฤติกรรมการ Fail ของระบบ เมื่อมีอะไรมากระทบ • Soft Fail • Hard Fail Stress Testing มั ก นิ ย มใช้ ท ดสอบกั บ ระบบประมวลผลแบบ กระจาย บนระบบเครื อข่ายคอมพิวเตอร์ เพราะข้อจากัด ของระบบเกี่ ย วพัน กับ ปริ มาณการส่ ง ข้อ มู ล ระหว่า ง คอมพิวเตอร์ ถ้าปริ มาณข้อมูลมากเกิ นไปอาจส่ งผลให้ เครื อข่ายทางานช้าลง หรื อล้มเหลว Incremental Testing • นิยมนามาใช้ทดสอบการดาเนินงานร่ วมกันระหว่างองค์ประกอบย่อย ในระบบ เป็ นการเพิ่ม Module ที่ Test แล้วมาไว้รวมกัน • เนื่ องจากการทดสอบแต่ละโมดูลไม่สามารถดาเนิ นการได้โดยลาพัง จึงต้องทางานร่ วมกับ • Driver module เป็ นโมดูลหุ่ นทาหน้าที่ควบคุม หรื อเรี ยกใช้โมดูลที่ ต้องการทดสอบ • Stub module ทาหน้าที่เป็ นโมดูลย่อยหรื อโมดูลที่ถูกเรี ยกใช้โดยโมดูล ที่ถูกทดสอบ Incremental Testing Driver Module to be tested Stub Stub Test case Results Back to back Testing ใช้ท ดสอบซอฟต์แ วร์ ที่ มี ห ลายรุ่ น (version) โดยซอฟต์แวร์ รุ่นใหม่ยงั คงมี ความสามารถครอบคลุม รุ่ น เก่ า ยุท ธวิ ธี น้ ี จะน าผลลัพ ธ์ ที่ ไ ด้จ ากการประมวล ซอฟต์ แ วร์ แ ต่ ล ะรุ่ นมาเปรี ยบเที ย บกั น เพื่ อ ค้น หา ข้อบกพร่ อง โดยใช้ขอ้ มูลชุดเดียวกันในการทดสอบ System Testing • Test ทั้งระบบ รวมกันทั้งหมดทุกส่ วนแล้ว Test ( รวม Sub-system ต่างๆเข้าด้วยกัน ) Acceptance Testing • Test จาก Data จริ งๆ ของลูกค้า • ตรงกับ System Requirement Definition หรื อไม่ ค่าตาแหน่ง ทางวิชาการ … ค่าล่วงเวลา เย็น การเงิน System เงินเดือน SubSystem … เสาร์ , นัก โสด อาทิตย์ ขัตฤกษ์ ภาษี ณ ที่จ่าย สมรส หย่ าร้ าง Module Unit Sample test plan template • Document Control – Distribution – Approvers/ Reviewers – Change History • Overview – Project Summary – Overall test goals & Objective • Test Environment – Hardware Configuration – Software Configuration • Toll and Workloads – Test Tools – Base Workloads • Administration – – – – – Test assumptions Entrance & Exit Criteria Problem reporting Maintenance strategy Deliverables • Schedule • Test Matrices and Scenarios Example framework scenario Title RDBR0051: Relational Database Software Sever Failure Objective: Explore the failure and automated recovery of database server software while a heavy transactional workload is running Test Scenario: Set up an automation policy to restart the database server software in the event of a failure. Start a workload that executes transactions while read and write to database. Expected Results: When database server shutdown. Associated transactions are backed out. Shared locks are registered. Function verification test focus area • Mainline function – Check the big thing that software supposed to do เช่น งานห้องสมุด สิ นค้าคงคลัง • Security Support – – – – Authentication Authorization Confidentiality Integrity • Software Interfaces – Private module to Module – Private Component to Component – Application Programming Interface – Human Interface • Messages • Limits condition testing • Recovery System verification test focus areas • • • • • Installation Regression Evolving Roles Migration Load/Stress – CPU utilization percentage – I/O path utilization percentage – I/O interrupts per second – Number of simulate active processes • Security • Hardware Interaction – Timing loops base on processor clock speed – Network bandwidth – Memory availability – Multi-tasking on uniprocessor & multiprocessor • Recovery Stress and Load Tools There are problems about available memory and disk space when the system run many programs in the same time, such as running word processing and copy file to fill up .. and so on. • Stress Tool is the Stress program • Load Tool is similar to stress tool allows you to individually set the but it run on Web servers to load amounts of memory. Disk space, them down by simulating a set files and other resources available number of connections. Such as it to the software running on the checks that 10,000 simultaneous machine. users and 1 million hits a day can be handled without showing response times.