Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
Software Quality Assurance Plan
Software Testing By Marcin Starzomski :P. What is Testing ? Testing is a process used to help identify the correctness, completeness and quality of developed.
Agile development By Sam Chamberlain. First a bit of history..
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
Documentation Testing
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Copyright © 2014 ASTQB Presented by Rex Black, CTAL Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further.
Copyright © Panaya Oracle ® E-Business Suite Testing: How to Get Your Business Users On-Board Amir Farhi Director, Product Marketing.
Trusted IT Group. The challenge: 40 active, concurrent IT projects  Unsatisfactory Project Delivery.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Michael Burnside Blog: Website:
S/W Project Management
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
LESSON 8 Booklet Sections: 12 & 13 Systems Analysis.
Project Management : Techniques and Tools (60-499) Fall 2014 / Winter 2015.
Sri Lanka Institute of Information Technology Software Engineering Project – I Clone of Rally GROUP NO : WD-SEP-002 | PROJECT NO :25 PROJECT : CLONE OF.
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
 CS 5380 Software Engineering Chapter 8 Testing.
Mobile Aps: Agile Mentoring Review
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Event Management & ITIL V3
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Chapter 8 – Software Testing Part 2 1Chapter 8 Software testing.
Process is continuously improving Have Definition of Done (DoD) DoD achievable within each iteration Team respects DoD The bottom line Delivering working,
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
Step 5: Complete Your Project. Setting the scene Suppose you have been running a project to write a small piece of computer software for a business. The.
1 TenStep Project Management Process ™ PM00.9 PM00.9 Project Management Preparation for Success * Manage Quality *
Het einde van het beroep van tester - Wat Agile, DevOps en Scrum betekenen voor het testvak -
Michael Burnside Blog: Website:
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
Project management Topic 7 Controls. What is a control? Decision making activities – Planning – Monitor progress – Compare achievement with plan – Detect.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
Applied Software Project Management SOFTWARE TESTING Applied Software Project Management 1.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Introduction to the Change Process
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Agile Scrum Management
Dinesh Rawat , Software Test Manager
Software Testing.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Mobile Application Test Case Automation
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
CompareDocs cloud Makes it Immediately Clear What has Changed Between Document Versions, on any Windows 10-Compatible PC or Device WINDOWS APP BUILDER.
Applied Software Implementation & Testing
Introducing Automation in Traditional Software Testing Best Practices.
Advantages OF BDD Testing
Teaching slides Chapter 1.
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
What is Software Testing?
Presentation transcript:

Michael Burnside Blog: Software Quality Assurance, Quality Engineering, and Web and Mobile Test Automation Expert 17 May 2013 EFFECTIVE QUALITY ASSURANCE USING AGILE SOFTWARE DEVELOPMENT PROCESS – THE QUALITY- CENTRIC APPROACH TO DEVELOPING THE BEST SOFTWARE POSSIBLE

Effective Quality Assurance using Agile Software Development Process Table of Contents: 1.Prerequisites 2.Forward 3.Example of devices used every day that use and run software programs for successful operation 4.Software Usage Statistics 5.Necessary Stakeholders 6.Process Goals 7.Process Activities 8.Milestone Timelines 9.References

Effective Quality Assurance using Agile Software Development Process Prerequisites: The Reader has basic knowledge and familiarity of the Agile process and how it is used in regards to software development. The Reader has basic knowledge of Quality Assurance activities.

Effective Quality Assurance using Agile Software Development Process Forward: The use of software programs in society today is so ubiquitous, transparent, and executed on such a massive scale that most people in almost every non 3 rd -world society use devices that run software that requires for successful execution of that software and is now entirely crucial to the success of the desires and wishes of people using the software and to all societies, in general. So, now we have entire societies whose normal life activities and productivity are entirely dependent on working software for the next level of human activities (Assuming that food, water, and sleep are the basic human needs and activities).

Effective Quality Assurance using Agile Software Development Process Example of devices used every day that use and run software programs that human beings depend on for successful operation Examples of devices that can be generally regarded as a used device on an hourly/daily basis that run software programs: 1.Watches 2.Personal and Work Computer (laptop or desktop) 3.Mobile device such as a tablet computer, such as iPad, Android, Windows CE (tablet) or “smart” phone (iPhone, Android, Windows CE). 4.Microwave oven for cooking/reheating food. 5.Regular oven for cooking food. 6.Databases / data storage. This data is used for a variety of reasons. 7.Nuclear energy producing power plants and military-controlled devices of mass destruction. 8.Cable TV set top boxes 9.Digital HD, Non-CRT Televisions

Effective Quality Assurance using Agile Software Development Process Software Usage Information (and this is only includes mobile phone information, not the many other types of products that run on software that humans rely on) For simplicity, this presentation will use usage data from the mobile device market. Highlights (next 2 slides):

Effective Quality Assurance using Agile Software Development Process

Do I have your attention now? Do you see how important the quality of software also corresponds with the quality of life for those of us whom are fortunate enough to live in a country or society wealthy enough to allow for use of devices such that we are dependent on them for positive life- enhancing experience? Hello? McFly? Do you get it now? Yes? Good! Then we can move onto the next part of the presentation: your team that will build the best possible quality of software for your company and/or organization.

Effective Quality Assurance using Agile Software Development Process Necessary Stakeholders: At the very minimum, your team needs to include the following stakeholders WITH NO EXCEPTIONS. 1)Product Manager 2)Software Developer and/or team 3)Quality Assurance person and/or team 4)Scrum/Project Master to handle the Agile process aspects of the project That’s it! If one of these people does not exist in your team right now, THEN GO AND HIRE THEM! Nice to have: 1)Development and/or QA Manager involved in all updates and progress of the project 2)Project Manager to help and assist in controlling the timelines and milestones being met and help with task prioritization if involvement is in a large company where software may affect many released products whose tasks cannot be reasonably known from a smaller, more focused, Agile team.

