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 Acceptance test
Unit Testing Unit Test - ทดสอบหน่วยย่อยของโปรแกรมที่แยกกันโดยเด็ดขาดโดยอาจถือว่าหนึ่งหน้าจอคือหน่วยย่อยก็ได้ โดยทดสอบทั้งแบบ Black Box หรือ White Box
Unit Testing Module Testing @ Test ทีละ Module Test ทีละ Component @ Function @ Procedure ไม่มี Response อื่นมาเกี่ยวข้อง
Unit Testing module to be tested results test cases software engineer
Unit Testing test cases module tested interface local data structures to be tested interface local data structures boundary conditions independent paths error handling paths test cases
Unit Testing Methods Strategies white-box methods black-box
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 Testes Under Test Stub A B C D E F G H I J
Bottom-Up unit testing A Driver B C D Under Test E G F Tested Tested Tested H I J Tested Tested Tested
Isolation unit testing Driver B C D Under Test E G F Stub Stub Stub H I J
Test case is defined as: 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 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 Check in Record Check out Record Reservation Check out Record Walk-in Check in Hotel Clerk
Black-Box Test Case Model of Hotel System Guest name Reservation date Check in date Room Number Late check out time Check out date Black Box Reservation Confirmation Charge Room Rate Data store
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 “Test First” applied to black-box 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 “Test First” applied to White-box More realistic goals for White-box coverage include: Executable, atomic and reachable statement Program braches Decisions Conditions Independent logical paths
Integration Testing ระวังการ Interface ระหว่าง Module Sub-System Testing Test Module ที่เกี่ยวข้องกัน ระวังการ Interface ระหว่าง Module Test การเชื่อมต่อแต่ละโมดูล
Integration Testing Isolation 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 Test case Results
Back to back Testing ใช้ทดสอบซอฟต์แวร์ที่มีหลายรุ่น(version) โดยซอฟต์แวร์รุ่นใหม่ยังคงมีความสามารถครอบคลุมรุ่นเก่า ยุทธวิธีนี้จะนำผลลัพธ์ที่ได้จากการประมวลซอฟต์แวร์แต่ละรุ่นมาเปรียบเทียบกัน เพื่อค้นหาข้อบกพร่อง โดยใช้ข้อมูลชุดเดียวกันในการทดสอบ
System Testing Test ทั้งระบบ รวมกันทั้งหมดทุกส่วนแล้ว Test ( รวม Sub-system ต่างๆเข้าด้วยกัน )
Acceptance Testing Test จาก Data จริงๆ ของลูกค้า ตรงกับ System Requirement Definition หรือไม่
… … การเงิน System Sub- ค่าตำแหน่ง เงินเดือน System ทางวิชาการ 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 uni-processor & multi- processor Recovery
copy file to fill up .. and so on. 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 allows you to individually set the amounts of memory. Disk space, files and other resources available to the software running on the machine. Load Tool is similar to stress tool but it run on Web servers to load them down by simulating a set number of connections. Such as it checks that 10,000 simultaneous users and 1 million hits a day can be handled without showing response times.