User:Sengu Msc/sandbox

Software Testing

>	Testing is the process of executing a program with the intention of finding errors. >	Software testing is an analysis that gives us data to estimate the quality of a system

Who does Testing?

>	It depends on the process and the associated stakeholders of the project(s). In the IT industry, large companies have a team with responsibilities to evaluate the developed software in the context of the given requirements. Moreover, developers also conduct testing which is called Unit Testing. In most cases, following professionals are involved in testing of a system within their respective capacities: >	 Software Tester >	 Software Developer >	 Project Lead/Manager >	 End User

Verification 	Validation Are you building it right? Are you building the right thing? Ensure that the software system meets all the functionality. Ensure that functionalities meet the intended behavior. Verification takes place first and includes the checking for documentation, code etc. Validation occurs after verification and mainly involves the checking of the overall product. Done by developers. Done by Testers. Have static activities as it includes the reviews, walkthroughs, and inspections to verify that software is correct or not. Have dynamic activities as it includes executing the software against the requirements. It is an objective process and no subjective decision should be needed to verify the Software. It is a subjective process and involves subjective decisions on how well the Software works.

Bug Life Cycle:

Bug status description: These are various stages of bug life cycle. The status caption may vary depending on the bug tracking system you are using. 1) New: When QA files new bug. 2) Deferred: If the bug is not related to current build or cannot be fixed in this release or bug is not important to fix immediately then the project manager can set the bug status as deferred. 3) Assigned: ‘Assigned to’ field is set by project lead or manager and assigns bug to developer. 4) Resolved/Fixed: When developer makes necessary code changes and verifies the changes then he/she can make bug status as ‘Fixed’ and the bug is passed to testing team. 5) Could not reproduce: If developer is not able to reproduce the bug by the steps given in bug report by QA then developer can mark the bug as ‘CNR’. QA needs action to check if bug is reproduced and can assign to developer with detailed reproducing steps. 6) Need more information: If developer is not clear about the bug reproduce steps provided by QA to reproduce the bug, then he/she can mark it as “Need more information’. In this case QA needs to add detailed reproducing steps and assign bug back to dev for fix. 7) Reopen: If QA is not satisfy with the fix and if bug is still reproducible even after fix then QA can mark it as ‘Reopen’ so that developer can take appropriate action. 8) Closed: If bug is verified by the QA team and if the fix is ok and problem is solved then QA can mark bug as ‘Closed’. 9) Rejected/Invalid: Some times developer or team lead can mark the bug as Rejected or invalid if the system is working according to specifications and bug is just due to some misinterpretation.

Mantis Lifecycle of a Bugzilla Bug Testing levels There are generally four recognized levels of tests: unit testing, integration testing, system testing, and acceptance testing. Tests are frequently grouped by where they are added in the software development process, or by the level of specificity of the test.

Unit Testing Integration Testing Component Testing System Testing Acceptance Testing

Testing Types

Installation Testing Browser Compatibility Testing Smoke and Sanity Testing Regression Testing Acceptance Testing Alpha Testing Beta Testing Functional vs. Non Functional Testing Destructive Testing Software Performance Testing Load testing Stress testing Usability Testing Accessibility Testing Security Testing Development Testing

Diff between QA, QC & TESTING

QA 	QC 	TESTING Activities which ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements. Activities which ensure the verification of developed software with respect to documented (or not in some cases) requirements. Activities which ensure the identification of bugs/error/defects in the Software. Focuses on processes and procedures rather than conducting actual testing on the system. Focuses on actual testing by executing Software with intend to identify bug/defect through implementation of procedures and process. Focuses on actual testing. Process oriented activities. Product oriented activities. Product oriented activities. Preventive activities 	It is a corrective process. It is a preventive process It is a subset of Software Test Life Cycle (STLC)	QC can be considered as the subset of Quality Assurance. Testing is the subset of Quality Control.

Diff between Testing & Debugging

>	Testing: It involves the identification of bug/error/defect in the software without correcting it. Normally professionals with a Quality Assurance background are involved in the identification of bugs. Testing is performed in the testing phase.

>	Debugging: It involves identifying, isolating and fixing the problems/bug. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is the part of White box or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.