Developer's QA Toolkit - 34th National IT Conference - Sri Lanka
-
Upload
chamil-jeewantha -
Category
Software
-
view
26 -
download
2
Transcript of Developer's QA Toolkit - 34th National IT Conference - Sri Lanka
![Page 1: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/1.jpg)
Developer’s QA ToolkitBY CHAMIL JEEWANTHASOFTWARE ARCHITECT 34 T H NATIONAL IT CONFERENCE – SRI LANKAHTTP://WWW.NITC.LK/2016/
![Page 2: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/2.jpg)
What is QA?“The maintenance of a desired level of quality in a service or product, especially by means of attention to every stage of the process of delivery or production.”
– Oxford Dictionary
![Page 3: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/3.jpg)
What is QA?“The maintenance of a desired level of quality in a service or product, especially by means of attention to every stage of the process of delivery or production.”
– Oxford Dictionary
Requirements | Development | Testing | UAT | …
![Page 4: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/4.jpg)
Developer’s QA Responsibility?THIS IS THE QUESTION IN YOUR MIND NOW…
![Page 5: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/5.jpg)
Proper Design Consistent Maintainable Simple Loosely coupled Highly Cohesive proper, Testable Units
![Page 6: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/6.jpg)
Clean Code Easily Understandable Simple and Focused No Duplicates Pleasant reading experience Smaller is better Expressive No Bugs can hide behind
![Page 7: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/7.jpg)
Other Quality Responsibilities Sense of,◦ Performance◦ Auditability◦ Diagnostibility◦ User Experience
![Page 8: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/8.jpg)
“SOLID Design & Clean Code is more important in “Agile” than anywhere else”BUT IT’S A CHALLENGE…
![Page 9: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/9.jpg)
Waterfall Agile Transformation
Business requirements may change drastically over the time.
Single lengthy flow converted to a small large number of cycles.
Cycle time is shorten from many Months to few weeks.
Discover
Design
Develop
Test
Launch
![Page 10: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/10.jpg)
The Challenge is,Focusing on Quality while delivering the changing customer
needs within the short cycles.
So,
Tools are Important!
![Page 11: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/11.jpg)
Tools in the Dev’s QA Toolkit
![Page 12: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/12.jpg)
Most Important Tools
Knowledge
Passion
![Page 13: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/13.jpg)
Knowledge & Practice Object Oriented / Functional / Flow Based / … Programing◦ Concepts / Guide Lines
SOLID◦ Single Responsibility◦ Open/Closed ◦ Liskov Substitution◦ Interface Segregation◦ Dependency Inversion
GRASP◦ General Responsibility Assignment Software Principles (or Patterns)
GoF Patterns◦ Gang of Four Patterns
![Page 14: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/14.jpg)
Automated Code Analysis
Static Analysis◦ Offline analysis without executing the program◦ Quick and Easy◦ Detects possible Flaws◦ Escalates violations of◦ Standards / Best Practices
Dynamic Analysis◦ Runtime analysis◦ Detects the flaws which is not possible to detect with static analysis◦ Time Consuming◦ Full coverage is not guaranteed
![Page 15: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/15.jpg)
Example: public class HelloWorld{ public static void main(String args[]){ System.out.println("Hello World"); } }
![Page 16: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/16.jpg)
Refactoring (IDE features) Improves non-functional attributes of Software
◦ Readability◦ Reusability◦Maintainability◦ …ity
![Page 17: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/17.jpg)
Example: Refactoring Change to better names◦ duration durationInSeconds
Design level refactoring
new Notification(“Failure”,”DB Failure”,new Date())
new Notification.Builder().typeOf(“Failure”).describedBy(“DB Failure”).atNow().build();
![Page 18: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/18.jpg)
Unit Test Unit A single indivisible Entity◦ A “Class” In OOP
Unit Test◦ Select the smallest piece of testable software in the application◦ Isolate it from the rest of the code◦ Determine whether it behaves exactly as you expect◦ Each unit is tested separately before integrating them into modules to test the interfaces between modules
![Page 19: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/19.jpg)
TDD – Test Driven Development1.Write a(nother) unit test that fails
2.Write the minimum production code until all the tests pass
3.Refactor your code
4.Repeat until all your work is done
Fail Pass
Refactor
![Page 20: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/20.jpg)
TDD Benefits Write non-testable codes are impossible
Test-first forces you to plan before you code
It’s faster than writing code without tests
It saves you from lengthy code
It guides you to build good, SOLID units
It increases your confidence (refactor without fear)
Acts as a real-time progress bar
![Page 21: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/21.jpg)
Other Tools Code Coverage
Code Reviews
Developer Level Integration Tests
Communicate with QA & BA
![Page 22: Developer's QA Toolkit - 34th National IT Conference - Sri Lanka](https://reader033.fdocuments.in/reader033/viewer/2022051520/58aa157b1a28ab8a488b6a09/html5/thumbnails/22.jpg)
“Digital Disruption” of “Quality Software Delivery” is
“Tools”.
Thank You!