Testing Tut

Embed Size (px)

Citation preview

  • 8/6/2019 Testing Tut

    1/62

    What is 'Software Quality Assurance'? Software QA involves the entire software development PROCESS - monitoring andimproving the process, making sure that any agreed-upon standards and procedures arefollowed, and ensuring that problems are found and dealt with. It is oriented to'prevention'.

    What is 'Software Testing'? Testing involves operation of a system or application under controlled conditions andevaluating the results (eg, 'if the user is in interface A of the application while usinghardware B, and does C, then D should happen'). The controlled conditions shouldinclude both normal and abnormal conditions. Testing should intentionally attempt tomake things go wrong to determine if things happen when they shouldn't or things don'thappen when they should. It is oriented to 'detection'.Organizations vary considerably in how they assign responsibility for QA and testing.Sometimes they're the combined responsibility of one group or individual. Also commonare project teams that include a mix of testers and developers who work closely together,with overall QA processes monitored by project managers. It will depend on what bestfits an organization's size and business structure.

    What are some recent major computer system failures caused by software bugs?In August of 2003 a U.S. court ruled that a lawsuit against a large online brokeragecompany could proceed; the lawsuit reportedly involved claims that the company was notfixing system problems that sometimes resulted in failed stock trades, based on theexperiences of 4 plaintiffs during an 8-month period. A previous lower court's ruling that"...six miscues out of more than 400 trades does not indicate negligence." wasinvalidated.In April of 2003 it was announced that the largest student loan company in the U.S. madea software error in calculating the monthly payments on 800,000 loans. Although

    borrowers were to be notified of an increase in their required payments, the company willstill reportedly lose $8 million in interest. The error was uncovered when borrowers

    began reporting inconsistencies in their bills. News reports in February of 2003 revealed that the U.S. Treasury Department mailed50,000 Social Security checks without any beneficiary names. A spokesperson indicatedthat the missing names were due to an error in a software change. Replacement checkswere subsequently mailed out with the problem corrected, and recipients were then ableto cash their Social Security checks.In March of 2002 it was reported that software bugs in Britain's national tax systemresulted in more than 100,000 erroneous tax overcharges. The problem was partlyattibuted to the difficulty of testing the integration of multiple systems.A newspaper columnist reported in July 2001 that a serious flaw was found in off-the-shelf software that had long been used in systems for tracking certain U.S. nuclear

    materials. The same software had been recently donated to another country to be used intracking their own nuclear materials, and it was not until scientists in that countrydiscovered the problem, and shared the information, that U.S. officials became aware of the problems.According to newspaper stories in mid-2001, a major systems development contractor was fired and sued over problems with a large retirement plan management system.According to the reports, the client claimed that system deliveries were late, the softwarehad excessive defects, and it caused other systems to crash.In January of 2001 newspapers reported that a major European railroad was hit by theaftereffects of the Y2K bug. The company found that many of their newer trains wouldTESTINGFAQ 1

  • 8/6/2019 Testing Tut

    2/62

    not run due to their inability to recognize the date '31/12/2000'; the trains were started byaltering the control system's date settings.

    News reports in September of 2000 told of a software vendor settling a lawsuit with alarge mortgage lender; the vendor had reportedly delivered an online mortgage

    processing system that did not meet specifications, was delivered late, and didn't work.In early 2000, major problems were reported with a new computer system in a largesuburban U.S. public school district with 100,000+ students; problems included 10,000erroneous report cards and students left stranded by failed class registration systems; thedistrict's CIO was fired. The school district decided to reinstate it's original 25-year oldsystem for at least a year until the bugs were worked out of the new system by thesoftware vendors.In October of 1999 the $125 million NASA Mars Climate Orbiter spacecraft was

    believed to be lost in space due to a simple data conversion error. It was determined thatspacecraft software used certain data in English units that should have been in metricunits. Among other tasks, the orbiter was to serve as a communications relay for the MarsPolar Lander mission, which failed for unknown reasons in December 1999. Severalinvestigating panels were convened to determine the process failures that allowed theerror to go undetected.Bugs in software supporting a large commercial high-speed data network affected 70,000

    business customers over a period of 8 days in August of 1999. Among those affected wasthe electronic trading system of the largest U.S. futures exchange, which was shut downfor most of a week as a result of the outages.In April of 1999 a software bug caused the failure of a $1.2 billion U.S. military satellitelaunch, the costliest unmanned accident in the history of Cape Canaveral launches. Thefailure was the latest in a string of launch failures, triggering a complete military andindustry review of U.S. space launch programs, including software integration and testing

    processes. Congressional oversight hearings were requested.A small town in Illinois in the U.S. received an unusually large monthly electric bill of $7million in March of 1999. This was about 700 times larger than its normal bill. It turnedout to be due to bugs in new software that had been purchased by the local power

    company to deal with Y2K software issues.In early 1999 a major computer game company recalled all copies of a popular new

    product due to software problems. The company made a public apology for releasing a product before it was ready.The computer system of a major online U.S. stock trading service failed during tradinghours several times over a period of days in February of 1999 according to nationwidenews reports. The problem was reportedly due to bugs in a software upgrade intended tospeed online trade confirmations.In April of 1998 a major U.S. data communications network failed for 24 hours, cripplinga large part of some U.S. credit card transaction authorization systems as well as other large U.S. bank, retail, and government data systems. The cause was eventually traced to

    a software bug.January 1998 news reports told of software problems at a major U.S. telecommunicationscompany that resulted in no charges for long distance calls for a month for 400,000customers. The problem went undetected until customers called up with questions abouttheir bills.In November of 1997 the stock of a major health industry company dropped 60% due toreports of failures in computer billing systems, problems with a large databaseconversion, and inadequate software testing. It was reported that more than $100,000,000in receivables had to be written off and that multi-million dollar fines were levied on thecompany by government agencies.TESTINGFAQ 2

  • 8/6/2019 Testing Tut

    3/62

    A retail store chain filed suit in August of 1997 against a transaction processing systemvendor (not a credit card company) due to the software's inability to handle credit cardswith year 2000 expiration dates.In August of 1997 one of the leading consumer credit reporting companies reportedlyshut down their new public web site after less than two days of operation due to software

    problems. The new site allowed web site visitors instant access, for a small fee, to their personal credit reports. However, a number of initial users ended up viewing each others'reports instead of their own, resulting in irate customers and nationwide publicity. The

    problem was attributed to "...unexpectedly high demand from consumers and faultysoftware that routed the files to the wrong computers."In November of 1996, newspapers reported that software bugs caused the 411 telephoneinformation system of one of the U.S. RBOC's to fail for most of a day. Most of the 2000operators had to search through phone books instead of using their 13,000,000-listingdatabase. The bugs were introduced by new software modifications and the problemsoftware had been installed on both the production and backup systems. A spokesman for the software vendor reportedly stated that 'It had nothing to do with the integrity of thesoftware. It was human error.'On June 4 1996 the first flight of the European Space Agency's new Ariane 5 rocketfailed shortly after launching, resulting in an estimated uninsured loss of a half billion

    dollars. It was reportedly due to the lack of exception handling of a floating-point error ina conversion from a 64-bit integer to a 16-bit signed integer.Software bugs caused the bank accounts of 823 customers of a major U.S. bank to becredited with $924,844,208.32 each in May of 1996, according to newspaper reports. TheAmerican Bankers Association claimed it was the largest such error in banking history. A

    bank spokesman said the programming errors were corrected and all funds wererecovered.Software bugs in a Soviet early-warning monitoring system nearly brought on nuclear war in 1983, according to news reports in early 1999. The software was supposed to filter out false missile detections caused by Soviet satellites picking up sunlight reflections off cloud-tops, but failed to do so. Disaster was averted when a Soviet commander, based on

    a what he said was a '...funny feeling in my gut', decided the apparent missile attack was afalse alarm. The filtering software code was rewritten.

    Why is it often hard for management to get serious about quality assurance? Solving problems is a high-visibility process; preventing problems is low-visibility. Thisis illustrated by an old parable:In ancient China there was a family of healers, one of whom was known throughout theland and employed as a physician to a great lord. The physician was asked which of hisfamily was the most skillful healer. He replied,"I tend to the sick and dying with drastic and dramatic treatments, and on occasionsomeone is cured and my name gets out among the lords."

    "My elder brother cures sickness when it just begins to take root, and his skills are knownamong the local peasants and neighbors.""My eldest brother is able to sense the spirit of sickness and eradicate it before it takesform. His name is unknown outside our home."

    Why does software have bugs?Miscommunication or no communication - as to specifics of what an application shouldor shouldn't do (the application's requirements).Software complexity - the complexity of current software applications can be difficult tocomprehend for anyone without experience in modern-day software development.TESTINGFAQ 3

  • 8/6/2019 Testing Tut

    4/62

    Windows-type interfaces, client-server and distributed applications, datacommunications, enormous relational databases, and sheer size of applications have allcontributed to the exponential growth in software/system complexity. And the use of object-oriented techniques can complicate instead of simplify a project unless it is well-engineered.Programming errors - programmers, like anyone else, can make mistakes.Changing requirements - the customer may not understand the effects of changes, or mayunderstand and request them anyway - redesign, rescheduling of engineers, effects onother projects, work already completed that may have to be redone or thrown out,hardware requirements that may be affected, etc. If there are many minor changes or anymajor changes, known and unknown dependencies among parts of the project are likelyto interact and cause problems, and the complexity of keeping track of changes mayresult in errors. Enthusiasm of engineering staff may be affected. In some fast-changing

    business environments, continuously modified requirements may be a fact of life. In thiscase, management must understand the resulting risks, and QA and test engineers mustadapt and plan for continuous extensive testing to keep the inevitable bugs from runningout of control .Time pressures - scheduling of software projects is difficult at best, often requiring a lotof guesswork. When deadlines loom and the crunch comes, mistakes will be made.

    Egos - people prefer to say things like:'no problem''piece of cake''I can whip that out in a few hours''it should be easy to update that old code'

    instead of:'that adds a lot of complexity and we could end up

    making a lot of mistakes''we have no idea if we can do that; we'll wing it''I can't estimate how long it will take, until I

    take a close look at it''we can't figure out what that old spaghetti code

    did in the first place'

    If there are too many unrealistic 'no problem's', theresult is bugs.

    Poorly documented code - it's tough to maintain and modify code that is badly written or

    poorly documented; the result is bugs. In many organizations management provides noincentive for programmers to document their code or write clear, understandable code. Infact, it's usually the opposite: they get points mostly for quickly turning out code, and

    there's job security if nobody else can understand it ('if it was hard to write, it should behard to read').Software development tools - visual tools, class libraries, compilers, scripting tools, etc.often introduce their own bugs or are poorly documented, resulting in added bugs.

    How can new Software QA processes be introduced in an existing organization?A lot depends on the size of the organization and the risks involved. For largeorganizations with high-risk (in terms of lives or property) projects, serious management

    buy-in is required and a formalized QA process is necessary.

    TESTINGFAQ 4

  • 8/6/2019 Testing Tut

    5/62

    Where the risk is lower, management and organizational buy-in and QA implementationmay be a slower, step-at-a-time process. QA processes should be balanced with

    productivity so as to keep bureaucracy from getting out of hand.For small groups or projects, a more ad-hoc process may be appropriate, depending onthe type of customers and projects. A lot will depend on team leads or managers,feedback to developers, and ensuring adequate communications among customers,managers, developers, and testers.In all cases the most value for effort will be in requirements management processes, witha goal of clear, complete, testable requirement specifications or expectations.

    What is verification? Validation? Verification typically involves reviews and meetings to evaluate documents, plans, code,requirements, and specifications. This can be done with checklists, issues lists,walkthroughs, and inspection meetings. Validation typically involves actual testing andtakes place after verifications are completed. The term 'IV & V' refers to IndependentVerification and Validation.

    What is a 'walkthrough'?

    A 'walkthrough' is an informal meeting for evaluation or informational purposes. Little or no preparation is usually required.

    What's an 'inspection'? An inspection is more formalized than a 'walkthrough', typically with 3-8 peopleincluding a moderator, reader, and a recorder to take notes. The subject of the inspectionis typically a document such as a requirements spec or a test plan, and the purpose is tofind problems and see what's missing, not to fix anything. Attendees should prepare for this type of meeting by reading thru the document; most problems will be found duringthis preparation. The result of the inspection meeting should be a written report.Thorough preparation for inspections is difficult, painstaking work, but is one of the most

    cost effective methods of ensuring quality. Employees who are most skilled atinspections are like the 'eldest brother' in the parable in 'Why is it often hard for management to get serious about quality assurance?'. Their skill may have low visibility

    but they are extremely valuable to any software development organization, since bug prevention is far more cost-effective than bug detection.

    What kinds of testing should be considered?Black box testing - not based on any knowledge of internal design or code. Tests are

    based on requirements and functionality.White box testing - based on knowledge of the internal logic of an application's code.Tests are based on coverage of code statements, branches, paths, conditions.

    Unit testing - the most 'micro' scale of testing; to test particular functions or codemodules. Typically done by the programmer and not by testers, as it requires detailedknowledge of the internal program design and code. Not always easily done unless theapplication has a well-designed architecture with tight code; may require developing testdriver modules or test harnesses.Incremental integration testing - continuous testing of an application as newfunctionality is added; requires that various aspects of an application's functionality beindependent enough to work separately before all parts of the program are completed, or that test drivers be developed as needed; done by programmers or by testers.

    TESTINGFAQ 5

  • 8/6/2019 Testing Tut

    6/62

    Integration testing - testing of combined parts of an application to determine if theyfunction together correctly. The 'parts' can be code modules, individual applications,client and server applications on a network, etc. This type of testing is especially relevantto client/server and distributed systems.Functional testing - black box type testing geared to functional requirements of anapplication; this type of testing should be done by testers. This doesn't mean that the

    programmers shouldn't check that their code works before releasing it (which of courseapplies to any stage of testing.)System testing - black-box type testing that is based on overall requirementsspecifications; covers all combined parts of a system.End-to-end testing - similar to system testing; the 'macro' end of the test scale; involvestesting of a complete application environment in a situation that mimics real-world use,such as interacting with a database, using network communications, or interacting withother hardware, applications, or systems if appropriate.Sanity testing - typically an initial testing effort to determine if a new software version is

    performing well enough to accept it for a major testing effort. For example, if the newsoftware is crashing systems every 5 minutes, bogging down systems to a crawl, or destroying databases, the software may not be in a 'sane' enough condition to warrantfurther testing in its current state.

    Regression testing - re-testing after fixes or modifications of the software or itsenvironment. It can be difficult to determine how much re-testing is needed, especiallynear the end of the development cycle. Automated testing tools can be especially usefulfor this type of testing.Acceptance testing - final testing based on specifications of the end-user or customer, or

    based on use by end-users/customers over some limited period of time.Load testing - testing an application under heavy loads, such as testing of a web siteunder a range of loads to determine at what point the system's response time degrades or fails.Stress testing - term often used interchangeably with 'load' and 'performance' testing.Also used to describe such tests as system functional testing while under unusually heavy

    loads, heavy repetition of certain actions or inputs, input of large numerical values, largecomplex queries to a database system, etc.Performance testing - term often used interchangeably with 'stress' and 'load' testing.Ideally 'performance' testing (and any other 'type' of testing) is defined in requirementsdocumentation or QA or Test Plans.Usability testing - testing for 'user-friendliness'. Clearly this is subjective, and willdepend on the targeted end-user or customer. User interviews, surveys, video recordingof user sessions, and other techniques can be used. Programmers and testers are usuallynot appropriate as usability testers.Install/uninstall testing - testing of full, partial, or upgrade install/uninstall processes.Recovery testing - testing how well a system recovers from crashes, hardware failures,

    or other catastrophic problems.Security testing - testing how well the system protects against unauthorized internal or external access, willful damage, etc; may require sophisticated testing techniques.Compatibility testing - testing how well software performs in a particular hardware/software/operating system/network/etc. environment.Exploratory testing - often taken to mean a creative, informal software test that is not

    based on formal test plans or test cases; testers may be learning the software as they testit.Ad-hoc testing - similar to exploratory testing, but often taken to mean that the testershave significant understanding of the software before testing it.TESTINGFAQ 6

  • 8/6/2019 Testing Tut

    7/62

    User acceptance testing - determining if software is satisfactory to an end-user or customer.Comparison testing - comparing software weaknesses and strengths to competing

    products.Alpha testing - testing of an application when development is nearing completion; minor design changes may still be made as a result of such testing. Typically done by end-usersor others, not by programmers or testers.Beta testing - testing when development and testing are essentially completed and final

    bugs and problems need to be found before final release. Typically done by end-users or others, not by programmers or testers.Mutation testing - a method for determining if a set of test data or test cases is useful, bydeliberately introducing various code changes ('bugs') and retesting with the original testdata/cases to determine if the 'bugs' are detected. Proper implementation requires largecomputational resources.

    What are 5 common problems in the software development process?Poor requirements - if requirements are unclear, incomplete, too general, or not testable,there will be problems.Unrealistic schedule - if too much work is crammed in too little time, problems are

    inevitable.Inadequate testing - no one will know whether or not the program is any good until thecustomer complains or systems crash.Futurities - requests to pile on new features after development is underway; extremelycommon.Miscommunication - if developers don't know what's needed or customer's haveerroneous expectations, problems are guaranteed.

    What are 5 common solutions to software development problems?Solid requirements - clear, complete, detailed, cohesive, attainable, testablerequirements that are agreed to by all players. Use prototypes to help nail down

    requirements.Realistic schedules - allow adequate time for planning, design, testing, bug fixing, re-testing, changes, and documentation; personnel should be able to complete the projectwithout burning out.Adequate testing - start testing early on, re-test after fixes or changes, plan for adequatetime for testing and bug-fixing.Stick to initial requirements as much as possible - be prepared to defend againstchanges and additions once development has begun, and be prepared to explainconsequences. If changes are necessary, they should be adequately reflected in relatedschedule changes. If possible, use rapid prototyping during the design phase so thatcustomers can see what to expect. This will provide them a higher comfort level with

    their requirements decisions and minimize changes later on.Communication - require walkthroughs and inspections when appropriate; makeextensive use of group communication tools - e-mail, groupware, networked bug-trackingtools and change management tools, intranet capabilities, etc.; insure that documentationis available and up-to-date - preferably electronic, not paper; promote teamwork andcooperation; use prototypes early on so that customers' expectations are clarified.

    What is software 'quality'? Quality software is reasonably bug-free, delivered on time and within budget, meetsrequirements and/or expectations, and is maintainable. However, quality is obviously aTESTINGFAQ 7

  • 8/6/2019 Testing Tut

    8/62

    subjective term. It will depend on who the 'customer' is and their overall influence in thescheme of things. A wide-angle view of the 'customers' of a software development

    project might include end-users, customer acceptance testers, customer contract officers,customer management, the development organization'smanagement/accountants/testers/salespeople, future software maintenance engineers,stockholders, magazine columnists, etc. Each type of 'customer' will have their own slanton 'quality' - the accounting department might define quality in terms of profits while anend-user might define quality as user-friendly and bug-free.

    What is 'good code'?'Good code' is code that works, is bug free, and is readable and maintainable. Someorganizations have coding 'standards' that all developers are supposed to adhere to, buteveryone has different ideas about what's best, or what is too many or too few rules.There are also various theories and metrics, such as McCabe Complexity metrics. Itshould be kept in mind that excessive use of standards and rules can stifle productivityand creativity. 'Peer reviews', 'buddy checks' code analysis tools, etc. can be used tocheck for problems and enforce standards.For C and C++ coding, here are some typical ideas to consider in setting rules/standards;these may or may not apply to a particular situation:

    Minimize or eliminate use of global variables.Use descriptive function and method names - use both upper and lower case, avoidabbreviations, use as many characters as necessary to be adequately descriptive (use of more than 20 characters is not out of line); be consistent in naming conventions.Use descriptive variable names - use both upper and lower case, avoid abbreviations, useas many characters as necessary to be adequately descriptive (use of more than 20characters is not out of line); be consistent in naming conventions.Function and method sizes should be minimized; less than 100 lines of code is good, lessthan 50 lines is preferable.Function descriptions should be clearly spelled out in comments preceding a function'scode.

    Organize code for readability.Use whitespace generously - vertically and horizontallyEach line of code should contain 70 characters max.One code statement per line.Coding style should be consistent throught a program (eg, use of brackets, indentations,naming conventions, etc.)In adding comments, err on the side of too many rather than too few comments; acommon rule of thumb is that there should be at least as many lines of comments(including header blocks) as lines of code.

    No matter how small, an application should include documentation of the overall program function and flow (even a few paragraphs is better than nothing); or if possible a

    separate flow chart and detailed program documentation.Make extensive use of error handling procedures and status and error logging.For C++, to minimize complexity and increase maintainability, avoid too many levels of inheritance in class hierarchies (relative to the size and complexity of the application).Minimize use of multiple inheritance, and minimize use of operator overloading (notethat the Java programming language eliminates multiple inheritance and operator overloading.)For C++, keep class methods small, less than 50 lines of code per method is preferable.For C++, make liberal use of exception handlers

    TESTINGFAQ 8

  • 8/6/2019 Testing Tut

    9/62

    What is 'good design'? 'Design' could refer to many things, but often refers to 'functional design' or 'internaldesign'. Good internal design is indicated by software code whose overall structure isclear, understandable, easily modifiable, and maintainable; is robust with sufficient error handling and status logging capability; and works correctly when implemented. Goodfunctional design is indicated by an application whose functionality can be traced back tocustomer and end-user requirements. (See further discussion of functional and internaldesign in 'What's the big deal about requirements?' in FAQ #2.) For

    programs that have a user interface, it's often a good idea to assume that the end user willhave little computer knowledge and may not read a user manual or even the on-line help;some common rules-of-thumb include:The program should act in a way that least surprises the user It should always be evident to the user what can be done next and how to exitThe program shouldn't let the users do something stupid without warning them.

    What is SEI? CMM? ISO? IEEE? ANSI? Will it help?SEI = 'Software Engineering Institute' at Carnegie-Mellon University; initiated by theU.S. Defense Department to help improve software development processes.CMM = 'Capability Maturity Model developed by the SEI. It's a model of 5 levels of

    organizational 'maturity' that determine effectiveness in delivering quality software. It isgeared to large organizations such as large U.S. Defense Department contractors.However, many of the QA processes involved are appropriate to any organization, and if reasonably applied can be helpful. Organizations can receive CMM ratings byundergoing assessments by qualified auditors.

    Level 1 - characterized by chaos, periodic panics, and heroic efforts required byindividuals to successfully complete projects. Few if any processes in place; successesmay not be repeatable.

    Level 2 - software project tracking, requirements management, realistic planning,and configuration management processes are in place; successful practices can be

    repeated.

    Level 3 - standard software development and maintenance processes are integratedthroughout an organization; a Software Engineering Process Group is in place to overseesoftware processes, and training programs are used to ensure understanding andcompliance.

    Level 4 - metrics are used to track productivity, processes, and products. Project performance is predictable, and quality is consistently high.

    Level 5 - the focus is on continuous process improvement. The impact of new

    processes and technologies can be predicted and effectively implemented when required.

    Perspective on CMM ratings: During 1997-2001, 1018 organizations were assessed.Of those, 27% were rated at Level 1, 39% at 2, 23% at 3, 6% at 4, and 5% at 5. (For ratings during the period 1992-96, 62% were at Level 1, 23% at 2, 13% at 3, 2% at 4, and0.4% at 5.) The median size of organizations was 100 software engineering/maintenance

    personnel; 32% of organizations were U.S. federal contractors or agencies. For thoserated at Level 1, the most problematical key process area was in Software QualityAssurance.TESTINGFAQ 9

  • 8/6/2019 Testing Tut

    10/62

    ISO = 'International Organisation for Standardization' - The ISO 9001:2000standard (which replaces the previous standard of 1994) concerns quality systemsthat are assessed by outside auditors, and it applies to many kinds of productionand manufacturing organizations, not just software. It covers documentation,design, development, production, testing, installation, servicing, and other

    processes. The full set of standards consists of: (a) Q9001-2000 - QualityManagement Systems: Requirements; (b) Q9000-2000 - Quality ManagementSystems: Fundamentals and Vocabulary; (c) Q9004-2000 - Quality ManagementSystems: Guidelines for Performance Improvements. To be ISO 9001 certified, athird-party auditor assesses an organization, and certification is typically good for about 3 years, after which a complete reassessment is required. Note that ISOcertification does not necessarily indicate quality products - it indicates only thatdocumented processes are followed. Also see for the latestinformation. In the U.S. the standards can be purchased via the ASQ web site at

    IEEE = 'Institute of Electrical and Electronics Engineers' - among other things, creates standards such as 'IEEE Standard for Software TestDocumentation' (IEEE/ANSI Standard 829), 'IEEE Standard of Software UnitTesting (IEEE/ANSI Standard 1008), 'IEEE Standard for Software QualityAssurance Plans' (IEEE/ANSI Standard 730), and others.

    ANSI = 'American National Standards Institute' , the primary industrialstandards body in the U.S.; publishes some software-related standards inconjunction with the IEEE and ASQ (American Society for Quality).

    Other software development process assessment methods besides CMM and ISO9000 include SPICE, Trillium, TickIT. and Bootstrap.

    See the 'Other Resources' section for further informationavailable on the web.

    Return to top of this page's FAQ list

    What is the 'software life cycle'?The life cycle begins when an application is first conceived and ends when it is no longer in use. It includes aspects such as initial concept, requirements analysis, functionaldesign, internal design, documentation planning, test planning, coding, document

    preparation, integration, testing, maintenance, updates, retesting, phase-out, and other aspects.

    Will automated testing tools make testing easier? Possibly. For small projects, the time needed to learn and implement them may

    not be worth it. For larger projects, or on-going long-term projects they can bevaluable.

    A common type of automated tool is the 'record/playback' type. For example, atester could click through all combinations of menu choices, dialog box choices,

    buttons, etc. in an application GUI and have them 'recorded' and the results logged by a tool. The 'recording' is typically in the form of text based on a scriptinglanguage that is interpretable by the testing tool. If new buttons are added, or

    TESTINGFAQ 10

  • 8/6/2019 Testing Tut

    11/62

    some underlying code in the application is changed, etc. the application can then be retested by just 'playing back' the 'recorded' actions, and comparing the loggingresults to check effects of the changes. The problem with such tools is that if thereare continual changes to the system being tested, the 'recordings' may have to bechanged so much that it becomes very time-consuming to continuously update thescripts. Additionally, interpretation of results (screens, data, logs, etc.) can be adifficult task. Note that there are record/playback tools for text-based interfacesalso, and for all types of platforms.

    Other automated tools can include:Code analyzers - monitor code complexity, adherence to standards, etc.

    Coverage analyzers - these tools check which parts of the code have beenexercised by a test, and may oriented to code statement coverage, conditioncoverage, path coverage, etc.

    Memory analyzers - such as bounds-checkers and leak detectors.

    Load/performance test tools - for testing client/server and web applicationsunder various load levels.

    Web test tools - to check that links are valid, HTML code usage is correct, client-side and server-side programs work, a web site's interactions are secure. Other tools - for test case management, documentation management, bugreporting, and configuration management.

    Explain the software development lifecycle.There are seven stages of the software development lifecycle

    1. Initiate the project The users identify their Business requirements .Business Analyst Collect the requirements form customerEngagement Team Financial DetailsBRS (Business Requirement Specification)

    2. Define the project The software development team translates the businessrequirements into system specifications and put together into SystemSpecification Document.Analysis Feasibility StudyResource EstimationEffect Estimation /TimeTechnologySRS (Software Requirement Specification)

    3. Design the system The System Architecture Team designs the system andwrite Functional Design Document. During design phase general solutions rehypothesized and data and process structures are organized.Chief Architect - Product divide into different modules based onclassification and functionality settings.High Level Design / Low Level DesignTDD (Technical Design Document)

    4. Build the system The System Specifications and design documents aregiven to the development team code the modules by following theRequirements and Design document.

    TESTINGFAQ 11

  • 8/6/2019 Testing Tut

    12/62

    5. Test the system - The test team develops the test plan following therequirements. The software is build and installed on the test platform afterdevelopers have completed development and Unit Testing. The testers test thesoftware by following the test plan.

    6. Deploy the system After the user-acceptance testing and certification of the software, it is installed on the production platform. Demos and training aregiven to the users.

    7. Support the system - After the software is in production, the maintenancephase of the life begins. During this phase the development team works withthe development document staff to modify and enhance the application andthe test team works with the test documentation staff to verify and validatethe changes and enhancement to the application software.

    What is software quality'?OR Define software quality for me, as you understand it?Quality software is reasonably bug-free, delivered on time and within budget, meetsrequirements and/or expectations, and is maintainable. However, quality is obviouslya subjective term. It will depend on who the 'customer' is and their overall influencein the scheme of things. Each type of 'customer' will have their own slant on 'quality'- the accounting department might define quality in terms of profits while an end-

    user might define quality as user-friendly and bug-free.

    What's the role of documentation in QA?Critical. (Note that documentation can be electronic, not necessarily paper.) QApractices should be documented such that they are repeatable. Specifications,designs, business rules, inspection reports, configurations, code changes, test plans,test cases, bug reports, user manuals, etc. should all be documented. There shouldideally be a system for easily finding and obtaining documents and determining whatdocumentation will have a particular piece of information. Change management fordocumentation should be used if possible .At what stage of the SDLC does testing begin in your opinion?QA process starts from the second phase of the Software Development Life Cycle i.e.Define the System. Actual Product testing will be done on Test the systemphase(Phase-5). During this phase test team will verify the actual results againstexpected results.

    Explain the pre testing phase, acceptance testing and testing phase.Pre testing Phase:

    1. Review the requirements document for the testability: Tester will use therequirement document to write the test cases.

    2. Establishing the hard freeze date: Hard freeze date is a date after whichsystem test team will not accept any more software and documentationchanges from development team, unless they are fixes of severity 1 MRs.The date is scheduled so that product test team will have time for finalregression.

    3. Writing master test plan: It is written by the lead tester or test coordinator.Master test plan includes entire testing plan, testing resources and testingstrategy.

    4. Setting up MR Tool: The MR tool must be set as soon as you know of thedifferent modules in the product, the developers and testers on the product,the hardware platform, and operating system testing will be done.This information will be available upon the completion of the first draft of thearchitecture document. Both testers and developers are trained how to usethe system.

    5. Setting up the test environment: The test environment is set on separatemachines, database and network. This task is performed by the technical

    TESTINGFAQ 12

  • 8/6/2019 Testing Tut

    13/62

    support team. First time it takes some time, Afterwards the sameenvironment can be used by the later releases.

    6. Writing the test plan and test cases: Template and the tool is decided towrite the test plan, test cases and test procedures. Expected results areorganized in the test plan according to the feature categories specified in therequirement document. For each feature positive and negative test cases arewritten. Writing test plan requires the complete understanding of the productand its interfaces with other systems. After test plan is completed, awalkthrough is conducted with the developers and design team members to

    baseline the test plan document.7. Setting up the test automation tool: Planning of test strategy on how to

    automate the testing. Which test cases will be executed for regressiontesting. Not all the test cases will be executed during regression testing.

    8. Identify acceptance test cases: Select subsets that are expected on the firstday of system test. These tests must pass to accept the product in thesystem test.

    Acceptance testing phase:1. When the product enters system test, check it has completed integration test

    and must meet the integration test exit criteria.2. Check integration exit criteria and product test entrance criteria in the master

    test plan or test strategy documents.3. Check the integration testing sign off criteria sheet.4. Coordinate release with product development.5. How the code will be migrated from development environment to the test

    environment.6. Installation and acceptance testing.

    Product testing phase:1. Running the test: Execution of test cases and verify if actual functionality of

    application matches the expected results.2. Initial manual testing is recommended to isolate unexpected system behavior.

    Once application is stable automated regression test could be generated.3. Issue MRs upon detection of the bugs.

    What is the value of a testing group? How do you justify your work andbudget?All software products contain defects/bugs, despite the best efforts of theirdevelopment teams. It is important for an outside party (one who is not developer)to test the product from a viewpoint that is more objective and representative of theproduct user.

    Testing group test the software from the requirements point of view or what isrequired by the user. Testers job is to examine a program and see if it does not dowhat it is supposed to do and also see what it does what it is not supposed to do.

    What is master test plan? What it contains? Who is responsible for writingit?OR What is a test plan? Who is responsible for writing it? What it contains.OR What's a 'test plan'? What did you include in a test plan?A software project test plan is a document that describes the objectives, scope,approach, and focus of a software testing effort. The process of preparing a test planis a useful way to think through the efforts needed to validate the acceptability of asoftware product. The completed document will help people outside the test groupunderstand the 'why' and 'how' of product validation. It should be thorough enoughto be useful but not so thorough that no one outside the test group will read it. TheTESTINGFAQ 13

  • 8/6/2019 Testing Tut

    14/62

    following are some of the items that might be included in a test plan, depending onthe particular project:

    Title Identification of software including version/release numbers Revision history of document including authors, dates, approvals Table of Contents Purpose of document, intended audience Objective of testing effort Software product overview Relevant related document list, such as requirements, design documents,

    other test plans, etc. Relevant standards or legal requirements Trace ability requirements Relevant naming conventions and identifier conventions Overall software project organization and personnel/contact-

    info/responsibilities Test organization and personnel/contact-info/responsibilities Assumptions and dependencies Project risk analysis Testing priorities and focus Scope and limitations of testing

    Test outline - a decomposition of the test approach by test type, feature,functionality, process, system, module, etc. as applicable Outline of data input equivalence classes, boundary value analysis, error

    classes Test environment - hardware, operating systems, other required software,

    data configurations, interfaces to other systems Test environment validity analysis - differences between the test and

    production systems and their impact on test validity. Test environment setup and configuration issues Software migration processes Software CM processes Test data setup requirements Database setup requirements Outline of system-logging/error-logging/other capabilities, and tools such as

    screen capture software, that will be used to help describe and report bugs Discussion of any specialized software or hardware tools that will be used by

    testers to help track the cause or source of bugs Test automation - justification and overview Test tools to be used, including versions, patches, etc. Test script/test code maintenance processes and version control Problem tracking and resolution - tools and processes Project test metrics to be used Reporting requirements and testing deliverables Software entrance and exit criteria Initial sanity testing period and criteria Test suspension and restart criteria Personnel allocation Personnel pre-training needs Test site/location Outside test organizations to be utilized and their purpose, responsibilties,

    deliverables, contact persons, and coordination issues Relevant proprietary, classified, security, and licensing issues. Open issues Appendix - glossary, acronyms, etc.

    The team-lead or a Sr. QA Analyst is responsible to write this document.

    TESTINGFAQ 14

  • 8/6/2019 Testing Tut

    15/62

    Why is test plan a controlled document?Because it controls the entire testing process. Testers have to follow this test planduring the entire testing process.

    What information you need to formulate test plan?Need the Business requirement document to prepare the test plan.

    What is MR?MR is a Modification Request also known as Defect Report, a request to modify theprogram so that program does what it is supposed to do.

    Why you write MR?MR is written for reporting problems/errors or suggestions in the software.

    What information does MR contain?OR Describe me to the basic elements you put in a defect report?OR What is the procedure for bug reporting?The bug needs to be communicated and assigned to developers that can fix it. Afterthe problem is resolved, fixes should be re-tested, and determinations maderegarding requirements for regression testing to check that fixes didn't createproblems elsewhere. If a problem-tracking system is in place, it should encapsulatethese processes. A variety of commercial problem-tracking/management softwaretools are available.The following are items to consider in the tracking process:

    Complete information such that developers can understand the bug, get anidea of its severity, and reproduce it if necessary.

    Bug identifier (number, ID, etc.) Current bug status (e.g., 'Released for Retest', 'New', etc.) The application name or identifier and version The function, module, feature, object, screen, etc. where the bug occurred Environment specifics, system, platform, relevant hardware specifics Test case name/number/identifier One-line bug description Full bug description Description of steps needed to reproduce the bug if not covered by a test case

    or if the developer doesn't have easy access to the test case/test script/testtool

    Names and/or descriptions of file/data/messages/etc. used in test File excerpts/error messages/log file excerpts/screen shots/test tool logs that

    would be helpful in finding the cause of the problem Severity estimate (a 5-level range such as 1-5 or 'critical'-to-'low' is common) Was the bug reproducible? Tester name Test date Bug reporting date Name of developer/group/organization the problem is assigned to Description of problem cause Description of fix Code section/file/module/class/method that was fixed Date of fix Application version that contains the fix Tester responsible for retest Retest date

    TESTINGFAQ 15

  • 8/6/2019 Testing Tut

    16/62

    Retest results Regression testing requirements Tester responsible for regression tests Regression testing results

    What is White box testing/unit testing?Unit testing - The most 'micro' scale of testing; to test particular functions or codemodules. Typically done by the programmer and not by testers, as it requiresdetailed knowledge of the internal program design and code. Not always easily done

    unless the application has a well-designed architecture with tight code; may requiredeveloping test driver modules or test harnesses.

    What is Black box testing?Black Box testing is also called system testing which the testers perform. Here thefeatures and requirements of the product as described in the requirement documentare tested.

    What knowledge you require to do white box, integration and black boxtesting?For white box testing you need to understand the internals of the module like datastructures and algorithms and have access to the source code and for black boxtesting only understanding/functionality of the application.

    What is Regression testing?Regression testing: Re-testing after fixes or modifications of the software or itsenvironment. It can be difficult to determine how much re-testing is needed,especially near the end of the development cycle. Automated testing tools can beespecially useful for this type of testing..

    Why do we do regression testing?In any application new functionalities can be added so the application has to betested to see whether the added functionalities have affected the existingfunctionalities or not. Here instead of retesting all the existing functionalities baselinescripts created for these can be rerun and tested.

    How do we do regression testing?Various automation-testing tools can be used to perform regression testing likeWinRunner, Rational Robot and Silk Test.

    What is Integration testing?Testing of combined parts of an application to determine if they function togethercorrectly. The 'parts' can be code modules, individual applications, client and serverapplications on a network, etc. This type of testing is especially relevant toclient/server and distributed systems.

    What is the difference between exception and validation testing?Validation testing aims to demonstrate that the software functions in a manner thatcan be reasonably expected by the customer. Testing the software in conformance tothe Software Requirements Specifications.Exception testing deals with handling the exceptions (unexpected events) while theAUT is run. Basically this testing involves how to change the control flow of the AUTwhen an exception arises.

    What is the difference between regression automation tool and performanceautomation tool?Regression testing tools capture test and play them back at a later time. The captureand playback feature is fundamental to regression testing.

    TESTINGFAQ 16

  • 8/6/2019 Testing Tut

    17/62

    Performance testing tool determine the load a server can handle. And must havefeature to stimulate many users from one machine, scheduling and synchronizedifferent users, able to measure the network load under different number of simulated users.

    What are the roles of glass-box and black-box testing tools?Glass-box testing also called as white-box testing refers to testing, with detailedknowledge of the modules internals. Thus these tools concentrate more on thealgorithms, data structures used in development of modules. These tools perform

    testing on individual modules more likely than the whole application. Black-Boxtesting tools refer to testing the interface, functionality and performance testing of the system module and the whole system.

    What was the test team hierarchy?Project LeaderQA leadQA AnalystTester

    Which MR tool you used to write MR?Test DirectorRational ClearQuest.PVCS Tracker

    What are the different automation tools you know?Automation tools provided by Mercury Interactive - WinRunner, LoadRunner;Rational Rational Robot; Segue- SilkTest.

    What is the role of a bug tracking system?Bug tracking system captures, manages and communicates changes, issues andtasks, providing basic process control to ensure coordination and communicationwithin and across development and content teams at every step..

    What is ODBC?Open Database Connectivity (ODBC) is an open standard application-programminginterface (API) for accessing a database. ODBC is based on Structured QueryLanguage (SQL) Call-Level Interface. It allows programs to use SQL requests thatwill access databases without having to know the proprietary interfaces to thedatabases. ODBC handles the SQL request and converts it into a request theindividual database system understands.

    Did you ever have problems working with developers?NO. I had a good rapport with the developers.

    Describe your experience with code analyzers?Code analyzers generally check for bad syntax, logic, and other language-specificprogramming errors at the source level. This level of testing is often referred to asunit testing and server component testing. I used code analyzers as part of whitebox testing.

    How do you feel about cyclomatic complexity?Cyclomatic complexity is a measure of the number of linearly independent pathsthrough a program module. Cyclomatic complexity is a measure for the complexity of code related to the number of ways there are to traverse a piece of code. Thisdetermines the minimum number of inputs you need to test all ways to execute theprogram.

    TESTINGFAQ 17

  • 8/6/2019 Testing Tut

    18/62

    Who should test your code?QA Tester

    How do you survive chaos?I survive by maintaining my calm and focusing on the work.

    What Process/Methodologies are you familiar with?Waterfall methodologySpiral methodology

    [Or talk about Customized methodology of the specific client]

    What you will do during the first day of job?Get acquainted with my team and application

    Tell me about the worst boss youve ever had.Fortunately I always had the best bosses, talking in professional terms I had nocomplains on my bosses.

    What is a successful product?A bug free product, meeting the expectations of the user would make the productsuccessful.

    What do you like about Windows?Interface and User friendlinessWindows is one the best software I ever used. It is user friendly and very easy tolearn.

    What is good code?These are some important qualities of good codeCleanliness : Clean code is easy to read; this lets people read it with minimum effortso that they can understand it easily.Consistency : Consistent code makes it easy for people to understand how aprogram works; when reading consistent code; one subconsciously forms a numberof assumptions and expectations about how the code works, so it is easier and safer

    to make modifications to it.Extensibility : General-purpose code is easier to reuse and modify than very specificcode with lots of hard coded assumptions. When someone wants to add a newfeature to a program, it will obviously be easier to do so if the code was designed tobe extensible from the beginning.Correctness : Finally, code that is designed to be correct lets people spend less timeworrying about bugs and more time enhancing the features of a program.

    Who are Kent Beck, Dr Grace Hopper, and Dennis Ritchie?Kent Beck is the author of Extreme Programming Explained and The Smalltalk BestPractice Patterns.Dr. Grace Murray Hopper was a remarkable woman who grandly rose to thechallenges of programming the first computers. During her lifetime as a leader in thefield of software development concepts, she contributed to the transition fromprimitive programming techniques to the use of sophisticated compilers.Dennis Ritchie created the C programming language.

    How you will begin improve the QA process?By following QA methodologies like waterfall, spiral instead of using ad-hocprocedures.

    What is UML and how it is used for testing?The Unified Modeling Language (UML) is the industry-standard language forspecifying, visualizing, constructing, and documenting the artifacts of softwareTESTINGFAQ 18

  • 8/6/2019 Testing Tut

    19/62

    systems. It simplifies the complex process of software design, making a "blueprint"for construction. UML state charts provide a solid basis for test generation in a formthat can be easily manipulated. This technique includes coverage criteria that enablehighly effective tests to be developed. A tool has been developed that uses UML statecharts produced by Rational Software Corporation's Rational Rose tool to generatetest data.

    What are CMM and CMMI? What is the difference?The Capability Maturity Model for Software (CMM or SW-CMM) is a model for judging

    the maturity of the software processes of an organization and for identifying the keypractices that are required to increase the maturity of these processes.

    The Capability Maturity Model Integration (CMMI) provides the guidance forimproving your organization's processes and your ability to manage thedevelopment, acquisition, and maintenance of products and services. CMMIntegration places proven practices into a structure that helps your organizationassess its organizational maturity and process area capability, establish priorities forimprovement, and guide the implementation of these improvements.

    The new integrated model (CMMI) uses Process Areas (known as PAs), which aredifferent to the previous model, and covers as well systems as software processes,rather than only software processes as in the SW-CMM.

    Do you have a favorite QA book? Why?Effective Methods for Software Testing - Perry, William E.

    It covers the whole software lifecycle, starting with testing the project plan andestimates and ending with testing the effectiveness of the testing process. The bookis packed with checklists, worksheets and N-step procedures for each stage of testing.

    When should testing be stopped?This can be difficult to determine. Many modern software applications are socomplex, and run in such an interdependent environment, that complete testing can

    never be done. Common factors in deciding when to stop are:- Deadlines (release deadlines, testing deadlines, etc.)- Test cases completed with certain percentage passed- Test budget depleted- Coverage of code/functionality/requirements reaches a specified point- Bug rate falls below a certain level- Beta or alpha testing period ends

    When do you start developing your automation tests?First, the application has to be manually tested. Once the manual testing is over andbaseline is established.

    What are positive scenarios?Testing to see whether the application is doing what it is supposed to do.

    What are negative scenarios?Testing to see whether the application is not doing what it is not suppose to do.

    What is quality assurance?The set of support activities (including facilitation, training, measurement andanalysis) needed to provide adequate confidence that processes are established andcontinuously improved in order to produce products that meet specifications and fitfor use.

    TESTINGFAQ 19

  • 8/6/2019 Testing Tut

    20/62

    What is the purpose of the testing?Testing provides information whether or not a certain product meets therequirements.

    What is the difference between QA and testing?Quality Assurance is that set of activities that are carried out to set standards and tomonitor and improve performance so that the care provided is as effective and assafe as possible. Testing provides information whether or not a certain productmeets the requirements. It also provides information where the product fails to

    meet the requirements.

    What are benefits of the test automation?1. Fast2. Reliable3. Repeatable4. Programmable5. Comprehensive6. Reusable

    Describe some problems that you had with automation testing toolsOne of the problems with Automation tools is Object recognition

    Can test automation improver test effectiveness?Yes, because of the advantages offered by test automation, which includesrepeatability, consistency, portability and extensive reporting features. What is the main use of test automation?Regression Testing.

    Does automation replace manual testing?No, it does not. There could be several scenarios that cannot be automated or simplytoo complicated that manual testing would be easier and cost effective. Furtherautomation tools have several constrains with regard the environment in which theyrun and IDEs they support.

    How will you choose a tool for test automation?OR How we decide which automation tool we are going to use for theregression testing? Based on risk analysis like: personnel skills, companies software resources Based on Cost analysis Comparing the tools features with test requirement. Support for the applications IDE, support for the application

    environment/platform.

    What could wrong with automation testing?There are several things. For ex. Script errors can cause a genuine bug to goundetected or report a bug in the application when the bug does not actually exist.

    How will you describe testing activities?Testing planning, scripting, execution, defect reporting and tracking, regressiontesting.

    What type of scripting techniques for test automation do you know?Modular tests and data driven test

    What are good principles for test scripts?1. Portable

    TESTINGFAQ 20

  • 8/6/2019 Testing Tut

    21/62

    2. Repeatable3. Reusable4. Maintainable

    What type of document do you need for QA, QC and testing?Following is the list of documents required by QA and QC teams

    Business requirementsSRSUse cases

    Test planTest cases

    What are the properties of a good requirement?Understandable, Clear, Concise, Total Coverage of the application

    What kinds of testing have you done?Manual, automation, regression, integration, system, stress, performance, volume,load, white box, user acceptance, recovery.

    Have you ever written test cases or did you just execute those written byothers?Yes, I was involved in preparing and executing test cases in the entire project.

    How do you determine what to test?Depending upon the User Requirement document.

    How do you decide when you have tested enough?Using Exit Criteria document we can decide that we have done enough testing.

    Realizing you wont be able to test everything-how do you decide what totest first? OR What if there isn't enough time for thorough testing?Use risk analysis to determine where testing should be focused. Since it's rarelypossible to test every possible aspect of an application, every possible combination of

    events, every dependency, or everything that could go wrong, risk analysis isappropriate to most software development projects. This requires judgment skills,common sense, and experience. (If warranted, formal methods are also available.)Considerations can include:

    Which functionality is most important to the project's intended purpose? Which functionality is most visible to the user? Which functionality has the largest safety impact? Which functionality has the largest financial impact on users? Which aspects of the application are most important to the customer? Which aspects of the application can be tested early in the development

    cycle? Which parts of the code are most complex, and thus most subject to errors? Which parts of the application were developed in rush or panic mode? Which aspects of similar/related previous projects caused problems? Which aspects of similar/related previous projects had large maintenance

    expenses? Which parts of the requirements and design are unclear or poorly thought

    out? What do the developers think are the highest-risk aspects of the application? What kinds of problems would cause the worst publicity? What kinds of problems would cause the most customer service complaints? What kinds of tests could easily cover multiple functionalities? Which tests will have the best high-risk-coverage to time-required ratio?

    TESTINGFAQ 21

  • 8/6/2019 Testing Tut

    22/62

    Where do you get your expected results?User requirement document

    If automating-what is your process for determining what to automate and inwhat order? OR Can you automate all the test scripts? Explain? OR How do you plan test automation? OR What criteria do you use when determining when to automate a test or

    leave it manual?1. Test that need to be run for every build of the application2. Tests that use multiple data values for the same actions (data driven tests)3. Tests that require detailed information from application internals4. Stress/ load testing

    If you were given a program that will average student grades, what kinds of inputs would you use?Name of student, Subject, Score

    What is the exact difference between Integration and System testing, giveme examples with your project?Integration testing: An orderly progression of testing in which softwarecomponents or hardware components, or both are combined and tested until theentire system has been integrated.System testing: The Process of testing an integrated hardware and softwaresystem to verify that the system meets its specified requirements.

    How do you go about testing a project?1. Analyze user requirement documents and other documents like software

    specifications, design document etc.2. Write master test plan which describe the scope, objective, strategy,

    risk/contingencies, resources3. Write system test plan and detailed test cases4. Execute test cases manually and compare actual results against expected

    results.5. Identify mismatches, report defect to the development team using defectreporting tool.

    6. Track defect, perform regression test to verify that defect is fixed and did notdisturb other parts of the application.

    7. Once all the defects are closed and application is stabilized, automate the testscripts for regression and performance testing.

    How do you go about testing a web application?We check for User interface, Functionality, Interface testing, Compatibility,Load/Stress, and Security. Difference between Black and White box testing?Black box testing: Functional testing based on requirements with no knowledge of the internal program structure or data. Also known as closed-box testing.White Box testing: Testing approaches that examine the program structure anddevice test data from the program logic.

    What is configuration management? Tools used?Configuration management: helps teams control their day-to-day management of software development activities as software is created, modified, built and delivered.Comprehensive software configuration management includes version control,workspace management, build management, and process control to provide betterproject control and predictabilityTESTINGFAQ 22

  • 8/6/2019 Testing Tut

    23/62

  • 8/6/2019 Testing Tut

    24/62

  • 8/6/2019 Testing Tut

    25/62

    Which aspects of similar/related previous projects caused problems? Which aspects of similar/related previous projects had large maintenance

    expenses? Which parts of the requirements and design is unclear or poorly thought out? What do the developers think are the highest-risk aspects of the application? What kinds of problems would cause the worst publicity? What kinds of problems would cause the most customer service complaints? What kinds of tests could easily cover multiple functionalities? Which tests will have the best high-risk-coverage to time-required ratio?

    What is the impact of environment on the actual results of performancetesting?Environment plays an important role in the results and effectiveness of test,particularly in the area of performance testing. Some of the factors will be under ourcontrol, while others will not be. These may involve the DBMS, the operating systemor the network. Some of the items that we cannot control unless you can secure astand-alone environment (which will generally be unrealistic) are:

    - Other traffic on the network- Other process running on the server- Other process running on the DBMS

    What is stress testing, performance testing, Security testing, Recoverytesting and volume testing.Stress testing: Testing the system if it can handle peak usage period loads thatresult from large number of simultaneous users, transactions or devices. Monitoringshould be performed for throughput and system stability.

    Performance Testing: Testing the system whether the system functions are beingperformed in an acceptable timeframe under simultaneous user load. Timings forboth read and update transactions should be gathered to determine whether. Thisshould be done stand-alone and then in a multi-user environment to determine thetransaction throughput.

    Security Testing: Testing the system for its security from unauthorized use andunauthorized data access.

    Recovery Testing: Testing a system to see how it responds to errors and abnormalconditions, such as system crash, loss of device, communications, or power.

    Volume Testing: Testing to the system to determine if it can correctly process largevolumes of data fed to the system. Systems can often respond unpredictably whenlarge volume causes files to overflow and need extensions.

    What criteria you will follow to assign severity and due date to the MR?Defects (MR) are assigned severity as follows:Critical : show stoppers (the system is unusable)High : The system is very hard to use and some cases are prone to convert to criticalissues if not taken care of.Medium : The system functionality has a major bug but is not too critical but needsto be fixed in order for the AUT to go to production environment.Low : cosmetic (GUI related)

    What is user acceptance testing?It is also called as Beta Testing. Once System Testing is done and the system seemsstable to the developers and testers, system engineers usually invite the end usersof the software to see if they like the software. If the users like the software theway it is then software will be delivered to the user. Otherwise necessary changesTESTINGFAQ 25

  • 8/6/2019 Testing Tut

    26/62

    will be made to the software and software will pass through all phases of testingagain.

    What is manual testing and what is automated testing?Manual testing involves testing of software application by manually performing theactions on the AUT based on test plans.Automated testing involves testing of a software application by performing theactions on the AUT by using automated testing tool (such as WinRunner,LoadRunner) based on test plans

    What are the entrance and exit criteria in the system test?Entrance and exit criteria of each testing phase is written in the master test plan.

    Enterence Criteria:- Integration exit criteria have been successfully met.- All installation documents are completed.- All shippable software has been successfully built- Syate, test plan is baselined by completing the walkthrough of the test plan.- Test environment should be setup.- All severity 1 MRs of integration test phase should be closed.

    Exit Criteria:- All the test cases in the test plan should be executed.- All MRs/defects are either closed or deferred.- Regression testing cycle should be executed after closing the MRs.- All documents are reviewed, finilized and signed-off.

    If there are no requirements, how will you write your test plan?If there are no requirements we try to gather as much details as possible from: Business Analysts Developers (If accessible) Previous Version documentation (if any) Stake holders (If accessible) Prototypes.

    What is smoke testing?The smoke test should exercise the entire system from end to end. It does not haveto be exhaustive, but it should be capable of exposing major problems. The smoketest should be thorough enough that if the build passes, you can assume that it isstable enough to be tested more thoroughly.

    The daily build has little value without the smoke test. The smoke test is the sentrythat guards against deteriorating product quality and creeping integration problems.Without it, the daily build becomes just a time-wasting exercise in ensuring that youhave a clean compile every day.

    The smoke test must evolve as the system evolves. At first, the smoke test willprobably test something simple, such as whether the system can say, "Hello, World."As the system develops, the smoke test will become more thorough. The first testmight take a matter of seconds to run; as the system grows, the smoke test cangrow to 30 minutes, an hour, or more.

    What is soak testing?The software system will be run for a total of 14 hours continuously. If the system isa control system, it will be used to continuously move each of the instrumentmechanisms during this time. Any other system will be expected to perform itsintended function continuously during this period. The software system must not failduring this period.

    TESTINGFAQ 26

  • 8/6/2019 Testing Tut

    27/62

    What is a pre-condition data?Data required to setup in the system before the test execution.

    What are the different documents in QA?Requirements Document, Test Plan, Test cases, Test Metrics, Task DistributionDiagrams (Performance), Transaction Mix, User Profiles, Test Log, Test IncidentReport, Test Summary Report

    How do you rate yourself in software testing

    Excellent

    What are the best web sites that you frequently visit to upgrade your QAskills?http://www.softwareqatest.com/http://sqp.asq.org/

    Is defect resolution a technical skill or interpersonal skill from QAviewpoint?It is a combination of both, because it deals with the interaction with developereither directly or indirectly, which needs interpersonal skills and is also based on theskills of the QA personnel to provide a detailed proof to the developer like snap shotsand system resource utilization and some suggestions which are little bit technical. What is End to End business logic testing?Testing the integration of all the modules of the AUT.

    What is an equivalence class?A portion of a component's input or output domains for which the component'sbehavior is assumed to be the same from the component's specification

    What is the task bar and where does it reside?The task bar shows a task button for each open application. At a glance, it shows youwhich applications are running; you can switch applications by clicking different taskbuttons. In most cases the task bar is located at the very bottom of your desktop or

    computer screen. However the task bar can be moved to the sides or top.

    How do you analyze your test results? What metrics do you try to provide?OR How do you view test results?Test log is created for analyzing the test results. This is a chronological record of theTest executions and events that happened during testing. It includes the followingsections:

    Description: Whats being tested, including Version ID, where testing is being done,what hardware and all other configuration information.Activity and Event Entries: What happened including Execution Description: Theprocedure used.Procedure Result: What happened. What did you see and where did you store theoutput?Environment Information: Any changes (hardware substitution) made specificallyfor this test.Unexpected Events: What happened before and after problem/bug occurred.Incident/Bug Report Identifiers: Problem Report number

    If you come onboard, give me a general idea of what your first overall taskswill be as far as starting a quality effort?Try to learn about the application, Environment and Prototypes to have the betterunderstanding of application and existing testing effortsTESTINGFAQ 27

    http://www.softwareqatest.com/http://www.softwareqatest.com/
  • 8/6/2019 Testing Tut

    28/62

    How do you differentiate the roles of Quality Assurance Manager andProject Manager?A quality assurance manager responsibility includes setting up the standards, themethodology and the strategies for testing the application and providing guidelinesto the QA team. Project Manager is responsible for testing and developmentactivities.

    What do you like about QA?

    QA is the field where in one will be working to multiple environments and can learnmore.

    Who in the company is responsible for Quality?Both development and quality assurance departments are responsible for the finalproduct quality.

    Should we test every possible combination/scenario for a program?Ideally, yes we should test every possible scenario, but this may not always bepossible. It depends on many factors viz., deadlines, budget, complexity of softwareand so on. In such cases, we have to prioritize and thoroughly test the critical areasof the application.

    What is client-server architecture?Client-server architecture, a client is defined as a requester of services and a serveris defined as the provider of services. Communication takes place in the form arequest message from the client to the server asking for some work to be done.Then the server does the work and sends back the reply.

    How Intranet is different from client-server?Internet applications are essentially client/server applications - with web servers and'browser'

    What is three-tier and multi-tier architecture?A design that separate (1) client, (2) application, and (3) data each into their own

    separate areas that allows for more scalable, robust solutions

    A three-tier system is one that has presentation components, business logic and dataaccess physically running on different platforms. Web applications are perfect forthree-tier architecture, as the presentation layer is necessarily separate, and thebusiness and data components can be divided up much like a client-serverapplication

    What is Internet?The Internet, sometimes called simply "the Net," is a worldwide system of computernetworks - a network of networks in which users at any one computer can, if theyhave permission, get information from any other computer. Physically, the Internetuses a portion of the total resources of the currently existing publictelecommunication networks. Technically, what distinguishes the Internet is its useof a set of protocols called TCP/IP (for Transmission Control Protocol/InternetProtocol). Two recent adaptations of Internet technology, the intranet and theextranet, also make use of the TCP/IP protocol.

    What is Intranet?An intranet is a private network that is contained within an enterprise. It may consistof many interlinked local area networks and also use leased lines in the Wide AreaNetwork. The main purpose of an intranet is to share company information andcomputing resources among employees. An intranet can also be used to facilitateworking in groups and for teleconferences.TESTINGFAQ 28

  • 8/6/2019 Testing Tut

    29/62

    What is Extranet?An extranet is a private network that uses the Internet protocol and the publictelecommunication system to securely share part of a business's information oroperations with suppliers, vendors, partners, customers, or other businesses. Anextranet can be viewed as part of a company's intranet that is extended to usersoutside the company. It has also been described as a "state of mind" in which theInternet is perceived as a way to do business with other companies as well as to sellproducts to customers.

    What is a byte code file?Machine-independent code generated by the Java(TM) compiler and executed by theJava interpreter

    What is an applet?A program written in the Java(TM) programming language to run within a webbrowser compatible with the Java platform, such as Hot Java(TM) or NetscapeNavigator(TM).

    How applet is different from application?An applet is an application program that uses the client's web browser to provide auser interface while an application is a computer program with a user interface.

    What is Java Virtual Machine?Java(TM) Virtual Machine*. The part of the Java Runtime Environment responsiblefor interpreting bytecodes

    What is ISO-9000?A set of international standards for both quality management and quality assurancethat has been adopted by over 90 countries worldwide. The ISO 9000 standardsapply to all types of organizations, large and small, and in many industries. The ISO9000 series classifies products into generic product categories: hardware, software,processed materials, and services.

    What is QMO?The QMO is a set of processes and guidelines that software systems projects andproducts that are built under a contract (with a customer) must follow to comply withISO-9000 standards. ISO-9000 states that the guidelines for software developmentmust be documented.

    What is Object Oriented model?In a Object Oriented model each class is a separate module and has a position in aclass hierarchy. Methods or code in one class can be passed down the hierarchy to asubclass or inherited from a super class. This is called inheritance.

    What is Procedural model?A term used in contrast to declarative language to describe a language where theprogrammer specifies an explicit sequence of steps to follow to produce a result.Common procedural languages include Basic and C.

    What is an Object?An object is a software bundle of related variables and methods. Software objectsare often used to model real-world objects you find in everyday life

    What is class?A class is a blueprint or prototype that defines the variables and the methodscommon to all objects of a certain kind.TESTINGFAQ 29

    http://search/?q=declarative%20languagehttp://search/?q=declarative%20language
  • 8/6/2019 Testing Tut

    30/62

    What is encapsulation? Give one example.Encapsulation is the ability to provide a well-defined interface to a set of functions ina way which hides their internal workings. In object-oriented programming, thetechnique of keeping together data structures and the methods (procedures) whichact on them.

    What is inheritance? Give example.In object-oriented programming, the ability to derive new classes from existing

    classes. A derived class (or "subclass") inherits the instance variables and methodsof the "base class" (or "superclass"), and may add new instance variables andmethods. New methods may be defined with the same names as those in the baseclass, in which case they override the original one.

    What is the difference about web-testing and client server testing?Web applications are essentially client/server applications - with web servers and'browser' clients. Consideration should be given to the interactions between htmlpages, TCP/IP communications, Internet connections, firewalls, applications that runin web pages (such as applets, javascript, plug-in applications), and applications thatrun on the server side (such as cgi scripts, database interfaces, logging applications,dynamic page generators, asp, etc.). Additionally, there are a wide variety of serversand browsers, various versions of each, small but sometimes significant differencesbetween them, variations in connection speeds, rapidly changing technologies, andmultiple standards and protocols. The end result is that testing for web sites canbecome a major ongoing effort.

    Is a Fast database retrieval rate a testable requirement?This is not a testable requirement. Fast is a subjective term. It could mean differentthings depending on a persons perception. For a requirement to be testable, itshould be quantified and repeatable, so that the actual value could be measuredagainst the expected value.

    What different type of test cases you wrote in the test plan?Test cases for interface, functionality, security, load and performance testing.

    What development model should programmers and the test group use?A Development Model, which helps adopt a structured approach in assessment,design, integration and implementation of a project and in extending relevanttraining and support. Each of these stages is necessarily accompanied with clientinputs, checkpoints and reviews to ensure successful systems implementation.

    Basically there are many types of development models to support the developmentof high-quality software products. The two most widely used models are Waterfalland Spiral development model.Waterfall development model encourages the development team to specify thebusiness functionality of the software prior to developing a system.Spiral development model combines the waterfall development model and theprototype approach, which is a series of partial implementations of the product.

    A typical project may include some or all of the following phases: Requirements analysis Functional specifications Architectural design Detailed design Coding Unit testing Integration testing Deployment and

    TESTINGFAQ 30

  • 8/6/2019 Testing Tut

    31/62

    Maintenance.

    What are the key challenges of load testing?The key challenge to load testing is handling various components from variousvendors.

    Have you done explanatory or specification-driven testing?Yes, specification-driven testing means checking the products conformance withevery statement in every spec, requirements document, etc.

    What is the role of QA in development project?Deploy and enforce standardsContinually improve standards, QA process based on previous experiencesPromote effective means for reporting and communication.

    How do you promote the concept of phase containment and defectprevention?Phase Containment refers to detecting and correcting defects in the same phase inwhich theyre created.The purpose of Defect Prevention is to identify the cause of defects and preventthem from recurring.

    What is inspection?Inspection: An inspection is more formalized than a 'walkthrough', typically with 3-8 people including a moderator, reader, and a recorder to take notes. The subject of the inspection is typically a document such as a requirements spec or a test plan,and the purpose is to find problems and see what's missing, not to fix anything.Attendees should prepare for this type of meeting by reading thru the document;most problems will be found during this preparation. The result of the inspectionmeeting should be a written report. Thorough preparation for inspections is difficult,painstaking work, but is one of the most cost effective methods of ensuring quality.

    What is Walkthrough?Walkthrough: A 'walkthrough' is an informal meeting for evaluation or informational

    purposes. Little or no preparation is usually required.

    What if the application has functionality that wasn't in the requirements?It may take serious effort to determine if an application has significant unexpected orhidden functionality, and it would indicate deeper problems in the softwaredevelopment process. If the functionality isn't necessary to the purpose of theapplication, it should be removed, as it may have unknown impacts or dependenciesthat were not taken into account by the designer or the customer. If not removed,design information will be needed to determine added testing needs or regressiontesting needs. Management should be made aware of any significant added risks as aresult of the unexpected functionality. If the functionality only effects areas such asminor improvements in the user interface, for example, it may not be a significantrisk.

    What are build, version, and release?Build:

    Version:

    Release:

    How would you build a test team?In a testing team we should have QA Analysts who analyses the requirements anddevelops the testing strategies. The QA Analysts is also involved in writing test plansTESTINGFAQ 31

  • 8/6/2019 Testing Tut

    32/62

    and test cases. QA Testers are also needed to do the actual manual and automationtesting using the test plan and test cases. A QA lead should be the