Effective Quality Assurance using Agile Software Development Process Process Goals 1.To deliver to your customers the highest quality of software possible. 2.To make your customers love using your software and become dependent on it for good enhancement of daily life or job experience. 3.Become dependent on it for their own job/personal life success and happiness. 4.To maximize efficiency and purpose of each member in the Agile workgroup. 5.To eliminate any possible ambiguity in product requirements, acceptance criteria per test case, and product deliverable dates.

Effective Quality Assurance using Agile Software Development Process Process Goals (Continued) 1.If you fail, you fail as a team, not because of an individual or group of individuals on a particular team. For example, if a critical/show stopper bug appears in a production environment, the first question that you should NOT be asking is: how did the QA Team miss that one? Who on the QA team was responsible for this? The QA team is entirely dependent on the software being developed by the software development team and pushed into the QA environment. The QA team cannot manually possibly test every single test case. Automating tests can help and be of great assistance, but that is not the focus of this presentation and, it takes much time to build a set of automated test cases to test and have adequate test coverage to assist a manual QA tester in their job. The correct question should be: How did the bug get into production and let’s find the fail mode and correct it immediately and for the future; but how did we AS A TEAM miss this one and what can be improved IN OUR SOFTWARE DEVELOPMENT PROCESS so that this does not happen again? Very rarely, a bug enters the production environment because of the incompetence or failure of a QA person. More often than not, it is because not enough thought went into developing, testing, and understanding the impact of the change in an environment where it may not be testable (developer: local environment; QA person: QA testing environment; Release Engineer: Staging environment). The most common cause is inadequate and unprepared test environment or intense product schedule release pressure. If this is the case, then you have what is called a “Development-Centric” software development process. Your organization should move away from this type of process. What will be done now is to define a “Quality-Centric” software development process. If you follow it, the process goals will be easily achieved.

Effective Quality Assurance using Agile Software Development Process The Quality-Centric software development process. Milestones (Part 1): 1)Test cases corroboratively developed per story by the following stakeholders: Product Manager, QA, and Development team members. This includes: purpose of test case (what are we testing?), intricately and well-defined steps to execute the steps of the test case, and lastly (and most importantly) Acceptance Criteria (what result data or user experience will validate that the test passed?). 2) Once a complete list of test cases are created for each story in the iteration, an is sent from the QA person to the developer and Product Manager asking for approval of all identified test cases, steps, and acceptance criteria. At this point, the Product Manager and any software developers have a chance to review the test cases purpose, steps, and acceptance criteria. Feedback may be given to change any part of the 3 identified data set for the test case, but eventually, THE SET OF TEST CASES (WHICH IS ULTIMATELY A TEST PLAN) MUST BE agreed to via an from the Product Manager and Developers to the QA person. This action gives a SHARED RESPONSIBILITY if there is a problem during testing of the software or a critical bug reaching into the production environment.

Effective Quality Assurance using Agile Software Development Process The Quality-Centric software development process (Continued). Milestones (Part 2): 1)As the software developer starts to write the software to implement the features in the story, a QA person may or may not (but usually can) start to implement the execution of test cases. When the software is ready to be tested, the developer sends an to the QA person that indicates the software is checked in and the feature is ready to be tested. If not, in some cases mock testing implementation can be created (use of JMock or other interfaces, etc) by the QA person to mock test the software. 2)Development on each story feature needs to be completed by at least 30% of time before the end of the iteration. If not, most likely not enough time will be available to test the story feature (and also test regression) and it is recommended to move the story completion to next sprint, and back out or comment out the code to avoid product risk. The team must determine how any unfinished story (development or QA task) can potentially cause risk to a released product.

Effective Quality Assurance using Agile Software Development Process The Quality-Centric software development process (Continued). Milestones (Part 3): 1)The QA manual and automated tester implement the test cases. Sometimes there are companies that employ a separate/disconnected manual QA (subject matter expert – SME) and automated test implementation team per product and then a QA test automation team to write automated tests. This disconnect is a risk to the company’s test validations. It is incredibly important that if the manual and automated test case implementer are not the same person, that they need to be in complete sync to verify the test of the story is working. Most likely, the most competent subject matter expert on the QA side is the manual tester, not the automated tester (if on a separate team that provides basic automation work for the company). If so, the manual QA tester MUST VALIDATE the acceptance criteria of the feature whether it be of a manual or automated test implementation and be a constant future validator or passing tests. The manual QA tester is responsible for running the test cases and it may be easy for them to do that through a Continuous integration (CI) mechanism. But they are responsible for getting updated on the results of each test run and perform the appropriate actions if there is a test error. 2)Agile stories are NOT COMPLETE unless all tasks have been finished, and that includes any QA tasks (manual or automated). QA team should validate with development and Product Management that any test cases are indeed working and any regression errors are dealt with.

Effective Quality Assurance using Agile Software Development Process The Quality-Centric software development process (Continued). Milestones (Part 4): 1)The QA team and Product Management team are the stakeholders who determine when a product is of adequate quality and ready to be released to the end user. 2)The software development team NEVER decides when a product is ready to be released.

Effective Quality Assurance using Agile Software Development Process

References 1. marketing-analytics/mobile-marketing-statistics/

Effective Quality Assurance using Agile Software Development Process Thanks! I sincerely hope this presentation was useful to you and that your company or organization implement the information and process in this presentation to the fullest extent. If you have any feedback, please feel free to get in touch with me (via Twitter) I would love to hear very constructive comments on how to improve this presentation and make it more effective.