Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Software testing
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Teamwork == === Roles === In an organization, testers may be in a separate team from the rest of the [[software development]] team or they may be integrated into one team. Software testing can also be performed by non-dedicated software testers. In the 1980s, the term ''software tester'' started to be used to denote a separate profession. Notable software testing roles and titles include:<ref>{{Cite journal |last1=Gelperin |first1=David |author-link=Dave Gelperin |last2=Hetzel |first2=Bill |author-link2=William C. Hetzel |date=June 1, 1988 |title=The growth of software testing |journal=Communications of the ACM |volume=31 |issue=6 |pages=687β695 |doi=10.1145/62959.62965 |s2cid=14731341|doi-access=free }}</ref> ''test manager'', ''test lead'', ''test analyst'', ''test designer'', ''tester'', ''automation developer'', and ''test administrator''.<ref>{{Cite book |last1=Gregory |first1=Janet |title=More Agile Testing |last2=Crispin |first2=Lisa |publisher=Addison-Wesley Professional |year=2014 |isbn=978-0-13-374956-4 |pages=23β39}}</ref> === Processes === Organizations that develop software, perform testing differently, but there are common patterns.<ref name="pan" /> ==== Waterfall development ==== {{further|Capability Maturity Model Integration|Waterfall model}} In [[waterfall model|waterfall development]], testing is generally performed after the code is completed, but before the product is shipped to the customer.<ref>{{Cite web |title=Software Testing Lifecycle |url=http://www.etestinghub.com/testing_lifecycles.php#2 |access-date=January 13, 2012 |website=etestinghub |at=Testing Phase in Software Testing}}</ref> This practice often results in the testing phase being used as a [[project management|project]] buffer to compensate for project delays, thereby compromising the time devoted to testing.<ref name="Myers 1979" />{{rp|145β146}} Some contend that the waterfall process allows for testing to start when the development project starts and to be a continuous process until the project finishes.<ref>{{Cite book |last=Dustin |first=Elfriede |url=https://books.google.com/books?id=K0qWBUOAf6IC&pg=PA3 |title=Effective Software Testing |publisher=Addison-Wesley Professional |year=2002 |isbn=978-0-201-79429-8 |page=3}}</ref> ==== Agile development ==== [[Agile software development]] commonly involves testing while the code is being written and organizing teams with both programmers and testers and with team members performing both programming and testing. One agile practice, [[Test-driven development|test-driven software development]] (TDD), is a way of [[unit testing]] such that unit-level testing is performed while writing the product code.<ref name="AgileAllianceTDD">{{Cite web |date=December 5, 2015 |title=What is Test Driven Development (TDD)? |url=https://www.agilealliance.org/glossary/tdd/ |access-date=March 17, 2018 |website=Agile Alliance}}</ref> Test code is updated as new features are added and failure conditions are discovered (bugs fixed). Commonly, the unit test code is maintained with the project code, integrated in the build process, and run on each build and as part of regression testing. Goals of this [[continuous integration]] is to support development and reduce defects.<ref>{{Cite web |title=Test-Driven Development and Continuous Integration for Mobile Applications |url=https://msdn.microsoft.com/en-us/library/bb985498.aspx#_Continuous_Integration |access-date=March 17, 2018 |website=Microsoft Developer Network|date=January 14, 2009 }}</ref><ref name="AgileAllianceTDD" /> Even in organizations that separate teams by programming and testing functions, many often have the programmers perform [[unit testing]].<ref>{{Cite book |last1=Brown |first1=Chris |url=http://www.informit.com/articles/article.aspx?p=26320&seqNum=6 |title=Introduction to Rapid Software Testing |last2=Cobb |first2=Gary |last3=Culbertson |first3=Robert |date=April 12, 2002}}</ref> ==== Sample process ==== The sample below is common for waterfall development. The same activities are commonly found in other development models, but might be described differently. * [[Requirements analysis]]: testing should begin in the requirements phase of the [[software development life cycle]]. During the design phase, testers work to determine what aspects of a design are testable and with what parameters those tests work. * Test planning: [[test strategy]], [[test plan]], [[testbed]] creation. Since many activities will be carried out during testing, a plan is needed. * Test development: test procedures, [[Scenario test|test scenarios]], [[test case]]s, test datasets, test scripts to use in testing software. * Test execution: testers execute the software based on the plans and test documents then report any errors found to the development team. This part could be complex when running tests with a lack of programming knowledge. * Test reporting: once testing is completed, testers generate metrics and make final reports on their [[test effort]] and whether or not the software tested is ready for release. * Test result analysis: or ''defect analysis'', is done by the development team usually along with the client, in order to decide what defects should be assigned, fixed, rejected (i.e. found software working properly) or deferred to be dealt with later. * Defect retesting: once a defect has been dealt with by the development team, it is retested by the testing team. * [[Regression testing]]: it is common to have a small test program built of a subset of tests, for each integration of new, modified, or fixed software, in order to ensure that the latest delivery has not ruined anything and that the software product as a whole is still working correctly. * Test closure: once the test meets the exit criteria, the activities such as capturing the key outputs, lessons learned, results, logs, documents related to the project are archived and used as a reference for future projects.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Software testing
(section)
Add topic