|
Software QA/Testing Technical FAQs
Part:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
How to choose which defect to remove in 1000000 defects?
(because It will take too much resources in order to remove them all.)
Answe1:
Are you the programmer who has to fix them, the project manager who has
to supervise the programmers, the change control team that decides
which areas are too high risk to impact, the stakeholder-user whose
organization pays for the damage caused by the defects or the tester?
The tester does not choose which defects to fix.
The tester helps ensure that the people who do choose, make a
well-informed choice.
Testers should provide data to indicate the *severity* of bugs, but the
project manager or the development team do the prioritization.
When I say "indicate the severity", I don't just mean writing S3 on a
piece of paper. Test groups often do follow-up tests to assess how
serious a failure is and how broad the range of failure-triggering
conditions.
Priority depends on a wide range of factors, including code-change
risk, difficulty/time to complete the change, which stakeholders are
affected by the bug, the other commitments being handled by the person
most knowledgeable about fixing a certain bug, etc. Many of these
factors are not within the knowledge of most test groups.
Answe2:
As a tester we don't fix the defects but we surely can prioritize them
once detected. In our org we assign severity level to the defects
depending upon their influence on other parts of products. If a defect
doesnt allow you to go ahead and test test the product, it is critical
one so it has to be fixed ASAP. We have 5 levels as
1-critical
2-High
3-Medium
4-Low
5-Cosmetic
Dev can group all the critical ones and take them to fix before any
other defect.
Answer3:
Priority/Severity P1 P2 P3
S1
S2
S3
Generally the defects are classified in aboveshown
grid. Every organization / software has some target of
fixing the bugs.
Example -
P1S1 -> 90% of the bugs reported should be fixed.
P3S3 -> 5% of the bugs reported may be fixed. Rest are
taken in letter service packs or versions.
Thus the organization should decide its target and act
accordingly.
Basically bugfree software is not possible.
Answer4:
Ideally, the customer should assign priorities to their requirements. They tend to resist this. On a large, multi-year project I just completed, I would often (in the lack of customer guidelines) rely on my knowledge of the application and the potential downstream impacts in the modeled business process to prioritize defects.
If the customer doesn't then I fell the test organization should based on risk or other, similar considerations.
What is software quality?
The quality of the software varies widely from system to system. Some common quality attributes are stability, usability, reliability, portability, and maintainability.
What are the five dimensions of the Risks?
Schedule: Unrealistic schedules, exclusion of certain activities
when chalking out a schedule etc. could be deterrents to project
delivery on time. Unstable communication link can be considered as a
probable risk if testing is carried out from a remote location.
Client: Ambiguous requirements definition, clarifications on issues
not being readily available, frequent changes to the requirements
etc. could cause chaos during project execution.
Human Resources: Non-availability of sufficient resources with the
skill level expected in the project are not available; Attrition of
resources - Appropriate training schedules must be planned for
resources to balance the knowledge level to be at par with resources
quitting. Underestimating the training effort may have an impact in
the project delivery.
System Resources: Non-availability of /delay in procuring all
critical computer resources either hardware and software tools or
licenses for software will have an adverse impact.
Quality: Compound factors like lack of resources along with a tight
delivery schedule and frequent changes to requirements will have an
impact on the quality of the product tested.
What is good code?
A good code is code that works, is free of bugs and is readable and maintainable. Organizations usually have coding standards all developers should adhere to, but every programmer and software engineer has different ideas about what is best and what are too many or too few rules. We need to keep in mind that excessive use of rules can stifle both productivity and creativity. Peer reviews and code analysis tools can be used to check for problems and enforce standards.
How do you perform integration testing?
To perform integration testing, first, all unit testing has to be completed. Upon completion of unit testing, integration testing begins. Integration testing is black box testing. The purpose of integration testing is to ensure distinct components of the application still work in accordance to customer requirements. Test cases are developed with the express purpose of exercising the interfaces between the components. This activity is carried out by the test team.
Integration testing is considered complete, when actual results and expected results are either in line or differences are explainable, or acceptable, based on client input.
Part:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|