Why Testing is important:
Success Contributions:
Use appropriate test techniques with appropriate level of expertise and test level and at specific point in SDLC
To work closely with BA/BSA so the testers do requirement reviews in Waterfall and User story refinement in Agile
To work closely with Developers to understand the functionality expected in their view and create effective test cases.
To work closely with to review the design understood and in progress from their point before the application is released in the QA Environment.
The above items will help the org to get the app tested before release and get the defects detected earlier in the SDLC which saves cost of fix if it’s found later the SDLC. Let say for Ex: if a fix on the requirement needs a BSA /BA to check and update may be 4 hrs effort, for developer to fix may take 0.25 days or 3-days as well.
Static and dynamic testing create diverse types of failures.
Quality Assurance vs Testing
Quality- find as many failures as possible then fix and product goes live with quality.
QA–Quality Assurance team which defines the process measures or the steps for the quality to be achieved.
QA- define.
QC–Quality Control team involving diff test activities- like TC prep, TC Execution – Defect logging/report to control defects and improve quality.
QC- Action.
Testers come in part of Quality control- who do the ground level action which is defined by QA.
Error – Defect – Failures
Errors – same as mistakes – Human action that produces an incorrect result.
Fault – known as defect or bug (informal name) – deviation between the expected and actual
Failure – generally when a test case fails while executing the test case- testers are responsible to identify failures.
Causes of Software defects:
- All – Time Pressure – limited timeline or sparse number of resources for the launch date of the application.
- All – Human – error prone in general and not machine.
- All – Inappropriate person- inexperienced project participants
- All – Miscommunications between the participants-> conveying the correct info and making sure the other person is understood!
- All – Code complexity – more complex the flow may go wrong, need to be more cautious on these flows
- All – Misunderstanding intra systems- internally when the modules are connected what is the requirements, ex: Module 1-> module2, module2->module3 inter system- other systems speaking to each other
- All – unfamiliar technologies- built and having releases every day!