Testing μέσα από το Visual Studio!
31/5/2012
Testing για τον Tester/Manager
Testing για τον Tester/Manager31/5/2012
Γιώργος ΚαρκαλήςΣτάθης Μαρίνος SafeCape Software Solutions
SafeCape Software Solutions− Ασχολούμαστε με:
− Ανάπτυξη και διάθεση προϊόντων λογισμικού
− Ανάλυση, σχεδίαση και ανάπτυξη έργων πληροφορικής
− Λύσεις end to end− ALM-Sharepoint-Project Server− Είμαστε:
− Microsoft Silver Partner− Dedicated Visual Studio reseller για την
Ελλάδα
Τα εμπορικά προϊόντα μας− Insurance.Office
− Διαχείριση ασφαλιστικών πρακτορείων
− Accounting.Office− Λογιστική
− Reinsurance.Broker− Διαχείριση πρακτορείου αντασφαλειών
− Framework.Health− Πλατφόρμα ανάπτυξης εφαρμογών για το χώρο της υγείας
− Rules Toolset− Εύκολος ορισμός σύνθετων κανόνων και μετασχηματισμός τους σε
προσωποποιημένες αναφορές (Personal Genetics)
Dedicated Visual Studio reseller− Είμαστε developers του Visual Studio
(με μεγάλη πείρα)− Έχουμε προϊόντα «εκεί έξω» που τα
συντηρούμε− Μιλάμε την «ίδια γλώσσα» με εσάς− Μπορούμε να σας βοηθήσουμε με το
licensing
Agenda− Use case− Testing the UI (Coded UI Tests)− Testing web apps / services (Web
Tests)− Load Testing− How do I get it (Εκδόσεις &
Αδειοδότηση)
Use Case
Use case - Overview− Customer:
−Ασφαλιστική εταιρία (Ins. Co.)
− Αντικείμενο: −Σύστημα υπολογισμού
ασφαλίστρων:− Μηχανισμός τιμολόγησης ως Web
Service− Desktop application (proof of concept)− Web site (B2C)
Use case - Overview− ISV: SafeCape
− Μηχανισμός τιμολόγησης:Powered by Rules.Toolset, available:− On premise− SaaS – Azure
− Ανάπτυξη λογισμικού:− desktop application (WPF)− web application (ASP.NET)
Rules.Toolset design tools1. Model Editor
• Authoring tool - Desktop application• Quality Control Client
2. Report Template Editor• Report template authoring tool, ένα Word
2007/2010 Add On
Rules.Toolset Services1. Modeler (Execution engine) 2. Report Generator (produces Open XML
docs)3. Quality Control
Available as:• In-process (dlls) – (χωρίς Quality Control)• Web services
• On premise (IIS/SQL)• Windows Azure (Web Role) / SQL Azure
SafeCape Challenges (ISV)− Τι απόκριση έχει το σύστημα;
− Τι φόρτο μπορούν να σηκώσουν τα web services σε:− On premise – typical configuration− Azure : instance size / number of instances
− Tι κόστος θα έχει η υπηρεσία στο Azure ανάλογα με τις ανάγκες του εκάστοτε πελάτη; − Τι business model θα ακολουθήσουμε; − Ποια θα είναι η τιμολογιακή μας πολιτική;
Ins. Co. Challenges (Customer)− Η λύση της SafeCape μπορεί να ανταποκριθεί στο
φορτίο μας;
− Η custom εφαρμογή που θα μου παραδώσει η SafeCape ανταποκρίνεται στις απαιτήσεις μας (UAT);− Functional requirements− Non-functional requirements (απόκριση, φόρτος)
− Η διαδικτυακή υπηρεσία που θα παρέχω στο ευρύ κοινό, η οποία θα βασίζεται στο Rules.Toolset, θα μπορεί να ανταποκριθεί στην προσδοκώμενη ζήτηση;
Visual Studio Testing Tools
Visual Studio Testing Tools− Σε ποιους απευθύνεται;
− Αυτούς που παράγουν λογισμικό− Αυτούς που παραλαμβάνουν λογισμικό
− ΔΕΝ περιορίζεται σε:− .ΝΕΤ εφαρμογές− Τεχνολογίες Microsoft
− Μπορεί να τεστάρει:− Οποιαδήποτε web τεχνολογία: php, Java, python, node.js
…− UI: Windows OS (βλ. CUIT Platform Support)
Testing the UI
Testing the UI• Regression tests• Data driven tests
− Automate complex scenarios
• Functional requirements• Non-functional requirements
− Response times (Load test)
• Create UI Test using:− Coded UI Test Builder (recorder)− Existing Action Recording (TFS/MTM)
− Manual tests− Exploratory tests (VS11)
Code UI Test Platform Support
DemoCoded UI Tests
Testing Web Apps
Testing web apps− Web Performance Tests : HTTP based
− Record->Edit->Playback− Το βασικό δομικό στοιχείο για το Load
testing− Web Test Recorder (IE Add-on)
− Ανιχνεύει δυναμικές παραμέτρους:− Sessionid, cookies, hidden form fields-
viewstate− Aυτόματο correlation των παραμέτρων:
− Extract from response -> Bind to request− Web Test Playback (VS)
− Page preview / request-response content− Find/extract tools
Authoring web tests− Declarative editing
− Looping / conditional branching− Extraction rules− Validation rules
− Verification− Goal validation rules (e.g. response time <
2sec)− Data driven tests− Transactions
Advanced features− Δυνατότητα μετατροπής σε coded
web test− Extensibility – custom plugins
− Web test recorder plugins− Web test result viewer plugins
DemoWeb Tests
Load Testing
Load Testing Terminology− Response time
− Ποιος ο χρόνος απόκρισης μίας σελίδας/ συναλλαγής, κάτω από δεδομένο φορτίο?
− Throughput− Πόσες αιτήσεις/συναλλαγές ανά
δευτερόλεπτο μπορεί να χειριστεί ο server?
− Resource utilization− Πόσους πόρους (CPU, memory, network)
καταναλώσει το σύστημα σε δεδομένο φoρτίο?
Load/Stress Test Feature Set (1)− Ευέλικτη μοντελοποίηση του φόρτου
− Σενάρια χρήσης για διαφορετικές ομάδων χρηστών
− Load patterns− Goal-based− Step− Constant
− Διαφορετικοί browsers και τύποι δικτύων − Duration-based and iteration based
Load/Stress Test Feature Set (2)− Συλλογή δεδομένων και μετρικών
− Performance Counters− Integration με data collectors
− ASP.net profiler− Intellitrace™
− Full test results on errors− Ανάλυση αποτελεσμάτων
− Γραφήματα− Στατιστικά− Αναφορές απόδοσης στο Excel− Virtual user activity chart
Load Test Architecture
database serverMicrosoft Test Manager 2010
test controller
Load agent
Visual Studio
Web server
Load patterns− Goal based
− Αυξάνει ο φόρτος μέχρι να ξεπεραστεί κάποιο όριο
− Constant load− StepΜπορούμε να δούμε με το goal based πόσους χρήστες «σηκώνει» το σύστημα μας και στη συνέχεια με constant load να δούμε τι throughput και response time έχει
DemoLoad Testing
Ερωτήσεις
Usefull resources− Content Index for Unit Test
− http://blogs.msdn.com/b/mathew_aniyan/archive/2012/05/17/content-index-for-unit-test.aspx
− Content Index for Coded UI Test− http://
blogs.msdn.com/b/mathew_aniyan/archive/2010/02/11/content-index-for-coded-ui-test.aspx
− Content Index for Web Tests and Load Tests− http://blogs.msdn.com/b/edglas/archive/2007/12/17/content-inde
x-for-web-tests-and-load-tests.aspx− Using Visual Studio Load Tests in
Windows Azure Roles− http://msdn.microsoft.com/en-us/library/windowsazure/hh
674491.aspx